├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md └── workflows │ ├── gotest-cloud-eu.yml │ ├── gotest-cloud.yml │ ├── gotest-onprem.yml │ └── release.yml ├── .gitignore ├── .golangci.yml ├── .goreleaser.yml ├── CONTRIBUTING.md ├── DEVELOPER.md ├── LICENSE ├── README.md ├── StoreFront.md ├── ctx_metadata.yaml ├── docs ├── data-sources │ ├── access_control_policy_filter.md │ ├── admin_folder.md │ ├── admin_permissions.md │ ├── admin_role.md │ ├── admin_scope.md │ ├── admin_user.md │ ├── application_folder_details.md │ ├── bearer_token.md │ ├── branch_repeater_policy_filter.md │ ├── client_ip_policy_filter.md │ ├── client_name_policy_filter.md │ ├── client_platform_policy_filter.md │ ├── cloud_google_identity_provider.md │ ├── cloud_okta_identity_provider.md │ ├── cloud_resource_location.md │ ├── cloud_saml_identity_provider.md │ ├── delivery_group.md │ ├── delivery_group_policy_filter.md │ ├── delivery_group_type_policy_filter.md │ ├── hypervisor.md │ ├── hypervisor_resource_pool.md │ ├── image_definition.md │ ├── image_version.md │ ├── machine_catalog.md │ ├── ou_policy_filter.md │ ├── policy.md │ ├── policy_filters.md │ ├── policy_priority.md │ ├── policy_set.md │ ├── policy_set_v2.md │ ├── policy_setting.md │ ├── pvs.md │ ├── quickcreate_aws_workspaces_account.md │ ├── quickcreate_aws_workspaces_cloudformation_template.md │ ├── quickcreate_aws_workspaces_deployment.md │ ├── quickcreate_aws_workspaces_directory_connection.md │ ├── quickcreate_aws_workspaces_image.md │ ├── quickdeploy_template_image.md │ ├── service_account.md │ ├── site.md │ ├── site_settings.md │ ├── stf_roaming_service.md │ ├── storefront_server.md │ ├── tag.md │ ├── tag_policy_filter.md │ ├── user_policy_filter.md │ ├── vda.md │ ├── wem_configuration_set.md │ └── zone.md ├── index.md └── resources │ ├── access_control_policy_filter.md │ ├── admin_folder.md │ ├── admin_role.md │ ├── admin_scope.md │ ├── admin_user.md │ ├── application.md │ ├── application_group.md │ ├── application_icon.md │ ├── aws_hypervisor.md │ ├── aws_hypervisor_resource_pool.md │ ├── azure_hypervisor.md │ ├── azure_hypervisor_resource_pool.md │ ├── branch_repeater_policy_filter.md │ ├── client_ip_policy_filter.md │ ├── client_name_policy_filter.md │ ├── client_platform_policy_filter.md │ ├── cloud_admin_user.md │ ├── cloud_google_identity_provider.md │ ├── cloud_okta_identity_provider.md │ ├── cloud_resource_location.md │ ├── cloud_saml_identity_provider.md │ ├── delivery_group.md │ ├── delivery_group_policy_filter.md │ ├── delivery_group_type_policy_filter.md │ ├── desktop_icon.md │ ├── gac_discovery.md │ ├── gac_settings.md │ ├── gcp_hypervisor.md │ ├── gcp_hypervisor_resource_pool.md │ ├── hpe_moonshot_hypervisor.md │ ├── image_definition.md │ ├── image_version.md │ ├── machine_catalog.md │ ├── machine_properties.md │ ├── nutanix_hypervisor.md │ ├── nutanix_hypervisor_resource_pool.md │ ├── openshift_hypervisor.md │ ├── openshift_hypervisor_resource_pool.md │ ├── ou_policy_filter.md │ ├── policy.md │ ├── policy_priority.md │ ├── policy_set.md │ ├── policy_set_v2.md │ ├── policy_setting.md │ ├── quickcreate_aws_workspaces_account.md │ ├── quickcreate_aws_workspaces_deployment.md │ ├── quickcreate_aws_workspaces_directory_connection.md │ ├── quickcreate_aws_workspaces_image.md │ ├── quickdeploy_template_image.md │ ├── remote_pc_wake_on_lan_hypervisor.md │ ├── scvmm_hypervisor.md │ ├── scvmm_hypervisor_resource_pool.md │ ├── service_account.md │ ├── site_backup_schedule.md │ ├── site_settings.md │ ├── stf_authentication_service.md │ ├── stf_deployment.md │ ├── stf_store_service.md │ ├── stf_user_farm_mapping.md │ ├── stf_webreceiver_service.md │ ├── stf_xenapp_default_store.md │ ├── storefront_server.md │ ├── tag.md │ ├── tag_policy_filter.md │ ├── user_policy_filter.md │ ├── vsphere_hypervisor.md │ ├── vsphere_hypervisor_resource_pool.md │ ├── wem_configuration_set.md │ ├── wem_directory_object.md │ ├── xenserver_hypervisor.md │ ├── xenserver_hypervisor_resource_pool.md │ └── zone.md ├── examples ├── README.md ├── basic_aws_mcs_vda │ ├── citrix.tf │ ├── delivery_groups.tf │ ├── hypervisors.tf │ ├── machine_catalogs.tf │ ├── resource_pools.tf │ ├── terraform.template.tfvars │ ├── terraform.tf │ ├── variables.tf │ └── zones.tf ├── basic_aws_workspace_core_deployment │ ├── account.tf │ ├── citrix.tf │ ├── deployment.tf │ ├── directory_connection.tf │ ├── image.tf │ ├── resource_location.tf │ ├── terraform.template.tfvars │ ├── terraform.tf │ └── variables.tf ├── basic_azure_mcs_vda │ ├── citrix.tf │ ├── delivery_groups.tf │ ├── hypervisors.tf │ ├── images.tf │ ├── machine_catalogs.tf │ ├── resource_pools.tf │ ├── terraform.template.tfvars │ ├── terraform.tf │ ├── variables.tf │ └── zones.tf ├── basic_gcp_mcs_vda │ ├── citrix.tf │ ├── delivery_groups.tf │ ├── hypervisors.tf │ ├── machine_catalogs.tf │ ├── resource_pools.tf │ ├── terraform.template.tfvars │ ├── terraform.tf │ ├── variables.tf │ └── zones.tf ├── basic_nutanix_mcs_vda │ ├── citrix.tf │ ├── delivery_groups.tf │ ├── hypervisors.tf │ ├── machine_catalogs.tf │ ├── resource_pools.tf │ ├── terraform.template.tfvars │ ├── terraform.tf │ ├── variables.tf │ └── zones.tf ├── basic_policy_set │ ├── citrix.tf │ ├── policy.tf │ ├── policy_filter.tf │ ├── policy_priority.tf │ ├── policy_set_v2.tf │ ├── policy_setting.tf │ ├── terraform.template.tfvars │ ├── terraform.tf │ └── variables.tf ├── basic_scvmm_mcs_vda │ ├── citrix.tf │ ├── delivery_groups.tf │ ├── hypervisors.tf │ ├── machine_catalogs.tf │ ├── resource_pools.tf │ ├── terraform.template.tfvars │ ├── terraform.tf │ ├── variables.tf │ └── zones.tf ├── basic_vsphere_mcs_vda │ ├── citrix.tf │ ├── delivery_groups.tf │ ├── hypervisors.tf │ ├── images.tf │ ├── machine_catalogs.tf │ ├── resource_pools.tf │ ├── terraform.template.tfvars │ ├── terraform.tf │ ├── variables.tf │ └── zones.tf ├── basic_xenserver_mcs_vda │ ├── citrix.tf │ ├── delivery_groups.tf │ ├── hypervisors.tf │ ├── machine_catalogs.tf │ ├── resource_pools.tf │ ├── terraform.template.tfvars │ ├── terraform.tf │ ├── variables.tf │ └── zones.tf └── non_domain_joined_azure_mcs_vda │ ├── citrix.tf │ ├── delivery_groups.tf │ ├── hypervisors.tf │ ├── images.tf │ ├── machine_catalogs.tf │ ├── policy_sets.tf │ ├── resource_location.tf │ ├── resource_pools.tf │ ├── terraform.template.tfvars │ ├── terraform.tf │ ├── variables.tf │ └── zones.tf ├── go.mod ├── go.sum ├── images ├── go-extension.png └── techzone-youtube-thumbnail.png ├── internal ├── citrixcloud │ ├── admin_user │ │ ├── admin_user_resource.go │ │ ├── admin_user_resource_model.go │ │ └── admin_user_utils.go │ ├── global_app_configuration │ │ ├── gac_discovery_resource.go │ │ ├── gac_discovery_resource_model.go │ │ ├── gac_settings_resource.go │ │ ├── gac_settings_resource_model.go │ │ └── gac_settings_util.go │ ├── identity_providers │ │ ├── google_identity_provider_data_source.go │ │ ├── google_identity_provider_data_source_model.go │ │ ├── google_identity_provider_resource.go │ │ ├── google_identity_provider_resource_model.go │ │ ├── identity_provider_utils.go │ │ ├── okta_identity_provider_data_source.go │ │ ├── okta_identity_provider_data_source_model.go │ │ ├── okta_identity_provider_resource.go │ │ ├── okta_identity_provider_resource_model.go │ │ ├── saml_identity_provider_data_source.go │ │ ├── saml_identity_provider_data_source_model.go │ │ ├── saml_identity_provider_resource.go │ │ └── saml_identity_provider_resource_model.go │ └── resource_locations │ │ ├── resource_locations_data_source.go │ │ ├── resource_locations_data_source_model.go │ │ ├── resource_locations_resource.go │ │ ├── resource_locations_resource_model.go │ │ └── resource_locations_utils.go ├── daas │ ├── admin_folder │ │ ├── admin_folder_data_source.go │ │ ├── admin_folder_data_source_model.go │ │ ├── admin_folder_resource.go │ │ └── admin_folder_resource_model.go │ ├── admin_role │ │ ├── admin_permissions_data_source.go │ │ ├── admin_permissions_data_source_model.go │ │ ├── admin_role_data_source.go │ │ ├── admin_role_data_source_model.go │ │ ├── admin_role_resource.go │ │ └── admin_role_resource_model.go │ ├── admin_scope │ │ ├── admin_scope_data_source.go │ │ ├── admin_scope_data_source_model.go │ │ ├── admin_scope_resource.go │ │ └── admin_scope_resource_model.go │ ├── admin_user │ │ ├── admin_user_data_source.go │ │ ├── admin_user_data_source_model.go │ │ ├── admin_user_resource.go │ │ └── admin_user_resource_model.go │ ├── application │ │ ├── application_folder_details_data_source.go │ │ ├── application_folder_details_data_source_model.go │ │ ├── application_group_resource.go │ │ ├── application_group_resource_model.go │ │ ├── application_icon_resource.go │ │ ├── application_icon_resource_model.go │ │ ├── application_resource.go │ │ └── application_resource_model.go │ ├── bearer_token │ │ ├── bearer_token_data_source.go │ │ └── bearer_token_data_source_model.go │ ├── cvad_site │ │ ├── site_data_source.go │ │ ├── site_data_source_model.go │ │ ├── site_settings_data_source.go │ │ ├── site_settings_data_source_model.go │ │ ├── site_settings_resource.go │ │ └── site_settings_resource_model.go │ ├── delivery_group │ │ ├── delivery_group_data_source.go │ │ ├── delivery_group_data_source_model.go │ │ ├── delivery_group_resource.go │ │ ├── delivery_group_resource_model.go │ │ └── delivery_group_utils.go │ ├── desktop_icon │ │ ├── desktop_icon_resource.go │ │ └── desktop_icon_resource_model.go │ ├── hypervisor │ │ ├── aws_hypervisor_resource.go │ │ ├── aws_hypervisor_resource_model.go │ │ ├── azure_hypervisor_resource.go │ │ ├── azure_hypervisor_resource_model.go │ │ ├── gcp_hypervisor_resource.go │ │ ├── gcp_hypervisor_resource_model.go │ │ ├── hpe_moonshot_hypervisor_resource.go │ │ ├── hpe_moonshot_hypervisor_resource_model.go │ │ ├── hypervisor_common.go │ │ ├── hypervisor_data_source.go │ │ ├── hypervisor_data_source_model.go │ │ ├── nutanix_hypervisor_resource.go │ │ ├── nutanix_hypervisor_resource_model.go │ │ ├── openshift_hypervisor_resource.go │ │ ├── openshift_hypervisor_resource_model.go │ │ ├── remotepc_wake_on_lan_hypervisor_resource.go │ │ ├── remotepc_wake_on_lan_hypervisor_resource_model.go │ │ ├── scvmm_hypervisor_resource.go │ │ ├── scvmm_hypervisor_resource_model.go │ │ ├── vsphere_hypervisor_resource.go │ │ ├── vsphere_hypervisor_resource_model.go │ │ ├── xenserver_hypervisor_resource.go │ │ └── xenserver_hypervisor_resource_model.go │ ├── hypervisor_resource_pool │ │ ├── aws_hypervisor_resource_pool_resource.go │ │ ├── aws_hypervisor_resource_pool_resource_model.go │ │ ├── azure_hypervisor_resource_pool_resource.go │ │ ├── azure_hypervisor_resource_pool_resource_model.go │ │ ├── gcp_hypervisor_resource_pool_resource.go │ │ ├── gcp_hypervisor_resource_pool_resource_model.go │ │ ├── hypervisor_resource_pool_common.go │ │ ├── hypervisor_resource_pool_data_source.go │ │ ├── hypervisor_resource_pool_data_source_model.go │ │ ├── nutanix_hypervisor_resource_pool_resource.go │ │ ├── nutanix_hypervisor_resource_pool_resource_model.go │ │ ├── openshift_hypervisor_resource_pool_resource.go │ │ ├── openshift_hypervisor_resource_pool_resource_model.go │ │ ├── scvmm_hypervisor_resource_pool_resource.go │ │ ├── scvmm_hypervisor_resource_pool_resource_model.go │ │ ├── vsphere_hypervisor_resource_pool_resource.go │ │ ├── vsphere_hypervisor_resource_pool_resource_model.go │ │ ├── xenserver_hypervisor_resource_pool_resource.go │ │ └── xenserver_hypervisor_resource_pool_resource_model.go │ ├── image_definition │ │ ├── image_definition_data_source.go │ │ ├── image_definition_data_source_model.go │ │ ├── image_definition_resource.go │ │ ├── image_definition_resource_model.go │ │ ├── image_version_data_source.go │ │ ├── image_version_data_source_model.go │ │ ├── image_version_resource.go │ │ └── image_version_resource_model.go │ ├── machine_catalog │ │ ├── machine_catalog_common_utils.go │ │ ├── machine_catalog_data_source.go │ │ ├── machine_catalog_data_source_model.go │ │ ├── machine_catalog_manual_utils.go │ │ ├── machine_catalog_mcs_pvs_utils.go │ │ ├── machine_catalog_prepared_image_utils.go │ │ ├── machine_catalog_remote_pc_utils.go │ │ ├── machine_catalog_resource.go │ │ ├── machine_catalog_resource_model.go │ │ ├── machine_config.go │ │ ├── machine_properties_resource.go │ │ ├── machine_properties_resource_model.go │ │ ├── pvs_data_source.go │ │ └── pvs_data_source_model.go │ ├── policies │ │ ├── policy_filter_data_source_model.go │ │ ├── policy_filter_model.go │ │ ├── policy_set_data_source.go │ │ ├── policy_set_data_source_model.go │ │ ├── policy_set_resource.go │ │ ├── policy_set_resource.md │ │ ├── policy_set_resource_model.go │ │ └── policy_set_utils.go │ ├── policy_filters │ │ ├── access_control_policy_filter_data_source.go │ │ ├── access_control_policy_filter_data_source_model.go │ │ ├── access_control_policy_filter_resource.go │ │ ├── access_control_policy_filter_resource_model.go │ │ ├── branch_repeater_policy_filter_data_source.go │ │ ├── branch_repeater_policy_filter_data_source_model.go │ │ ├── branch_repeater_policy_filter_resource.go │ │ ├── branch_repeater_policy_filter_resource_model.go │ │ ├── client_ip_policy_filter_data_source.go │ │ ├── client_ip_policy_filter_data_source_model.go │ │ ├── client_ip_policy_filter_resource.go │ │ ├── client_ip_policy_filter_resource_model.go │ │ ├── client_name_policy_filter_data_source.go │ │ ├── client_name_policy_filter_data_source_model.go │ │ ├── client_name_policy_filter_resource.go │ │ ├── client_name_policy_filter_resource_model.go │ │ ├── client_platform_policy_filter_data_source.go │ │ ├── client_platform_policy_filter_data_source_model.go │ │ ├── client_platform_policy_filter_resource.go │ │ ├── client_platform_policy_filter_resource_model.go │ │ ├── delivery_group_policy_filter_data_source.go │ │ ├── delivery_group_policy_filter_data_source_model.go │ │ ├── delivery_group_policy_filter_resource.go │ │ ├── delivery_group_policy_filter_resource_model.go │ │ ├── delivery_group_type_policy_filter_data_source.go │ │ ├── delivery_group_type_policy_filter_data_source_model.go │ │ ├── delivery_group_type_policy_filter_resource.go │ │ ├── delivery_group_type_policy_filter_resource_model.go │ │ ├── ou_policy_filter_data_source.go │ │ ├── ou_policy_filter_data_source_model.go │ │ ├── ou_policy_filter_resource.go │ │ ├── ou_policy_filter_resource_model.go │ │ ├── policy_filter_common.go │ │ ├── policy_filters_data_source.go │ │ ├── policy_filters_data_source_model.go │ │ ├── tag_policy_filter_data_source.go │ │ ├── tag_policy_filter_data_source_model.go │ │ ├── tag_policy_filter_resource.go │ │ ├── tag_policy_filter_resource_model.go │ │ ├── user_policy_filter_data_source.go │ │ ├── user_policy_filter_data_source_model.go │ │ ├── user_policy_filter_resource.go │ │ └── user_policy_filter_resource_model.go │ ├── policy_priority │ │ ├── policy_priority_data_source.go │ │ ├── policy_priority_data_source_model.go │ │ ├── policy_priority_resource.go │ │ └── policy_priority_resource_model.go │ ├── policy_resource │ │ ├── policy_data_source.go │ │ ├── policy_data_source_model.go │ │ ├── policy_resource.go │ │ └── policy_resource_model.go │ ├── policy_set_resource │ │ ├── policy_set_data_source_model_v2.go │ │ ├── policy_set_data_source_v2.go │ │ ├── policy_set_resource_model_v2.go │ │ ├── policy_set_resource_v2.go │ │ └── policy_set_v2_utils.go │ ├── policy_setting │ │ ├── policy_setting_data_source.go │ │ ├── policy_setting_data_source_model.go │ │ ├── policy_setting_resource.go │ │ └── policy_setting_resource_model.go │ ├── service_account │ │ ├── service_account_common.go │ │ ├── service_account_data_source.go │ │ ├── service_account_data_source_model.go │ │ ├── service_account_resource.go │ │ └── service_account_resource_model.go │ ├── site_backup_schedule │ │ ├── site_backup_schedule_resource.go │ │ └── site_backup_schedule_resource_model.go │ ├── storefront_server │ │ ├── storefront_server_data_source.go │ │ ├── storefront_server_data_source_model.go │ │ ├── storefront_server_resource.go │ │ └── storefront_server_resource_model.go │ ├── tags │ │ ├── tag_data_source.go │ │ ├── tag_data_source_model.go │ │ ├── tag_resource.go │ │ └── tag_resource_model.go │ ├── vda │ │ ├── vda_data_source.go │ │ └── vda_data_source_model.go │ └── zone │ │ ├── zone_data_source.go │ │ ├── zone_data_source_model.go │ │ ├── zone_resource.go │ │ └── zone_resource_model.go ├── examples │ ├── data-sources │ │ ├── citrix_access_control_policy_filter │ │ │ └── data-source.tf │ │ ├── citrix_admin_folder │ │ │ └── data-source.tf │ │ ├── citrix_admin_permissions │ │ │ └── data-source.tf │ │ ├── citrix_admin_role │ │ │ └── data-source.tf │ │ ├── citrix_admin_scope │ │ │ └── data-source.tf │ │ ├── citrix_admin_user │ │ │ └── data-source.tf │ │ ├── citrix_application_folder_details │ │ │ └── data-source.tf │ │ ├── citrix_bearer_token │ │ │ └── data-source.tf │ │ ├── citrix_branch_repeater_policy_filter │ │ │ └── data-source.tf │ │ ├── citrix_client_ip_policy_filter │ │ │ └── data-source.tf │ │ ├── citrix_client_name_policy_filter │ │ │ └── data-source.tf │ │ ├── citrix_client_platform_policy_filter │ │ │ └── data-source.tf │ │ ├── citrix_cloud_google_identity_provider │ │ │ └── data-source.tf │ │ ├── citrix_cloud_okta_identity_provider │ │ │ └── data-source.tf │ │ ├── citrix_cloud_resource_location │ │ │ └── data-source.tf │ │ ├── citrix_cloud_saml_identity_provider │ │ │ └── data-source.tf │ │ ├── citrix_delivery_group │ │ │ └── data-source.tf │ │ ├── citrix_delivery_group_policy_filter │ │ │ └── data-source.tf │ │ ├── citrix_delivery_group_type_policy_filter │ │ │ └── data-source.tf │ │ ├── citrix_hypervisor │ │ │ └── data-source.tf │ │ ├── citrix_hypervisor_resource_pool │ │ │ └── data-source.tf │ │ ├── citrix_image_definition │ │ │ └── data-source.tf │ │ ├── citrix_image_version │ │ │ └── data-source.tf │ │ ├── citrix_machine_catalog │ │ │ └── data-source.tf │ │ ├── citrix_ou_policy_filter │ │ │ └── data-source.tf │ │ ├── citrix_policy │ │ │ └── data-source.tf │ │ ├── citrix_policy_filters │ │ │ └── data-source.tf │ │ ├── citrix_policy_priority │ │ │ └── data-source.tf │ │ ├── citrix_policy_set │ │ │ └── data-source.tf │ │ ├── citrix_policy_set_v2 │ │ │ └── data-source.tf │ │ ├── citrix_policy_setting │ │ │ └── data-source.tf │ │ ├── citrix_pvs │ │ │ └── data-source.tf │ │ ├── citrix_quickcreate_aws_workspaces_account │ │ │ └── data-source.tf │ │ ├── citrix_quickcreate_aws_workspaces_cloudformation_template │ │ │ └── data-source.tf │ │ ├── citrix_quickcreate_aws_workspaces_deployment │ │ │ └── data-source.tf │ │ ├── citrix_quickcreate_aws_workspaces_directory_connection │ │ │ └── data-source.tf │ │ ├── citrix_quickcreate_aws_workspaces_image │ │ │ └── data-source.tf │ │ ├── citrix_quickdeploy_template_image │ │ │ └── data-source.tf │ │ ├── citrix_service_account │ │ │ └── data-source.tf │ │ ├── citrix_site │ │ │ └── data-source.tf │ │ ├── citrix_site_settings │ │ │ └── data-source.tf │ │ ├── citrix_stf_roaming_service │ │ │ └── data-source.tf │ │ ├── citrix_storefront_server │ │ │ └── data-source.tf │ │ ├── citrix_tag │ │ │ └── data-source.tf │ │ ├── citrix_tag_policy_filter │ │ │ └── data-source.tf │ │ ├── citrix_user_policy_filter │ │ │ └── data-source.tf │ │ ├── citrix_vda │ │ │ └── data-source.tf │ │ ├── citrix_wem_configuration_set │ │ │ └── data-source.tf │ │ └── citrix_zone │ │ │ └── data-source.tf │ ├── provider │ │ └── provider.tf │ └── resources │ │ ├── citrix_access_control_policy_filter │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_admin_folder │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_admin_role │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_admin_scope │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_admin_user │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_application │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_application_group │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_application_icon │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_aws_hypervisor │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_aws_hypervisor_resource_pool │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_azure_hypervisor │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_azure_hypervisor_resource_pool │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_branch_repeater_policy_filter │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_client_ip_policy_filter │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_client_name_policy_filter │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_client_platform_policy_filter │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_cloud_admin_user │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_cloud_google_identity_provider │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_cloud_okta_identity_provider │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_cloud_resource_location │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_cloud_saml_identity_provider │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_delivery_group │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_delivery_group_policy_filter │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_delivery_group_type_policy_filter │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_desktop_icon │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_gac_discovery │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_gac_settings │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_gcp_hypervisor │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_gcp_hypervisor_resource_pool │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_hpe_moonshot_hypervisor │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_image_definition │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_image_version │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_machine_catalog │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_machine_properties │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_nutanix_hypervisor │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_nutanix_hypervisor_resource_pool │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_openshift_hypervisor │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_openshift_hypervisor_resource_pool │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_ou_policy_filter │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_policy │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_policy_priority │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_policy_set │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_policy_set_v2 │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_policy_setting │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_quickcreate_aws_workspaces_account │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_quickcreate_aws_workspaces_deployment │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_quickcreate_aws_workspaces_directory_connection │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_quickcreate_aws_workspaces_image │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_quickdeploy_template_image │ │ └── resource.tf │ │ ├── citrix_remote_pc_wake_on_lan_hypervisor │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_scvmm_hypervisor │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_scvmm_hypervisor_resource_pool │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_service_account │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_site_backup_schedule │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_site_settings │ │ └── resource.tf │ │ ├── citrix_stf_authentication_service │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_stf_deployment │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_stf_store_service │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_stf_user_farm_mapping │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_stf_webreceiver_service │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_stf_xenapp_default_store │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_storefront_server │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_tag │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_tag_policy_filter │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_user_policy_filter │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_vsphere_hypervisor │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_vsphere_hypervisor_resource_pool │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_wem_configuration_set │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_wem_directory_object │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_xenserver_hypervisor │ │ ├── import.sh │ │ └── resource.tf │ │ ├── citrix_xenserver_hypervisor_resource_pool │ │ ├── import.sh │ │ └── resource.tf │ │ └── citrix_zone │ │ ├── import.sh │ │ └── resource.tf ├── middleware │ └── middleware.go ├── provider │ └── provider.go ├── quickcreate │ ├── qcs_account │ │ ├── aws_workspaces_account_data_source.go │ │ ├── aws_workspaces_account_data_source_model.go │ │ ├── aws_workspaces_account_resource.go │ │ ├── aws_workspaces_account_resource_model.go │ │ ├── aws_workspaces_cloudformation_data_source.go │ │ └── aws_workspaces_cloudformation_data_source_model.go │ ├── qcs_connection │ │ ├── aws_workspaces_directory_connection_data_source.go │ │ ├── aws_workspaces_directory_connection_data_source_model.go │ │ ├── aws_workspaces_directory_connection_resource.go │ │ └── aws_workspaces_directory_connection_resource_model.go │ ├── qcs_deployment │ │ ├── aws_workspace_deployment_data_source.go │ │ ├── aws_workspace_deployment_data_source_model.go │ │ ├── aws_workspaces_deployment_resource.go │ │ └── aws_workspaces_deployment_resource_model.go │ └── qcs_image │ │ ├── aws_workspaces_image_data_source.go │ │ ├── aws_workspaces_image_data_source_model.go │ │ ├── aws_workspaces_image_resource.go │ │ └── aws_workspaces_image_resource_model.go ├── quickdeploy │ └── cma_image │ │ ├── template_image_data_source.go │ │ ├── template_image_data_source_model.go │ │ ├── template_image_resource.go │ │ └── template_image_resource_model.go ├── storefront │ ├── stf_authentication │ │ ├── stf_authentication_service_resource.go │ │ └── stf_authentication_service_resource_model.go │ ├── stf_deployment │ │ ├── stf_deployment_resource.go │ │ └── stf_deployment_resource_model.go │ ├── stf_multi_site │ │ ├── stf_user_farm_mapping_resource.go │ │ └── stf_user_farm_mapping_resource_model.go │ ├── stf_roaming │ │ ├── stf_roaming_service_data_source.go │ │ └── stf_roaming_service_data_source_model.go │ ├── stf_store │ │ ├── stf_store_service_resource.go │ │ ├── stf_store_service_resource_model.go │ │ ├── stf_xenapp_default_store_resource.go │ │ └── stf_xenapp_default_store_resource_model.go │ └── stf_webreceiver │ │ ├── stf_webreceiver_resource.go │ │ └── stf_webreceiver_resource_model.go ├── test │ ├── admin_folder_data_source_test.go │ ├── admin_folder_resource_test.go │ ├── admin_permissions_data_source_test.go │ ├── admin_role_data_source_test.go │ ├── admin_role_resource_test.go │ ├── admin_scope_data_source_test.go │ ├── admin_scope_resource_test.go │ ├── admin_user_data_source_test.go │ ├── admin_user_resource_test.go │ ├── application_group_resource_test.go │ ├── application_resource_test.go │ ├── aws_workspaces_account_data_source_test.go │ ├── aws_workspaces_account_resource_test.go │ ├── aws_workspaces_cloudformation_template_test.go │ ├── aws_workspaces_deployment_data_source_test.go │ ├── aws_workspaces_deployment_resource_test.go │ ├── aws_workspaces_directory_connection_data_source_test.go │ ├── aws_workspaces_directory_connection_resource_test.go │ ├── aws_workspaces_image_data_source_test.go │ ├── aws_workspaces_image_resource_test.go │ ├── azure_mcs_suite_test.go │ ├── bearer_token_data_source_test.go │ ├── cloud_google_identity_provider_data_source_test.go │ ├── cloud_google_identity_provider_resource_test.go │ ├── cloud_okta_identity_provider_data_source_test.go │ ├── cloud_okta_identity_provider_resource_test.go │ ├── cloud_saml_identity_provider_data_source_test.go │ ├── cloud_saml_identity_provider_resource_test.go │ ├── common.go │ ├── delivery_group_data_source_test.go │ ├── delivery_group_test.go │ ├── desktop_icon_resource_test.go │ ├── gac_discovery_resource_test.go │ ├── gac_settings_resource_test.go │ ├── hypervisor_data_source_test.go │ ├── hypervisor_resource_pool_data_source_test.go │ ├── hypervisor_resource_pool_test.go │ ├── hypervisor_resource_test.go │ ├── image_definition_data_source_test.go │ ├── image_definition_resource_test.go │ ├── image_version_data_source_test.go │ ├── image_version_resource_test.go │ ├── machine_catalog_data_source_test.go │ ├── machine_catalog_pvs_datasource_test.go │ ├── machine_catalog_resource_pvs_test.go │ ├── machine_catalog_resource_test.go │ ├── machine_properties_resource_test.go │ ├── policy_data_source_test.go │ ├── policy_filter_data_source_test.go │ ├── policy_filters_data_source_test.go │ ├── policy_filters_resource_test.go │ ├── policy_priority_data_source_test.go │ ├── policy_priority_resource_test.go │ ├── policy_resource_test.go │ ├── policy_set_data_source_test.go │ ├── policy_set_resource_test.go │ ├── policy_set_v2_data_source_test.go │ ├── policy_set_v2_resource_test.go │ ├── policy_setting_data_source_test.go │ ├── policy_setting_resource_test.go │ ├── provider_test.go │ ├── resource_locations_data_source_test.go │ ├── resource_locations_resource_test.go │ ├── service_account_resource_test.go │ ├── site_data_source_test.go │ ├── site_settings_data_source_test.go │ ├── site_settings_resource_test.go │ ├── stf_authentication_service_resource_test.go │ ├── stf_deployment_resource_test.go │ ├── stf_roaming_service_data_source_test.go │ ├── stf_store_service_resource_test.go │ ├── stf_user_farm_mapping_resource_test.go │ ├── stf_webreceiver_service_resource_test.go │ ├── stf_xenapp_default_store_resource_test.go │ ├── storefront_server_data_source_test.go │ ├── sweeper_test.go │ ├── tag_data_source_test.go │ ├── tag_resource_test.go │ ├── template_image_resource_test.go │ ├── vda_data_source_test.go │ ├── wem_directory_object_resource_test.go │ ├── wem_site_service_data_source_test.go │ ├── wem_site_service_resource_test.go │ ├── zone_data_source_test.go │ └── zone_resource_test.go ├── util │ ├── cma_regions.go │ ├── common.go │ ├── enums.go │ ├── image.go │ ├── name-value-string-pair.go │ ├── policy_common.go │ ├── resource.go │ ├── timeouts.go │ └── types.go ├── validators │ ├── also_requires_on_values_validator.go │ ├── also_requires_on_values_validator_example_test.go │ ├── also_requires_one_of_on_values_validator.go │ ├── also_requires_one_of_on_values_validator_example_test.go │ ├── conflicts_with_on_values_validator.go │ ├── conflicts_with_on_values_validator_example_test.go │ ├── ip_filter_validator.go │ ├── ip_filter_validator_example_test.go │ └── ip_filter_validator_test.go └── wem │ ├── wem_machine_ad_object │ ├── wem_directory_object_resource.go │ ├── wem_directory_object_resource_model.go │ └── wem_directory_object_utils.go │ └── wem_site │ ├── wem_site_service_data_source.go │ ├── wem_site_service_data_source_model.go │ ├── wem_site_service_resource.go │ ├── wem_site_service_resource_model.go │ └── wem_site_service_utils.go ├── main.go ├── scripts ├── config-drift-notifier │ ├── README.md │ └── config-drift.ps1 ├── object-ids-helper │ ├── README.md │ └── cvad-object-ids.ps1 ├── onboarding-helper │ ├── README.md │ ├── images │ │ └── Onboarding Automation Workflow.png │ ├── terraform-onboarding.ps1 │ └── terraform.tf ├── storefront-onboarding-helper │ ├── README.md │ ├── storefront-terraform-onboarding.ps1 │ └── terraform.tf └── test-env-power-management │ └── azure_env.ps1 ├── settings.cloud.example.json ├── settings.onprem.example.json ├── templates ├── data-sources.md.tmpl ├── index.md.tmpl ├── resources.md.tmpl └── resources │ ├── application_icon.md.tmpl │ ├── desktop_icon.md.tmpl │ ├── gac_settings.md.tmpl │ ├── policy_set.md.tmpl │ └── zone.md.tmpl ├── terraform-registry-manifest.json └── tools └── tools.go /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for the Citrix Terraform Provider 4 | title: "[Feature]" 5 | labels: enhancement 6 | assignees: '' 7 | 8 | --- 9 | 10 | 11 | 12 | ## Describe the feature request 13 | 14 | **Summary:** 15 | 16 | **Is this an enhancement to an existing resource or data source, if so which one?** 17 | 18 | **If this is a new resource or data source describe what it should do.** 19 | 20 | **Link to any docs that cover this feature:** 21 | 22 | 23 | **Link to any APIs that cover this feature:** 24 | 25 | -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | # Terraform Provider release workflow. 2 | name: Release 3 | 4 | # This GitHub action creates a release when a tag that matches the pattern 5 | # "v*" (e.g. v0.1.0) is created. 6 | on: 7 | push: 8 | tags: 9 | - 'v*' 10 | 11 | # Releases need permissions to read and write the repository contents. 12 | # GitHub considers creating releases and uploading assets as writing contents. 13 | permissions: 14 | contents: write 15 | 16 | jobs: 17 | goreleaser: 18 | runs-on: ubuntu-latest 19 | steps: 20 | - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 21 | with: 22 | # Allow goreleaser to access older tag information. 23 | fetch-depth: 0 24 | - uses: actions/setup-go@0aaccfd150d50ccaeb58ebd88d36e91967a5f35b # v5.4.0 25 | with: 26 | go-version-file: 'go.mod' 27 | cache: true 28 | - name: Import GPG key 29 | uses: crazy-max/ghaction-import-gpg@e89d40939c28e39f97cf32126055eeae86ba74ec # v6.3.0 30 | id: import_gpg 31 | with: 32 | gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }} 33 | passphrase: ${{ secrets.PASSPHRASE }} 34 | - name: Run GoReleaser 35 | uses: goreleaser/goreleaser-action@9c156ee8a17a598857849441385a2041ef570552 # v6.3.0 36 | with: 37 | args: release --clean 38 | env: 39 | # GitHub sets the GITHUB_TOKEN secret automatically. 40 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 41 | GPG_FINGERPRINT: ${{ steps.import_gpg.outputs.fingerprint }} -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Terraform plugin framework .gitignore 2 | 3 | *.exe 4 | 5 | # VSCode .gitignore 6 | 7 | .vscode/* 8 | -------------------------------------------------------------------------------- /.golangci.yml: -------------------------------------------------------------------------------- 1 | version: "2" 2 | linters: 3 | default: none 4 | enable: 5 | - copyloopvar 6 | - durationcheck 7 | - errcheck 8 | - forcetypeassert 9 | - godot 10 | - ineffassign 11 | - makezero 12 | - misspell 13 | - nilerr 14 | - predeclared 15 | - staticcheck 16 | - unconvert 17 | - unparam 18 | - unused 19 | - usetesting 20 | exclusions: 21 | generated: lax 22 | presets: 23 | - comments 24 | - common-false-positives 25 | - legacy 26 | - std-error-handling 27 | paths: 28 | - third_party$ 29 | - builtin$ 30 | - examples$ 31 | issues: 32 | max-issues-per-linter: 0 33 | max-same-issues: 0 34 | formatters: 35 | enable: 36 | - gofmt 37 | exclusions: 38 | generated: lax 39 | paths: 40 | - third_party$ 41 | - builtin$ 42 | - examples$ 43 | -------------------------------------------------------------------------------- /ctx_metadata.yaml: -------------------------------------------------------------------------------- 1 | owner: zhuolunl 2 | pipeline: 3 | citool: '' 4 | releaseBranch: '' 5 | sonarqube: null 6 | productionUse: CustomerCurrent 7 | repoType: Other 8 | reporting: 9 | product: CVAD 10 | teamname: cvad-team-radhe 11 | -------------------------------------------------------------------------------- /docs/data-sources/access_control_policy_filter.md: -------------------------------------------------------------------------------- 1 | --- 2 | # generated by https://github.com/hashicorp/terraform-plugin-docs 3 | page_title: "citrix_access_control_policy_filter Data Source - citrix" 4 | subcategory: "CVAD" 5 | description: |- 6 | Data source of an instance of the Access Control Policy Filter. 7 | --- 8 | 9 | # citrix_access_control_policy_filter (Data Source) 10 | 11 | Data source of an instance of the Access Control Policy Filter. 12 | 13 | ## Example Usage 14 | 15 | ```terraform 16 | data "citrix_access_control_policy_filter" "example_filter" { 17 | id = "00000000-0000-0000-0000-000000000000" 18 | } 19 | ``` 20 | 21 | 22 | ## Schema 23 | 24 | ### Required 25 | 26 | - `id` (String) Id of the access control policy filter. 27 | 28 | ### Read-Only 29 | 30 | - `allowed` (Boolean) Indicate the filtered policy is allowed or denied if the filter condition is met. 31 | - `condition` (String) Gateway condition for the policy filter. 32 | - `connection_type` (String) Gateway connection for the policy filter. 33 | - `enabled` (Boolean) Indicate whether the filter is being enabled. 34 | - `gateway` (String) Gateway for the policy filter. 35 | - `policy_id` (String) Id of the policy to which the filter belongs. -------------------------------------------------------------------------------- /docs/data-sources/admin_folder.md: -------------------------------------------------------------------------------- 1 | --- 2 | # generated by https://github.com/hashicorp/terraform-plugin-docs 3 | page_title: "citrix_admin_folder Data Source - citrix" 4 | subcategory: "CVAD" 5 | description: |- 6 | Data source to get details regarding a specific admin folder. 7 | --- 8 | 9 | # citrix_admin_folder (Data Source) 10 | 11 | Data source to get details regarding a specific admin folder. 12 | 13 | ## Example Usage 14 | 15 | ```terraform 16 | # Get Admin Folder resource by id 17 | data "citrix_admin_folder" "test_admin_folder_data_source_with_id" { 18 | id = "0" 19 | } 20 | 21 | # Get Admin Folder resource by path 22 | data "citrix_admin_folder" "test_admin_folder_data_source_with_path" { 23 | path = "test123\\" 24 | } 25 | ``` 26 | 27 | 28 | ## Schema 29 | 30 | ### Optional 31 | 32 | - `id` (String) Identifier of the admin folder. 33 | - `path` (String) Path to the admin folder. 34 | 35 | ### Read-Only 36 | 37 | - `name` (String) Name of the admin folder. 38 | - `parent_path` (String) Path of the parent admin folder. 39 | - `total_application_groups` (Number) Number of application groups contained in the admin folder. 40 | - `total_applications` (Number) Number of applications contained in the admin folder. 41 | - `total_delivery_groups` (Number) Number of delivery groups contained in the admin folder. 42 | - `total_machine_catalogs` (Number) Number of machine catalogs contained in the admin folder. 43 | - `type` (Set of String) Set of types of the admin folder. -------------------------------------------------------------------------------- /docs/data-sources/admin_scope.md: -------------------------------------------------------------------------------- 1 | --- 2 | # generated by https://github.com/hashicorp/terraform-plugin-docs 3 | page_title: "citrix_admin_scope Data Source - citrix" 4 | subcategory: "CVAD" 5 | description: |- 6 | Data source to get details regarding a specific Administrator scope. 7 | --- 8 | 9 | # citrix_admin_scope (Data Source) 10 | 11 | Data source to get details regarding a specific Administrator scope. 12 | 13 | ## Example Usage 14 | 15 | ```terraform 16 | # Get Admin Scope resource by name 17 | data "citrix_admin_scope" "test_scope_by_name" { 18 | name = "All" 19 | } 20 | 21 | # Get Admin Scope resource by id 22 | data "citrix_admin_scope" "test_scope_by_id" { 23 | id = "00000000-0000-0000-0000-000000000000" 24 | } 25 | ``` 26 | 27 | 28 | ## Schema 29 | 30 | ### Optional 31 | 32 | - `id` (String) ID of the Admin Scope. 33 | - `name` (String) Name of the Admin Scope. For `tenant` scope please use `tenant customer Id` for this field. 34 | 35 | ### Read-Only 36 | 37 | - `description` (String) Description of the Admin Scope. 38 | - `is_all_scope` (Boolean) Indicates whether the Admin Scope is all scope or not. 39 | - `is_built_in` (Boolean) Indicates whether the Admin Scope is built-in or not. 40 | - `is_tenant_scope` (Boolean) Indicates whether the Admin Scope is tenant scope or not. 41 | - `tenant_id` (String) ID of the tenant to which the Admin Scope belongs. 42 | - `tenant_name` (String) Name of the tenant to which the Admin Scope belongs. -------------------------------------------------------------------------------- /docs/data-sources/admin_user.md: -------------------------------------------------------------------------------- 1 | --- 2 | # generated by https://github.com/hashicorp/terraform-plugin-docs 3 | page_title: "citrix_admin_user Data Source - citrix" 4 | subcategory: "CVAD" 5 | description: |- 6 | Data source of an administrator user for on-premise environment. 7 | --- 8 | 9 | # citrix_admin_user (Data Source) 10 | 11 | Data source of an administrator user for on-premise environment. 12 | 13 | ## Example Usage 14 | 15 | ```terraform 16 | # Get Admin Scope resource by id 17 | data "citrix_admin_user" "example_admin_user" { 18 | id = "00000000-0000-0000-0000-000000000000" 19 | } 20 | ``` 21 | 22 | 23 | ## Schema 24 | 25 | ### Required 26 | 27 | - `id` (String) ID of the admin user. 28 | 29 | ### Read-Only 30 | 31 | - `domain_name` (String) Name of the domain that the user is a part of. For example, if the domain is `example.com`, then provide the value `example` for this field. 32 | - `is_enabled` (Boolean) Flag to determine if the administrator is to be enabled or not. 33 | - `name` (String) Name of an existing user in the active directory. 34 | - `rights` (Attributes List) Rights to be associated with the admin user. (see [below for nested schema](#nestedatt--rights)) 35 | 36 | 37 | ### Nested Schema for `rights` 38 | 39 | Read-Only: 40 | 41 | - `role` (String) Name of the role to be associated with the admin user. 42 | - `scope` (String) Name of the scope to be associated with the admin user. -------------------------------------------------------------------------------- /docs/data-sources/bearer_token.md: -------------------------------------------------------------------------------- 1 | --- 2 | # generated by https://github.com/hashicorp/terraform-plugin-docs 3 | page_title: "citrix_bearer_token Data Source - citrix" 4 | subcategory: "CVAD" 5 | description: |- 6 | Data source to get bearer token. 7 | --- 8 | 9 | # citrix_bearer_token (Data Source) 10 | 11 | Data source to get bearer token. 12 | 13 | ## Example Usage 14 | 15 | ```terraform 16 | # Bearer token can be fetched with the citrix_bearer_token data source. 17 | data "citrix_bearer_token" "example_bearer_token" {} 18 | 19 | # The bearer token can then be output with terraform. `sensitive = true` is required for outputing sensitive data. 20 | output "example_bearer_token_output" { 21 | value = data.citrix_bearer_token.example_bearer_token.bearer_token 22 | sensitive = true 23 | } 24 | ``` 25 | 26 | 27 | ## Schema 28 | 29 | ### Read-Only 30 | 31 | - `bearer_token` (String, Sensitive) Value of the bearer token. -------------------------------------------------------------------------------- /docs/data-sources/branch_repeater_policy_filter.md: -------------------------------------------------------------------------------- 1 | --- 2 | # generated by https://github.com/hashicorp/terraform-plugin-docs 3 | page_title: "citrix_branch_repeater_policy_filter Data Source - citrix" 4 | subcategory: "CVAD" 5 | description: |- 6 | Data source of an instance of the Branch Repeater Policy Filter. 7 | --- 8 | 9 | # citrix_branch_repeater_policy_filter (Data Source) 10 | 11 | Data source of an instance of the Branch Repeater Policy Filter. 12 | 13 | ## Example Usage 14 | 15 | ```terraform 16 | data "citrix_branch_repeater_policy_filter" "example_filter" { 17 | id = "00000000-0000-0000-0000-000000000000" 18 | } 19 | ``` 20 | 21 | 22 | ## Schema 23 | 24 | ### Required 25 | 26 | - `id` (String) Id of the branch repeater policy filter. 27 | 28 | ### Read-Only 29 | 30 | - `allowed` (Boolean) Indicate the filtered policy is allowed or denied if the filter condition is met. 31 | - `policy_id` (String) Id of the policy to which the filter belongs. -------------------------------------------------------------------------------- /docs/data-sources/client_ip_policy_filter.md: -------------------------------------------------------------------------------- 1 | --- 2 | # generated by https://github.com/hashicorp/terraform-plugin-docs 3 | page_title: "citrix_client_ip_policy_filter Data Source - citrix" 4 | subcategory: "CVAD" 5 | description: |- 6 | Data source of an instance of the Client IP Policy Filter. 7 | --- 8 | 9 | # citrix_client_ip_policy_filter (Data Source) 10 | 11 | Data source of an instance of the Client IP Policy Filter. 12 | 13 | ## Example Usage 14 | 15 | ```terraform 16 | data "citrix_client_ip_policy_filter" "example_filter" { 17 | id = "00000000-0000-0000-0000-000000000000" 18 | } 19 | ``` 20 | 21 | 22 | ## Schema 23 | 24 | ### Required 25 | 26 | - `id` (String) Id of the client ip policy filter. 27 | 28 | ### Read-Only 29 | 30 | - `allowed` (Boolean) Indicate the filtered policy is allowed or denied if the filter condition is met. 31 | - `enabled` (Boolean) Indicate whether the filter is being enabled. 32 | - `ip_address` (String) IP Address of the client to be filtered. 33 | - `policy_id` (String) Id of the policy to which the filter belongs. -------------------------------------------------------------------------------- /docs/data-sources/client_name_policy_filter.md: -------------------------------------------------------------------------------- 1 | --- 2 | # generated by https://github.com/hashicorp/terraform-plugin-docs 3 | page_title: "citrix_client_name_policy_filter Data Source - citrix" 4 | subcategory: "CVAD" 5 | description: |- 6 | Data source of an instance of the Client Name Policy Filter. 7 | --- 8 | 9 | # citrix_client_name_policy_filter (Data Source) 10 | 11 | Data source of an instance of the Client Name Policy Filter. 12 | 13 | ## Example Usage 14 | 15 | ```terraform 16 | data "citrix_client_name_policy_filter" "example_filter" { 17 | id = "00000000-0000-0000-0000-000000000000" 18 | } 19 | ``` 20 | 21 | 22 | ## Schema 23 | 24 | ### Required 25 | 26 | - `id` (String) Id of the client name policy filter. 27 | 28 | ### Read-Only 29 | 30 | - `allowed` (Boolean) Indicate the filtered policy is allowed or denied if the filter condition is met. 31 | - `client_name` (String) Name of the client to be filtered. 32 | - `enabled` (Boolean) Indicate whether the filter is being enabled. 33 | - `policy_id` (String) Id of the policy to which the filter belongs. -------------------------------------------------------------------------------- /docs/data-sources/client_platform_policy_filter.md: -------------------------------------------------------------------------------- 1 | --- 2 | # generated by https://github.com/hashicorp/terraform-plugin-docs 3 | page_title: "citrix_client_platform_policy_filter Data Source - citrix" 4 | subcategory: "CVAD" 5 | description: |- 6 | Data source of an instance of the Client Platform Policy Filter. 7 | --- 8 | 9 | # citrix_client_platform_policy_filter (Data Source) 10 | 11 | Data source of an instance of the Client Platform Policy Filter. 12 | 13 | ## Example Usage 14 | 15 | ```terraform 16 | data "citrix_client_platform_policy_filter" "example_filter" { 17 | id = "00000000-0000-0000-0000-000000000000" 18 | } 19 | ``` 20 | 21 | 22 | ## Schema 23 | 24 | ### Required 25 | 26 | - `id` (String) Id of the client platform policy filter. 27 | 28 | ### Read-Only 29 | 30 | - `allowed` (Boolean) Indicate the filtered policy is allowed or denied if the filter condition is met. 31 | - `enabled` (Boolean) Indicate whether the filter is being enabled. 32 | - `platform` (String) Name of the client platform to be filtered. Available values are `Windows`, `Linux`, `Mac`, `Ios`, `Android`, and `Html5`. 33 | - `policy_id` (String) Id of the policy to which the filter belongs. -------------------------------------------------------------------------------- /docs/data-sources/cloud_google_identity_provider.md: -------------------------------------------------------------------------------- 1 | --- 2 | # generated by https://github.com/hashicorp/terraform-plugin-docs 3 | page_title: "citrix_cloud_google_identity_provider Data Source - citrix" 4 | subcategory: "Citrix Cloud" 5 | description: |- 6 | Data Source of a Citrix Cloud Google Cloud Identity Provider instance. Note that this feature is in Tech Preview. 7 | --- 8 | 9 | # citrix_cloud_google_identity_provider (Data Source) 10 | 11 | Data Source of a Citrix Cloud Google Cloud Identity Provider instance. Note that this feature is in Tech Preview. 12 | 13 | ## Example Usage 14 | 15 | ```terraform 16 | # Get Citrix Cloud Google Identity Provider data source by ID 17 | data "citrix_cloud_google_identity_provider" "example_google_identity_provider" { 18 | id = "00000000-0000-0000-0000-000000000000" 19 | } 20 | 21 | # Get Citrix Cloud Google Identity Provider data source by name 22 | data "citrix_cloud_google_identity_provider" "example_google_identity_provider" { 23 | name = "exampleGoogleIdentityProvider" 24 | } 25 | ``` 26 | 27 | 28 | ## Schema 29 | 30 | ### Optional 31 | 32 | - `id` (String) ID of the Citrix Cloud Google Cloud Identity Provider instance. 33 | - `name` (String) Name of the Citrix Cloud Google Cloud Identity Provider instance. 34 | 35 | ### Read-Only 36 | 37 | - `auth_domain_name` (String) User authentication domain name for Google Cloud Identity Provider. 38 | - `google_customer_id` (String) Customer ID of the configured Google Cloud Identity Provider. 39 | - `google_domain` (String) Domain of the configured Google Cloud Identity Provider. -------------------------------------------------------------------------------- /docs/data-sources/cloud_okta_identity_provider.md: -------------------------------------------------------------------------------- 1 | --- 2 | # generated by https://github.com/hashicorp/terraform-plugin-docs 3 | page_title: "citrix_cloud_okta_identity_provider Data Source - citrix" 4 | subcategory: "Citrix Cloud" 5 | description: |- 6 | Data source of a Citrix Cloud Okta Identity Provider instance. Note that this feature is in Tech Preview. 7 | --- 8 | 9 | # citrix_cloud_okta_identity_provider (Data Source) 10 | 11 | Data source of a Citrix Cloud Okta Identity Provider instance. Note that this feature is in Tech Preview. 12 | 13 | ## Example Usage 14 | 15 | ```terraform 16 | # Get Citrix Cloud Identity Provider data source by ID 17 | data "citrix_cloud_okta_identity_provider" "example_okta_identity_provider" { 18 | id = "00000000-0000-0000-0000-000000000000" 19 | } 20 | 21 | # Get Citrix Cloud Identity Provider data source by name 22 | data "citrix_cloud_okta_identity_provider" "example_okta_identity_provider" { 23 | name = "exampleOktaIdentityProvider" 24 | } 25 | ``` 26 | 27 | 28 | ## Schema 29 | 30 | ### Optional 31 | 32 | - `id` (String) ID of the Citrix Cloud Identity Provider instance. 33 | - `name` (String) Name of the Citrix Cloud Identity Provider instance. 34 | 35 | ### Read-Only 36 | 37 | - `okta_api_token` (String) Okta API token for configuring Okta Identity Provider. 38 | - `okta_client_id` (String) ID of the Okta client for configuring Okta Identity Provider. 39 | - `okta_client_secret` (String) Secret of the Okta client for configuring Okta Identity Provider. 40 | - `okta_domain` (String) Okta domain name for configuring Okta Identity Provider. -------------------------------------------------------------------------------- /docs/data-sources/cloud_resource_location.md: -------------------------------------------------------------------------------- 1 | --- 2 | # generated by https://github.com/hashicorp/terraform-plugin-docs 3 | page_title: "citrix_cloud_resource_location Data Source - citrix" 4 | subcategory: "Citrix Cloud" 5 | description: |- 6 | Read data of an existing resource location. 7 | --- 8 | 9 | # citrix_cloud_resource_location (Data Source) 10 | 11 | Read data of an existing resource location. 12 | 13 | ## Example Usage 14 | 15 | ```terraform 16 | # Get Resource Location resource by name 17 | data "citrix_cloud_resource_location" "example-resource-location" { 18 | name = "example-resource-location" 19 | } 20 | ``` 21 | 22 | 23 | ## Schema 24 | 25 | ### Required 26 | 27 | - `name` (String) Name of the resource location. 28 | 29 | ### Read-Only 30 | 31 | - `id` (String) ID of the resource location. 32 | - `internal_only` (Boolean) Flag to determine if the resource location can only be used internally. Defaults to `false`. 33 | - `time_zone` (String) Timezone associated with the resource location. Please refer to the `Timezone` column in the following [table](https://learn.microsoft.com/en-us/windows-hardware/manufacture/desktop/default-time-zones?view=windows-11#time-zones) for allowed values. -------------------------------------------------------------------------------- /docs/data-sources/delivery_group_policy_filter.md: -------------------------------------------------------------------------------- 1 | --- 2 | # generated by https://github.com/hashicorp/terraform-plugin-docs 3 | page_title: "citrix_delivery_group_policy_filter Data Source - citrix" 4 | subcategory: "CVAD" 5 | description: |- 6 | Data source of an instance of the Delivery Group Policy Filter. 7 | --- 8 | 9 | # citrix_delivery_group_policy_filter (Data Source) 10 | 11 | Data source of an instance of the Delivery Group Policy Filter. 12 | 13 | ## Example Usage 14 | 15 | ```terraform 16 | data "citrix_delivery_group_policy_filter" "example_filter" { 17 | id = "00000000-0000-0000-0000-000000000000" 18 | } 19 | ``` 20 | 21 | 22 | ## Schema 23 | 24 | ### Required 25 | 26 | - `id` (String) Id of the delivery group policy filter. 27 | 28 | ### Read-Only 29 | 30 | - `allowed` (Boolean) Indicate the filtered policy is allowed or denied if the filter condition is met. 31 | - `delivery_group_id` (String) Id of the delivery group to be filtered. 32 | - `enabled` (Boolean) Indicate whether the filter is being enabled. 33 | - `policy_id` (String) Id of the policy to which the filter belongs. -------------------------------------------------------------------------------- /docs/data-sources/delivery_group_type_policy_filter.md: -------------------------------------------------------------------------------- 1 | --- 2 | # generated by https://github.com/hashicorp/terraform-plugin-docs 3 | page_title: "citrix_delivery_group_type_policy_filter Data Source - citrix" 4 | subcategory: "CVAD" 5 | description: |- 6 | Data source of an instance of the Delivery Group Type Policy Filter. 7 | --- 8 | 9 | # citrix_delivery_group_type_policy_filter (Data Source) 10 | 11 | Data source of an instance of the Delivery Group Type Policy Filter. 12 | 13 | ## Example Usage 14 | 15 | ```terraform 16 | data "citrix_delivery_group_type_policy_filter" "example_filter" { 17 | id = "00000000-0000-0000-0000-000000000000" 18 | } 19 | ``` 20 | 21 | 22 | ## Schema 23 | 24 | ### Required 25 | 26 | - `id` (String) Id of the delivery group type policy filter. 27 | 28 | ### Read-Only 29 | 30 | - `allowed` (Boolean) Indicate the filtered policy is allowed or denied if the filter condition is met. 31 | - `delivery_group_type` (String) Id of the delivery group to be filtered. 32 | - `enabled` (Boolean) Indicate whether the filter is being enabled. 33 | - `policy_id` (String) Id of the policy to which the filter belongs. -------------------------------------------------------------------------------- /docs/data-sources/hypervisor.md: -------------------------------------------------------------------------------- 1 | --- 2 | # generated by https://github.com/hashicorp/terraform-plugin-docs 3 | page_title: "citrix_hypervisor Data Source - citrix" 4 | subcategory: "CVAD" 5 | description: |- 6 | Read data of an existing hypervisor. 7 | --- 8 | 9 | # citrix_hypervisor (Data Source) 10 | 11 | Read data of an existing hypervisor. 12 | 13 | ## Example Usage 14 | 15 | ```terraform 16 | # Get Hypervisor resource of any connection type by name 17 | data "citrix_hypervisor" "azure-hypervisor" { 18 | name = "azure-hyperv" 19 | } 20 | 21 | # Get Hypervisor resource of any connection type by id 22 | data "citrix_hypervisor" "azure-hypervisor" { 23 | id = "00000000-0000-0000-0000-000000000000" 24 | } 25 | ``` 26 | 27 | 28 | ## Schema 29 | 30 | ### Optional 31 | 32 | - `id` (String) GUID identifier of the hypervisor. 33 | - `name` (String) Name of the hypervisor. 34 | 35 | ### Read-Only 36 | 37 | - `tenants` (Set of String) A set of identifiers of tenants to associate with the hypervisor connection. -------------------------------------------------------------------------------- /docs/data-sources/hypervisor_resource_pool.md: -------------------------------------------------------------------------------- 1 | --- 2 | # generated by https://github.com/hashicorp/terraform-plugin-docs 3 | page_title: "citrix_hypervisor_resource_pool Data Source - citrix" 4 | subcategory: "CVAD" 5 | description: |- 6 | Read data of an existing hypervisor resource pool. 7 | --- 8 | 9 | # citrix_hypervisor_resource_pool (Data Source) 10 | 11 | Read data of an existing hypervisor resource pool. 12 | 13 | ## Example Usage 14 | 15 | ```terraform 16 | # Get Hypervisor Resource Pool of any connection type resource by name and the hypervisor name it belongs to 17 | data "citrix_hypervisor_resource_pool" "azure-resource-pool" { 18 | name = "azure-rp" 19 | hypervisor_name = "azure-hyperv" 20 | } 21 | 22 | # Get Hypervisor Resource Pool of any connection type resource by id and the hypervisor name it belongs to 23 | data "citrix_hypervisor_resource_pool" "azure-resource-pool" { 24 | id = "00000000-0000-0000-0000-000000000000" 25 | hypervisor_name = "azure-hyperv" 26 | } 27 | ``` 28 | 29 | 30 | ## Schema 31 | 32 | ### Required 33 | 34 | - `hypervisor_name` (String) Name of the hypervisor to which the resource pool belongs. 35 | 36 | ### Optional 37 | 38 | - `id` (String) GUID identifier of the hypervisor resource pool. 39 | - `name` (String) Name of the hypervisor resource pool. 40 | 41 | ### Read-Only 42 | 43 | - `networks` (List of String) Networks available in the hypervisor resource pool. -------------------------------------------------------------------------------- /docs/data-sources/ou_policy_filter.md: -------------------------------------------------------------------------------- 1 | --- 2 | # generated by https://github.com/hashicorp/terraform-plugin-docs 3 | page_title: "citrix_ou_policy_filter Data Source - citrix" 4 | subcategory: "CVAD" 5 | description: |- 6 | Data source of an instance of the Organizational Unit Policy Filter. 7 | --- 8 | 9 | # citrix_ou_policy_filter (Data Source) 10 | 11 | Data source of an instance of the Organizational Unit Policy Filter. 12 | 13 | ## Example Usage 14 | 15 | ```terraform 16 | data "citrix_ou_policy_filter" "example_filter" { 17 | id = "00000000-0000-0000-0000-000000000000" 18 | } 19 | ``` 20 | 21 | 22 | ## Schema 23 | 24 | ### Required 25 | 26 | - `id` (String) Id of the organizational unit policy filter. 27 | 28 | ### Read-Only 29 | 30 | - `allowed` (Boolean) Indicate the filtered policy is allowed or denied if the filter condition is met. 31 | - `enabled` (Boolean) Indicate whether the filter is being enabled. 32 | - `ou` (String) Organizational Unit to be filtered. 33 | - `policy_id` (String) Id of the policy to which the filter belongs. -------------------------------------------------------------------------------- /docs/data-sources/policy.md: -------------------------------------------------------------------------------- 1 | --- 2 | # generated by https://github.com/hashicorp/terraform-plugin-docs 3 | page_title: "citrix_policy Data Source - citrix" 4 | subcategory: "CVAD" 5 | description: |- 6 | Data source of an instance of the Policy. 7 | ~> Please Note Each policy can only associate with one policy set. The policy will be created in the default policy set if the policy is not referenced in any of the policy_ids of the citrix_policy_set_v2 resource. 8 | --- 9 | 10 | # citrix_policy (Data Source) 11 | 12 | Data source of an instance of the Policy. 13 | 14 | ~> **Please Note** Each policy can only associate with one policy set. The policy will be created in the default policy set if the policy is not referenced in any of the `policy_ids` of the `citrix_policy_set_v2` resource. 15 | 16 | ## Example Usage 17 | 18 | ```terraform 19 | # Get Policy data source by id 20 | data "citrix_policy" "example_policy_data_source_with_id" { 21 | id = "00000000-0000-0000-0000-000000000000" 22 | } 23 | 24 | # Get Policy data source by name and policy set id 25 | data "citrix_policy" "example_policy_data_source_with_name" { 26 | policy_set_id = "00000000-0000-0000-0000-000000000000" 27 | name = "example-policy-set" 28 | } 29 | ``` 30 | 31 | 32 | ## Schema 33 | 34 | ### Optional 35 | 36 | - `id` (String) Id of the policy. 37 | - `name` (String) Name of the policy. 38 | - `policy_set_id` (String) Id of the policy set the policy belongs to. 39 | 40 | ### Read-Only 41 | 42 | - `description` (String) Description of the policy. 43 | - `enabled` (Boolean) Indicate whether the policy is being enabled. -------------------------------------------------------------------------------- /docs/data-sources/policy_priority.md: -------------------------------------------------------------------------------- 1 | --- 2 | # generated by https://github.com/hashicorp/terraform-plugin-docs 3 | page_title: "citrix_policy_priority Data Source - citrix" 4 | subcategory: "CVAD" 5 | description: |- 6 | Data source of the policy priorities within a policy set. 7 | --- 8 | 9 | # citrix_policy_priority (Data Source) 10 | 11 | Data source of the policy priorities within a policy set. 12 | 13 | ## Example Usage 14 | 15 | ```terraform 16 | # Get Policy Priority data source by policy_set_id 17 | data "citrix_policy_priority" "example_policy_priority_data_source_with_policy_set_id" { 18 | policy_set_id = "00000000-0000-0000-0000-000000000000" 19 | } 20 | 21 | # Get Policy Priority data source by policy_set_name 22 | data "citrix_policy" "example_policy_data_source_with_name" { 23 | policy_set_name = "example-policy-set" 24 | } 25 | ``` 26 | 27 | 28 | ## Schema 29 | 30 | ### Optional 31 | 32 | - `policy_set_id` (String) GUID identifier of the policy set. 33 | - `policy_set_name` (String) Name of the policy set. 34 | 35 | ### Read-Only 36 | 37 | - `policy_names` (List of String) Ordered list of policy names. 38 | 39 | -> **Note** The order of policy names in the list reflects the priority of the policies. 40 | - `policy_priority` (List of String) Ordered list of policy IDs. 41 | 42 | -> **Note** The order of policy IDs in the list determines the priority of the policies. -------------------------------------------------------------------------------- /docs/data-sources/policy_set_v2.md: -------------------------------------------------------------------------------- 1 | --- 2 | # generated by https://github.com/hashicorp/terraform-plugin-docs 3 | page_title: "citrix_policy_set_v2 Data Source - citrix" 4 | subcategory: "CVAD" 5 | description: |- 6 | Data source of a policy set and the policies within it. The order of the policies specified in this resource reflect the policy priority. 7 | --- 8 | 9 | # citrix_policy_set_v2 (Data Source) 10 | 11 | Data source of a policy set and the policies within it. The order of the policies specified in this resource reflect the policy priority. 12 | 13 | ## Example Usage 14 | 15 | ```terraform 16 | # Get Policy Set data source by id 17 | data "citrix_policy_set_v2" "example_policy_set_v2_data_source_with_id" { 18 | id = "00000000-0000-0000-0000-000000000000" 19 | } 20 | 21 | # Get Policy Set data source by name 22 | data "citrix_policy_set_v2" "example_policy_set_v2_data_source_with_name" { 23 | name = "example-policy-set-v2" 24 | } 25 | ``` 26 | 27 | 28 | ## Schema 29 | 30 | ### Optional 31 | 32 | - `id` (String) GUID identifier of the policy set. 33 | - `name` (String) Name of the policy set. 34 | 35 | ### Read-Only 36 | 37 | - `assigned` (Boolean) Indicate whether the policy set is being assigned to delivery groups. 38 | - `delivery_groups` (Set of String) The IDs of the delivery groups for the policy set to apply on. 39 | - `description` (String) Description of the policy set. 40 | - `scopes` (Set of String) The IDs of the scopes for the policy set to be a part of. -------------------------------------------------------------------------------- /docs/data-sources/policy_setting.md: -------------------------------------------------------------------------------- 1 | --- 2 | # generated by https://github.com/hashicorp/terraform-plugin-docs 3 | page_title: "citrix_policy_setting Data Source - citrix" 4 | subcategory: "CVAD" 5 | description: |- 6 | Data source of a policy setting. 7 | --- 8 | 9 | # citrix_policy_setting (Data Source) 10 | 11 | Data source of a policy setting. 12 | 13 | ## Example Usage 14 | 15 | ```terraform 16 | # Get Policy Setting data source by id 17 | data "citrix_policy_setting" "example_policy_setting_data_source_with_id" { 18 | id = "00000000-0000-0000-0000-000000000000" 19 | } 20 | 21 | # Get Policy data source by name and policy set id 22 | data "citrix_policy_setting" "example_policy_setting_data_source_with_name" { 23 | policy_id = "00000000-0000-0000-0000-000000000000" 24 | name = "AdvanceWarningPeriod" 25 | } 26 | ``` 27 | 28 | 29 | ## Schema 30 | 31 | ### Optional 32 | 33 | - `id` (String) Id of the policy setting. 34 | - `name` (String) Name of the policy setting. 35 | - `policy_id` (String) Id of the policy to which the setting belongs. 36 | 37 | ### Read-Only 38 | 39 | - `enabled` (Boolean) Whether of the policy setting has enabled or allowed value. 40 | - `use_default` (Boolean) Indicate whether using default value for the policy setting. 41 | - `value` (String) Value of the policy setting. -------------------------------------------------------------------------------- /docs/data-sources/pvs.md: -------------------------------------------------------------------------------- 1 | --- 2 | # generated by https://github.com/hashicorp/terraform-plugin-docs 3 | page_title: "citrix_pvs Data Source - citrix" 4 | subcategory: "CVAD" 5 | description: |- 6 | PVS Configuration to create machine catalog using PVSStreaming. 7 | --- 8 | 9 | # citrix_pvs (Data Source) 10 | 11 | PVS Configuration to create machine catalog using PVSStreaming. 12 | 13 | ## Example Usage 14 | 15 | ```terraform 16 | data "citrix_pvs" "example_pvs_config" { 17 | pvs_farm_name = "test-farm" 18 | pvs_site_name = "test-site" 19 | pvs_store_name = "test-store" 20 | pvs_vdisk_name = "test-vdisk" 21 | } 22 | ``` 23 | 24 | 25 | ## Schema 26 | 27 | ### Required 28 | 29 | - `pvs_farm_name` (String) Name of the PVS farm. 30 | - `pvs_site_name` (String) Name of the PVS site. 31 | - `pvs_store_name` (String) Name of the PVS store. 32 | - `pvs_vdisk_name` (String) Name of the PVS vDisk. 33 | 34 | ### Read-Only 35 | 36 | - `pvs_site_id` (String) Id of the PVS site. 37 | - `pvs_vdisk_id` (String) Id of the PVS vDisk. -------------------------------------------------------------------------------- /docs/data-sources/quickcreate_aws_workspaces_account.md: -------------------------------------------------------------------------------- 1 | --- 2 | # generated by https://github.com/hashicorp/terraform-plugin-docs 3 | page_title: "citrix_quickcreate_aws_workspaces_account Data Source - citrix" 4 | subcategory: "DaaS Quick Deploy - AWS WorkSpaces Core" 5 | description: |- 6 | Data source to get details of an AWS WorkSpaces account. 7 | --- 8 | 9 | # citrix_quickcreate_aws_workspaces_account (Data Source) 10 | 11 | Data source to get details of an AWS WorkSpaces account. 12 | 13 | ## Example Usage 14 | 15 | ```terraform 16 | # Get details of a Citrix QuickCreate AWS WorkSpaces Account using the account GUID 17 | data "citrix_quickcreate_aws_workspaces_account" "example-account" { 18 | id = "00000000-0000-0000-0000-000000000000" 19 | } 20 | 21 | # Get details of a Citrix QuickCreate AWS WorkSpaces Account using the account name 22 | data "citrix_quickcreate_aws_workspaces_account" "example-account" { 23 | name = "exampleAccountName" 24 | } 25 | ``` 26 | 27 | 28 | ## Schema 29 | 30 | ### Optional 31 | 32 | - `id` (String) GUID identifier of the account. 33 | - `name` (String) Name of the account. 34 | 35 | ### Read-Only 36 | 37 | - `aws_account` (String) AWS account number associated with the account. 38 | - `aws_byol_feature_enabled` (Boolean) Indicates if the associated AWS EDC account has BYOL support enabled. 39 | - `aws_region` (String) AWS region the account is associated with. -------------------------------------------------------------------------------- /docs/data-sources/quickcreate_aws_workspaces_deployment.md: -------------------------------------------------------------------------------- 1 | --- 2 | # generated by https://github.com/hashicorp/terraform-plugin-docs 3 | page_title: "citrix_quickcreate_aws_workspaces_deployment Data Source - citrix" 4 | subcategory: "DaaS Quick Deploy - AWS WorkSpaces Core" 5 | description: |- 6 | Data source to get details of an AWS WorkSpaces deployment. 7 | --- 8 | 9 | # citrix_quickcreate_aws_workspaces_deployment (Data Source) 10 | 11 | Data source to get details of an AWS WorkSpaces deployment. 12 | 13 | ## Example Usage 14 | 15 | ```terraform 16 | # Get details of a Citrix QuickCreate AWS WorkSpaces Deployment using deployment id 17 | data "citrix_quickcreate_aws_workspaces_deployment" "example-deployment" { 18 | id = "00000000-0000-0000-0000-000000000000" 19 | } 20 | 21 | # Get details of a Citrix QuickCreate AWS WorkSpaces Deployment using deployment name and account id 22 | data "citrix_quickcreate_aws_workspaces_deployment" "example-deployment" { 23 | account_id = citrix_quickcreate_aws_workspaces_account.example_aws_workspaces_account_role_arn.id 24 | name = "exampleDeploymentName" 25 | } 26 | ``` 27 | 28 | 29 | ## Schema 30 | 31 | ### Optional 32 | 33 | - `account_id` (String) GUID of the account. 34 | - `id` (String) GUID identifier of the deployment. 35 | - `name` (String) Name of the deployment. 36 | 37 | ### Read-Only 38 | 39 | - `directory_connection_id` (String) GUID of the directory connection. 40 | - `image_id` (String) GUID of the image. -------------------------------------------------------------------------------- /docs/data-sources/quickdeploy_template_image.md: -------------------------------------------------------------------------------- 1 | --- 2 | # generated by https://github.com/hashicorp/terraform-plugin-docs 3 | page_title: "citrix_quickdeploy_template_image Data Source - citrix" 4 | subcategory: "DaaS Quick Deploy - Citrix Managed Azure" 5 | description: |- 6 | Data Source of an Citrix Managed Azure image. 7 | --- 8 | 9 | # citrix_quickdeploy_template_image (Data Source) 10 | 11 | Data Source of an Citrix Managed Azure image. 12 | 13 | ## Example Usage 14 | 15 | ```terraform 16 | # Get details of a Citrix QuickDeploy Template Image with image name 17 | data "citrix_quickdeploy_template_image" "example_template_image" { 18 | name = "example-image-name" 19 | } 20 | ``` 21 | 22 | 23 | ## Schema 24 | 25 | ### Required 26 | 27 | - `name` (String) Name of the image. 28 | 29 | ### Read-Only 30 | 31 | - `id` (String) GUID identifier of the image. 32 | - `machine_generation` (String) The generation of the virtual machine this image will be used to create. 33 | - `notes` (String) Notes of the image. 34 | - `os_platform` (String) The OS platform of the image. 35 | - `region` (String) The Azure region the image was imported to. 36 | - `secure_boot_enabled` (Boolean) Indicates whether the image supports Secure Boot. 37 | - `state` (String) State of the image. 38 | - `subscription_name` (String) The name of the Citrix Managed Azure subscription the image was imported to. 39 | - `vtpm_enabled` (Boolean) Indicates whether the image supports vTPM TrustedLaunch. -------------------------------------------------------------------------------- /docs/data-sources/service_account.md: -------------------------------------------------------------------------------- 1 | --- 2 | # generated by https://github.com/hashicorp/terraform-plugin-docs 3 | page_title: "citrix_service_account Data Source - citrix" 4 | subcategory: "CVAD" 5 | description: |- 6 | Data source to get details for a service account. 7 | --- 8 | 9 | # citrix_service_account (Data Source) 10 | 11 | Data source to get details for a service account. 12 | 13 | ## Example Usage 14 | 15 | ```terraform 16 | data citrix_service_account example-azuread-service-account { 17 | account_id = "" 18 | } 19 | 20 | data citrix_service_account example-ad-service-account { 21 | account_id = "domain\\admin" # Admin user name 22 | } 23 | ``` 24 | 25 | 26 | ## Schema 27 | 28 | ### Required 29 | 30 | - `account_id` (String) The account ID of the service account. 31 | 32 | -> **Note** For Active Directory, this is the username. Username should be in `domain\username` format. For AzureAD, this is the application ID. The account ID must be in lowercase. 33 | 34 | ### Read-Only 35 | 36 | - `display_name` (String) Display name of the service account. 37 | - `id` (String) GUID identifier of the service account. -------------------------------------------------------------------------------- /docs/data-sources/site.md: -------------------------------------------------------------------------------- 1 | --- 2 | # generated by https://github.com/hashicorp/terraform-plugin-docs 3 | page_title: "citrix_site Data Source - citrix" 4 | subcategory: "CVAD" 5 | description: |- 6 | Data source to get site information. 7 | --- 8 | 9 | # citrix_site (Data Source) 10 | 11 | Data source to get site information. 12 | 13 | ## Example Usage 14 | 15 | ```terraform 16 | # Site information can be fetched with the citrix_site data source. 17 | data "citrix_site" "example_citrix_site" {} 18 | ``` 19 | 20 | 21 | ## Schema 22 | 23 | ### Read-Only 24 | 25 | - `customer_id` (String) ID of the customer the site belongs to. 26 | - `is_citrix_service_provider` (Boolean) Indicates whether the site belongs to a Citrix Service Provider. 27 | - `is_on_premises` (Boolean) Indicates whether the site is an On Premises site. 28 | - `orchestration_api_version` (Number) Version of the Orchestration Service API. 29 | - `product_version` (String) Version of the product. 30 | - `site_id` (String) ID of the site. -------------------------------------------------------------------------------- /docs/data-sources/stf_roaming_service.md: -------------------------------------------------------------------------------- 1 | --- 2 | # generated by https://github.com/hashicorp/terraform-plugin-docs 3 | page_title: "citrix_stf_roaming_service Data Source - citrix" 4 | subcategory: "StoreFront" 5 | description: |- 6 | Data source to get details regarding a specific StoreFront Roaming Service instance. 7 | --- 8 | 9 | # citrix_stf_roaming_service (Data Source) 10 | 11 | Data source to get details regarding a specific StoreFront Roaming Service instance. 12 | 13 | ## Example Usage 14 | 15 | ```terraform 16 | # Get details of a Citrix StoreFront Roming Service by site_id 17 | data "citrix_hypervisor_resource_pool" "azure-resource-pool" { 18 | site_id = "1" 19 | } 20 | ``` 21 | 22 | 23 | ## Schema 24 | 25 | ### Required 26 | 27 | - `site_id` (String) ID of the site where the StoreFront Roaming Service instance is created. 28 | 29 | ### Read-Only 30 | 31 | - `configuration_file` (String) Path of the configuration file of the StoreFront Roaming Service instance. 32 | - `feature_instance_id` (String) ID of the StoreFront Roaming Service feature instance. 33 | - `friendly_name` (String) Friendly name of the StoreFront Roaming Service instance. 34 | - `name` (String) Name of the StoreFront Roaming Service instance. 35 | - `physical_path` (String) Physical path of the StoreFront Roaming Service instance. 36 | - `tenant_id` (String) ID of the tenant to which the StoreFront Roaming Service instance belongs. 37 | - `virtual_path` (String) Virtual path of the StoreFront Roaming Service instance. -------------------------------------------------------------------------------- /docs/data-sources/storefront_server.md: -------------------------------------------------------------------------------- 1 | --- 2 | # generated by https://github.com/hashicorp/terraform-plugin-docs 3 | page_title: "citrix_storefront_server Data Source - citrix" 4 | subcategory: "CVAD" 5 | description: |- 6 | Data source of a StoreFront server. 7 | --- 8 | 9 | # citrix_storefront_server (Data Source) 10 | 11 | Data source of a StoreFront server. 12 | 13 | ## Example Usage 14 | 15 | ```terraform 16 | # Get StoreFront Server data source by name 17 | data "citrix_storefront_server" "example_storefront_server_by_name" { 18 | name = "ExampleStoreFrontServer" 19 | } 20 | 21 | # Get StoreFront Server data source by id 22 | data "citrix_storefront_server" "example_storefront_server_by_id" { 23 | id = "00000000-0000-0000-0000-000000000000" 24 | } 25 | ``` 26 | 27 | 28 | ## Schema 29 | 30 | ### Optional 31 | 32 | - `id` (String) GUID identifier of the StoreFront server. 33 | - `name` (String) Name of the StoreFront server. 34 | 35 | ### Read-Only 36 | 37 | - `description` (String) Description of the StoreFront server. 38 | - `enabled` (Boolean) Indicates if the StoreFront server is enabled. Default is `true`. 39 | - `url` (String) URL for connecting to the StoreFront server. -------------------------------------------------------------------------------- /docs/data-sources/tag.md: -------------------------------------------------------------------------------- 1 | --- 2 | # generated by https://github.com/hashicorp/terraform-plugin-docs 3 | page_title: "citrix_tag Data Source - citrix" 4 | subcategory: "CVAD" 5 | description: |- 6 | Data source of a tag. 7 | --- 8 | 9 | # citrix_tag (Data Source) 10 | 11 | Data source of a tag. 12 | 13 | ## Example Usage 14 | 15 | ```terraform 16 | # Get Tag detail by name 17 | data "citrix_tag" "example_tag_by_name" { 18 | name = "exampleTag" 19 | } 20 | 21 | # Get Tag detail by id 22 | data "citrix_tag" "example_tag_by_id" { 23 | id = "00000000-0000-0000-0000-000000000000" 24 | } 25 | ``` 26 | 27 | 28 | ## Schema 29 | 30 | ### Optional 31 | 32 | - `id` (String) GUID identifier of the tag. 33 | - `name` (String) Name of the tag. 34 | 35 | ### Read-Only 36 | 37 | - `associated_application_count` (Number) Number of applications associated with the tag. 38 | - `associated_application_group_count` (Number) Number of application groups associated with the tag. 39 | - `associated_delivery_group_count` (Number) Number of delivery groups associated with the tag. 40 | - `associated_machine_catalog_count` (Number) Number of machine catalogs associated with the tag. 41 | - `associated_machine_count` (Number) Number of machines associated with the tag. 42 | - `description` (String) Description of the tag. 43 | - `scopes` (Set of String) -------------------------------------------------------------------------------- /docs/data-sources/tag_policy_filter.md: -------------------------------------------------------------------------------- 1 | --- 2 | # generated by https://github.com/hashicorp/terraform-plugin-docs 3 | page_title: "citrix_tag_policy_filter Data Source - citrix" 4 | subcategory: "CVAD" 5 | description: |- 6 | Data source of an instance of the Tag Policy Filter. 7 | --- 8 | 9 | # citrix_tag_policy_filter (Data Source) 10 | 11 | Data source of an instance of the Tag Policy Filter. 12 | 13 | ## Example Usage 14 | 15 | ```terraform 16 | data "citrix_tag_policy_filter" "example_filter" { 17 | id = "00000000-0000-0000-0000-000000000000" 18 | } 19 | ``` 20 | 21 | 22 | ## Schema 23 | 24 | ### Required 25 | 26 | - `id` (String) Id of the tag policy filter. 27 | 28 | ### Read-Only 29 | 30 | - `allowed` (Boolean) Indicate the filtered policy is allowed or denied if the filter condition is met. 31 | - `enabled` (Boolean) Indicate whether the filter is being enabled. 32 | - `policy_id` (String) Id of the policy to which the filter belongs. 33 | - `tag` (String) ID of the tag to be filtered. -------------------------------------------------------------------------------- /docs/data-sources/user_policy_filter.md: -------------------------------------------------------------------------------- 1 | --- 2 | # generated by https://github.com/hashicorp/terraform-plugin-docs 3 | page_title: "citrix_user_policy_filter Data Source - citrix" 4 | subcategory: "CVAD" 5 | description: |- 6 | Data source of an instance of the User Policy Filter. 7 | --- 8 | 9 | # citrix_user_policy_filter (Data Source) 10 | 11 | Data source of an instance of the User Policy Filter. 12 | 13 | ## Example Usage 14 | 15 | ```terraform 16 | data "citrix_user_policy_filter" "example_filter" { 17 | id = "00000000-0000-0000-0000-000000000000" 18 | } 19 | ``` 20 | 21 | 22 | ## Schema 23 | 24 | ### Required 25 | 26 | - `id` (String) Id of the user policy filter. 27 | 28 | ### Read-Only 29 | 30 | - `allowed` (Boolean) Indicate the filtered policy is allowed or denied if the filter condition is met. 31 | - `enabled` (Boolean) Indicate whether the filter is being enabled. 32 | - `policy_id` (String) Id of the policy to which the filter belongs. 33 | - `sid` (String) SID of the user or user group to be filtered. -------------------------------------------------------------------------------- /docs/data-sources/wem_configuration_set.md: -------------------------------------------------------------------------------- 1 | --- 2 | # generated by https://github.com/hashicorp/terraform-plugin-docs 3 | page_title: "citrix_wem_configuration_set Data Source - citrix" 4 | subcategory: "WEM" 5 | description: |- 6 | Data source to get details regarding a specific configuration set. 7 | --- 8 | 9 | # citrix_wem_configuration_set (Data Source) 10 | 11 | Data source to get details regarding a specific configuration set. 12 | 13 | ## Example Usage 14 | 15 | ```terraform 16 | # Get WEM configuration set by id 17 | data "citrix_wem_configuration_set" "test_wem_configuration_set_by_id" { 18 | id = "1" 19 | } 20 | 21 | # Get WEM configuration set by name 22 | data "citrix_wem_configuration_set" "test_wem_configuration_set_by_name" { 23 | name = "Default Site" 24 | } 25 | ``` 26 | 27 | 28 | ## Schema 29 | 30 | ### Optional 31 | 32 | - `id` (String) ID of the WEM configuration set. 33 | - `name` (String) Name of the configuration set. 34 | 35 | ### Read-Only 36 | 37 | - `description` (String) Description of the configuration set. -------------------------------------------------------------------------------- /docs/data-sources/zone.md: -------------------------------------------------------------------------------- 1 | --- 2 | # generated by https://github.com/hashicorp/terraform-plugin-docs 3 | page_title: "citrix_zone Data Source - citrix" 4 | subcategory: "CVAD" 5 | description: |- 6 | Read data of an existing zone. 7 | --- 8 | 9 | # citrix_zone (Data Source) 10 | 11 | Read data of an existing zone. 12 | 13 | ## Example Usage 14 | 15 | ```terraform 16 | # Get Zone resource by name 17 | data "citrix_zone" "test_zone" { 18 | name = "zone-1" 19 | } 20 | ``` 21 | 22 | 23 | ## Schema 24 | 25 | ### Required 26 | 27 | - `name` (String) Name of the zone. 28 | 29 | ### Read-Only 30 | 31 | - `id` (String) GUID identifier of the zone. -------------------------------------------------------------------------------- /docs/resources/admin_scope.md: -------------------------------------------------------------------------------- 1 | --- 2 | # generated by https://github.com/hashicorp/terraform-plugin-docs 3 | page_title: "citrix_admin_scope Resource - citrix" 4 | subcategory: "CVAD" 5 | description: |- 6 | Manages an administrator scope. 7 | --- 8 | 9 | # citrix_admin_scope (Resource) 10 | 11 | Manages an administrator scope. 12 | 13 | ## Example Usage 14 | 15 | ```terraform 16 | resource "citrix_admin_scope" "example-admin-scope" { 17 | name = "example-admin-scope" 18 | description = "Example admin scope for delivery group and machine catalog" 19 | } 20 | ``` 21 | 22 | 23 | ## Schema 24 | 25 | ### Required 26 | 27 | - `name` (String) Name of the admin scope. 28 | 29 | ### Optional 30 | 31 | - `description` (String) Description of the admin scope. 32 | - `is_tenant_scope` (Boolean) Indicates whether the admin scope is a tenant scope. Defaults to `false`. 33 | 34 | ### Read-Only 35 | 36 | - `id` (String) ID of the admin scope. 37 | - `is_all_scope` (Boolean) Indicates whether the Admin Scope is all scope or not. 38 | - `is_built_in` (Boolean) Indicates whether the Admin Scope is built-in or not. 39 | - `tenant_id` (String) ID of the tenant to which the Admin Scope belongs. 40 | - `tenant_name` (String) Name of the tenant to which the Admin Scope belongs. 41 | 42 | ## Import 43 | 44 | Import is supported using the following syntax: 45 | 46 | ```shell 47 | # Admin Scope can be imported by specifying the GUID 48 | terraform import citrix_admin_scope.example-admin-scope 00000000-0000-0000-0000-000000000000 49 | ``` -------------------------------------------------------------------------------- /docs/resources/gac_discovery.md: -------------------------------------------------------------------------------- 1 | --- 2 | # generated by https://github.com/hashicorp/terraform-plugin-docs 3 | page_title: "citrix_gac_discovery Resource - citrix" 4 | subcategory: "Citrix Cloud" 5 | description: |- 6 | Manages the Global App Configuration Discovery. 7 | --- 8 | 9 | # citrix_gac_discovery (Resource) 10 | 11 | Manages the Global App Configuration Discovery. 12 | 13 | ## Example Usage 14 | 15 | ```terraform 16 | resource "citrix_gac_discovery" "example-gac-discovery" { 17 | domain = "example-domain.com" 18 | service_urls = ["https://example.com:443", "https://example2.com:80"] 19 | allowed_web_store_urls = ["https://example.com", "https://example2.com"] 20 | } 21 | ``` 22 | 23 | 24 | ## Schema 25 | 26 | ### Required 27 | 28 | - `domain` (String) Domain name of the discovery record. The domain must not contain uppercase letters. 29 | - `service_urls` (Set of String) The list of store URLs that are returned for email-based discovery. Each URL must end with a port number like example.com:443. 30 | 31 | ### Optional 32 | 33 | - `allowed_web_store_urls` (Set of String) The list of custom Web URLs, URL needs to match the domain claimed (Optional). 34 | 35 | ## Import 36 | 37 | Import is supported using the following syntax: 38 | 39 | ```shell 40 | # Global App Configuration Discovery can be imported by specifying the domain 41 | terraform import citrix_gac_discovery.example-gac-discovery example-domain.com 42 | ``` -------------------------------------------------------------------------------- /docs/resources/machine_properties.md: -------------------------------------------------------------------------------- 1 | --- 2 | # generated by https://github.com/hashicorp/terraform-plugin-docs 3 | page_title: "citrix_machine_properties Resource - citrix" 4 | subcategory: "CVAD" 5 | description: |- 6 | Manages the properties of a machine. 7 | --- 8 | 9 | # citrix_machine_properties (Resource) 10 | 11 | Manages the properties of a machine. 12 | 13 | ## Example Usage 14 | 15 | ```terraform 16 | resource "citrix_machine_properties" "example_machine_properties" { 17 | name = "domain\\machine-name" // For workgroup machines, use machine-name only 18 | machine_catalog_id = "00000000-0000-0000-0000-000000000000" // Id of the machine catalog the machine belongs to 19 | tags = [ "11111111-1111-1111-1111-111111111111" ] // Tags to be assigned to the machine 20 | } 21 | ``` 22 | 23 | 24 | ## Schema 25 | 26 | ### Required 27 | 28 | - `machine_catalog_id` (String) The ID of the machine catalog to which the machine belongs. 29 | - `name` (String) The Name of the machine. For domain joined machines, the name must be in format \ format. Must be all in lowercase. 30 | 31 | ### Optional 32 | 33 | - `tags` (Set of String) A set of identifiers of tags to associate with the machine. 34 | 35 | ## Import 36 | 37 | Import is supported using the following syntax: 38 | 39 | ```shell 40 | # citrix_machine_properties resource can be imported with the Machine Name 41 | terraform import citrix_machine_properties.example_machine_properties domain\machine-name 42 | ``` -------------------------------------------------------------------------------- /docs/resources/stf_xenapp_default_store.md: -------------------------------------------------------------------------------- 1 | --- 2 | # generated by https://github.com/hashicorp/terraform-plugin-docs 3 | page_title: "citrix_stf_xenapp_default_store Resource - citrix" 4 | subcategory: "StoreFront" 5 | description: |- 6 | Default Storefront Store for XenApp Service. 7 | --- 8 | 9 | # citrix_stf_xenapp_default_store (Resource) 10 | 11 | Default Storefront Store for XenApp Service. 12 | 13 | ## Example Usage 14 | 15 | ```terraform 16 | resource "citrix_stf_xenapp_default_store" "example-stf-xenapp-default-store" { 17 | store_virtual_path = citrix_stf_store_service.example-stf-store-service.virtual_path 18 | store_site_id = citrix_stf_store_service.example-stf-store-service.site_id 19 | } 20 | ``` 21 | 22 | 23 | ## Schema 24 | 25 | ### Required 26 | 27 | - `store_site_id` (String) The Site ID of the StoreFront Default Store for XenApp Service. 28 | - `store_virtual_path` (String) The Virtual Path of the StoreFront Default Store for XenApp Service. 29 | 30 | ## Import 31 | 32 | Import is supported using the following syntax: 33 | 34 | ```shell 35 | # StoreFront Default Store can be imported with the Store SiteId and Service path 36 | terraform import citrix_stf_xenapp_default_store.example-stf-xenapp-default-store 1,"/Citrix/Store" 37 | ``` -------------------------------------------------------------------------------- /docs/resources/storefront_server.md: -------------------------------------------------------------------------------- 1 | --- 2 | # generated by https://github.com/hashicorp/terraform-plugin-docs 3 | page_title: "citrix_storefront_server Resource - citrix" 4 | subcategory: "CVAD" 5 | description: |- 6 | Manages a StoreFront server. 7 | --- 8 | 9 | # citrix_storefront_server (Resource) 10 | 11 | Manages a StoreFront server. 12 | 13 | ## Example Usage 14 | 15 | ```terraform 16 | resource "citrix_storefront_server" "example-storefront_server" { 17 | name = "example-storefront-server" 18 | description = "StoreFront server example" 19 | url = "https://storefront.example.com/citrix/store" 20 | enabled = true 21 | } 22 | ``` 23 | 24 | 25 | ## Schema 26 | 27 | ### Required 28 | 29 | - `description` (String) Description of the StoreFront server. 30 | - `name` (String) Name of the StoreFront server. 31 | - `url` (String) URL for connecting to the StoreFront server. 32 | 33 | ### Optional 34 | 35 | - `enabled` (Boolean) Indicates if the StoreFront server is enabled. Default is `true`. 36 | 37 | ### Read-Only 38 | 39 | - `id` (String) GUID identifier of the StoreFront server. 40 | 41 | ## Import 42 | 43 | Import is supported using the following syntax: 44 | 45 | ```shell 46 | # StoreFront Server can be imported by specifying the GUID 47 | terraform import citrix_storefront_server.example-storefront-server f60476fd-360d-4d35-861d-da8404652b166 48 | ``` -------------------------------------------------------------------------------- /docs/resources/wem_configuration_set.md: -------------------------------------------------------------------------------- 1 | --- 2 | # generated by https://github.com/hashicorp/terraform-plugin-docs 3 | page_title: "citrix_wem_configuration_set Resource - citrix" 4 | subcategory: "WEM" 5 | description: |- 6 | Manages configuration sets within a WEM deployment. 7 | --- 8 | 9 | # citrix_wem_configuration_set (Resource) 10 | 11 | Manages configuration sets within a WEM deployment. 12 | 13 | ## Example Usage 14 | 15 | ```terraform 16 | resource "citrix_wem_configuration_set" "example-config-set"{ 17 | name = "example config set" 18 | description = "example WEM configuration set" 19 | } 20 | ``` 21 | 22 | 23 | ## Schema 24 | 25 | ### Required 26 | 27 | - `name` (String) Name of the configuration set. WEM Site Name should be unique. 28 | 29 | ### Optional 30 | 31 | - `description` (String) Description of the configuration set. Default value is empty string. 32 | 33 | ### Read-Only 34 | 35 | - `id` (String) Identifier of the configuration set. 36 | 37 | ## Import 38 | 39 | Import is supported using the following syntax: 40 | 41 | ```shell 42 | # WEM Configuration Set can be imported by specifying the ID 43 | terraform import citrix_wem_configuration_set.example-config-set 1234 44 | ``` -------------------------------------------------------------------------------- /examples/basic_aws_mcs_vda/citrix.tf: -------------------------------------------------------------------------------- 1 | # On-Premises customer provider settings 2 | # Please comment out / remove this provider settings block if you are a Citrix Cloud customer 3 | provider "citrix" { 4 | cvad_config = { 5 | hostname = var.provider_hostname 6 | client_id = "${var.provider_domain_fqdn}\\${var.provider_client_id}" 7 | client_secret = "${var.provider_client_secret}" 8 | disable_ssl_verification = var.provider_disable_ssl_verification 9 | } 10 | } 11 | 12 | # Citrix Cloud customer provider settings 13 | # Please comment out / remove this provider settings block if you are an On-Premises customer 14 | provider "citrix" { 15 | cvad_config = { 16 | customer_id = var.provider_customer_id 17 | client_id = var.provider_client_id 18 | client_secret = var.provider_client_secret 19 | environment = var.provider_environment 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /examples/basic_aws_mcs_vda/hypervisors.tf: -------------------------------------------------------------------------------- 1 | # AWS Hypervisor 2 | resource "citrix_aws_hypervisor" "example-aws-hypervisor" { 3 | name = var.hypervisor_name 4 | zone = citrix_zone.example-zone.id 5 | api_key = var.aws_api_key 6 | secret_key = var.aws_secret_key 7 | region = var.aws_region 8 | } 9 | -------------------------------------------------------------------------------- /examples/basic_aws_mcs_vda/machine_catalogs.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_machine_catalog" "example-aws-catalog" { 2 | name = var.machine_catalog_name 3 | description = "Example multi-session catalog on AWS hypervisor" 4 | allocation_type = "Random" 5 | session_support = "MultiSession" 6 | provisioning_type = "MCS" 7 | zone = citrix_zone.example-zone.id 8 | provisioning_scheme = { 9 | hypervisor = citrix_aws_hypervisor.example-aws-hypervisor.id 10 | hypervisor_resource_pool = citrix_aws_hypervisor_resource_pool.example-aws-rp.id 11 | identity_type = "ActiveDirectory" 12 | machine_domain_identity = { 13 | domain = var.domain_fqdn 14 | domain_ou = var.domain_ou 15 | service_account = var.domain_service_account 16 | service_account_password = var.domain_service_account_password 17 | } 18 | aws_machine_config = { 19 | image_ami = var.aws_ami_id 20 | master_image = var.aws_ami_name 21 | service_offering = var.aws_service_offering 22 | security_groups = [ 23 | "default" 24 | ] 25 | tenancy_type = "Shared" 26 | } 27 | number_of_total_machines = 1 28 | machine_account_creation_rules = { 29 | naming_scheme = var.machine_catalog_naming_scheme 30 | naming_scheme_type = "Numeric" 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /examples/basic_aws_mcs_vda/resource_pools.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_aws_hypervisor_resource_pool" "example-aws-rp" { 2 | name = var.resource_pool_name 3 | hypervisor = citrix_aws_hypervisor.example-aws-hypervisor.id 4 | subnets = var.aws_subnets 5 | vpc = var.aws_vpc 6 | availability_zone = var.aws_availability_zone 7 | } 8 | -------------------------------------------------------------------------------- /examples/basic_aws_mcs_vda/terraform.tf: -------------------------------------------------------------------------------- 1 | terraform { 2 | required_version = ">= 1.4.0" 3 | 4 | required_providers { 5 | citrix = { 6 | source = "citrix/citrix" 7 | version = ">=1.0.14" 8 | } 9 | } 10 | 11 | backend "local" {} 12 | } 13 | -------------------------------------------------------------------------------- /examples/basic_aws_mcs_vda/zones.tf: -------------------------------------------------------------------------------- 1 | # CVAD zone configuration 2 | # Please comment out / remove this zone resource block if you are a Citrix Cloud customer 3 | resource "citrix_zone" "example-zone" { 4 | name = var.zone_name 5 | description = "description for example zone" 6 | } 7 | 8 | # DaaS zone configuration 9 | # Please uncomment this zone resource block if you are a Citrix Cloud customer 10 | # resource "citrix_zone" "example-zone" { 11 | # resource_location_id = var.aws_resource_location_id 12 | # } -------------------------------------------------------------------------------- /examples/basic_aws_workspace_core_deployment/account.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_quickcreate_aws_workspaces_account" "example_aws_workspaces_account" { 2 | name = var.account_name 3 | aws_region = var.account_region 4 | aws_role_arn = var.account_role_arn 5 | } 6 | -------------------------------------------------------------------------------- /examples/basic_aws_workspace_core_deployment/citrix.tf: -------------------------------------------------------------------------------- 1 | # Citrix Cloud customer provider settings 2 | provider "citrix" { 3 | cvad_config = { 4 | customer_id = var.provider_customer_id 5 | environment = var.provider_environment 6 | client_id = var.provider_client_id 7 | client_secret = var.provider_client_secret 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /examples/basic_aws_workspace_core_deployment/deployment.tf: -------------------------------------------------------------------------------- 1 | # User coupled workspaces with MANUAL running mode 2 | resource "citrix_quickcreate_aws_workspaces_deployment" "example_aws_workspaces_deployment" { 3 | name = var.deployment_name 4 | account_id = citrix_quickcreate_aws_workspaces_account.example_aws_workspaces_account.id 5 | directory_connection_id = citrix_quickcreate_aws_workspaces_directory_connection.example_aws_workspaces_directory_connection.id 6 | image_id = citrix_quickcreate_aws_workspaces_image.example_aws_workspaces_image.id 7 | performance = "STANDARD" 8 | root_volume_size = "80" 9 | user_volume_size = "50" 10 | volumes_encrypted = true 11 | volumes_encryption_key = "alias/aws/workspaces" 12 | 13 | running_mode = "ALWAYS_ON" 14 | 15 | user_decoupled_workspaces = false 16 | dynamic "workspaces" { 17 | for_each = var.deployment_usernames 18 | content { 19 | username = workspaces.value 20 | root_volume_size = 80 21 | user_volume_size = 50 22 | maintenance_mode = false 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /examples/basic_aws_workspace_core_deployment/directory_connection.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_quickcreate_aws_workspaces_directory_connection" "example_aws_workspaces_directory_connection" { 2 | name = var.directory_connection_name 3 | account = citrix_quickcreate_aws_workspaces_account.example_aws_workspaces_account.id 4 | resource_location = citrix_cloud_resource_location.example_resource_location.id 5 | directory = var.directory_connection_id 6 | subnets = [var.directory_connection_subnet_1, var.directory_connection_subnet_2] 7 | tenancy = var.directory_connection_tenancy 8 | security_group = var.directory_connection_security_group_id 9 | default_ou = var.directory_connection_ou 10 | user_enabled_as_local_administrator = var.directory_connection_user_as_local_admin 11 | } 12 | -------------------------------------------------------------------------------- /examples/basic_aws_workspace_core_deployment/image.tf: -------------------------------------------------------------------------------- 1 | # Quick Deploy AWS WorkSpaces Image with AMI image 2 | resource "citrix_quickcreate_aws_workspaces_image" "example_aws_workspaces_image" { 3 | name = var.image_name 4 | account_id = citrix_quickcreate_aws_workspaces_account.example_aws_workspaces_account.id 5 | aws_image_id = var.image_id 6 | description = var.image_description 7 | session_support = var.image_session_support 8 | operating_system = var.image_operating_system 9 | ingestion_process = var.image_ingestion_process 10 | } 11 | -------------------------------------------------------------------------------- /examples/basic_aws_workspace_core_deployment/resource_location.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_cloud_resource_location" "example_resource_location" { 2 | name = var.resource_location_name 3 | } 4 | -------------------------------------------------------------------------------- /examples/basic_aws_workspace_core_deployment/terraform.template.tfvars: -------------------------------------------------------------------------------- 1 | # citrix.tf variables 2 | provider_customer_id = "" 3 | provider_client_id = "" 4 | provider_client_secret = "" 5 | 6 | # resource_location.tf variables 7 | resource_locaiton_name = "example-resource-location" 8 | 9 | # account.tf variables 10 | account_name = "example-aws-workspaces-account" 11 | account_region = "us-east-1" 12 | account_role_arn = "arn:aws:iam::123456789012:role/role-name" 13 | 14 | # image.tf variables 15 | image_name = "example-aws-workspaces-image" 16 | image_id = "ami-1234567890abcdef0" 17 | image_description = "Example AWS WorkSpaces image" 18 | 19 | # directory_connection.tf variables 20 | directory_connection_name = "example-aws-workspaces-directory-connection" 21 | directory_connection_id = "d-1234567890abcdef0" 22 | directory_connection_subnet_1 = "subnet-1234567890abcdef0" 23 | directory_connection_subnet_2 = "subnet-1234567890abcdef1" 24 | directory_connection_security_group_id = "sg-1234567890abcdef0" 25 | directory_connection_ou = "OU=VDAs,OU=Computers,OU=example,DC=example,DC=local" 26 | 27 | # deployment.tf variables 28 | deployment_name = "example-aws-workspaces-deployment" 29 | deployment_usernames = ["user0001", "user0002"] 30 | -------------------------------------------------------------------------------- /examples/basic_aws_workspace_core_deployment/terraform.tf: -------------------------------------------------------------------------------- 1 | terraform { 2 | required_version = ">= 1.4.0" 3 | 4 | required_providers { 5 | citrix = { 6 | source = "citrix/citrix" 7 | version = ">=1.0.14" 8 | } 9 | } 10 | 11 | backend "local" {} 12 | } 13 | -------------------------------------------------------------------------------- /examples/basic_azure_mcs_vda/citrix.tf: -------------------------------------------------------------------------------- 1 | # On-Premises customer provider settings 2 | # Please comment out / remove this provider settings block if you are a Citrix Cloud customer 3 | provider "citrix" { 4 | cvad_config = { 5 | hostname = var.provider_hostname 6 | client_id = "${var.provider_domain_fqdn}\\${var.provider_client_id}" 7 | client_secret = "${var.provider_client_secret}" 8 | disable_ssl_verification = var.provider_disable_ssl_verification 9 | } 10 | } 11 | 12 | # Citrix Cloud customer provider settings 13 | # Please comment out / remove this provider settings block if you are an On-Premises customer 14 | provider "citrix" { 15 | cvad_config = { 16 | customer_id = var.provider_customer_id 17 | client_id = var.provider_client_id 18 | client_secret = var.provider_client_secret 19 | environment = var.provider_environment 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /examples/basic_azure_mcs_vda/hypervisors.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_azure_hypervisor" "example-azure-hypervisor" { 2 | name = var.hypervisor_name 3 | zone = citrix_zone.example-zone.id 4 | application_id = var.azure_application_id 5 | application_secret = var.azure_application_secret 6 | subscription_id = var.azure_subscription_id 7 | active_directory_id = var.azure_tenant_id 8 | } -------------------------------------------------------------------------------- /examples/basic_azure_mcs_vda/resource_pools.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_azure_hypervisor_resource_pool" "example-azure-rp" { 2 | name = var.resource_pool_name 3 | hypervisor = citrix_azure_hypervisor.example-azure-hypervisor.id 4 | region = var.azure_region 5 | virtual_network_resource_group = var.azure_vnet_resource_group 6 | virtual_network = var.azure_vnet 7 | subnets = var.azure_subnets 8 | } -------------------------------------------------------------------------------- /examples/basic_azure_mcs_vda/terraform.tf: -------------------------------------------------------------------------------- 1 | terraform { 2 | required_version = ">= 1.4.0" 3 | 4 | required_providers { 5 | citrix = { 6 | source = "citrix/citrix" 7 | version = ">=1.0.14" 8 | } 9 | } 10 | 11 | backend "local" {} 12 | } 13 | -------------------------------------------------------------------------------- /examples/basic_azure_mcs_vda/zones.tf: -------------------------------------------------------------------------------- 1 | # CVAD zone configuration 2 | # Please comment out / remove this zone resource block if you are a Citrix Cloud customer 3 | resource "citrix_zone" "example-zone" { 4 | name = var.zone_name 5 | description = "description for example zone" 6 | } 7 | 8 | # DaaS zone configuration 9 | # Please uncomment this zone resource block if you are a Citrix Cloud customer 10 | # resource "citrix_zone" "example-zone" { 11 | # resource_location_id = var.azure_resource_location_id 12 | # } -------------------------------------------------------------------------------- /examples/basic_gcp_mcs_vda/citrix.tf: -------------------------------------------------------------------------------- 1 | # On-Premises customer provider settings 2 | # Please comment out / remove this provider settings block if you are a Citrix Cloud customer 3 | provider "citrix" { 4 | cvad_config = { 5 | hostname = var.provider_hostname 6 | client_id = "${var.provider_domain_fqdn}\\${var.provider_client_id}" 7 | client_secret = "${var.provider_client_secret}" 8 | disable_ssl_verification = var.provider_disable_ssl_verification 9 | } 10 | } 11 | 12 | # Citrix Cloud customer provider settings 13 | # Please comment out / remove this provider settings block if you are an On-Premises customer 14 | provider "citrix" { 15 | cvad_config = { 16 | customer_id = var.provider_customer_id 17 | client_id = var.provider_client_id 18 | client_secret = var.provider_client_secret 19 | environment = var.provider_environment 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /examples/basic_gcp_mcs_vda/hypervisors.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_gcp_hypervisor" "example-gcp-hypervisor" { 2 | name = var.hypervisor_name 3 | zone = citrix_zone.example-zone.id 4 | service_account_id = var.gcp_service_account_id 5 | service_account_credentials = var.gcp_service_account_credentials 6 | } 7 | 8 | -------------------------------------------------------------------------------- /examples/basic_gcp_mcs_vda/resource_pools.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_gcp_hypervisor_resource_pool" "example-gcp-rp" { 2 | name = var.resource_pool_name 3 | hypervisor = citrix_gcp_hypervisor.example-gcp-hypervisor.id 4 | project_name = var.gcp_project_name 5 | region = var.gcp_vpc_region 6 | subnets = var.gcp_subnets 7 | vpc = var.gcp_vpc 8 | } 9 | 10 | 11 | -------------------------------------------------------------------------------- /examples/basic_gcp_mcs_vda/terraform.tf: -------------------------------------------------------------------------------- 1 | terraform { 2 | required_version = ">= 1.4.0" 3 | 4 | required_providers { 5 | citrix = { 6 | source = "citrix/citrix" 7 | version = ">=1.0.14" 8 | } 9 | } 10 | 11 | backend "local" {} 12 | } 13 | -------------------------------------------------------------------------------- /examples/basic_gcp_mcs_vda/zones.tf: -------------------------------------------------------------------------------- 1 | # CVAD zone configuration 2 | # Please comment out / remove this zone resource block if you are a Citrix Cloud customer 3 | resource "citrix_zone" "example-zone" { 4 | name = var.zone_name 5 | description = "description for example zone" 6 | } 7 | 8 | # DaaS zone configuration 9 | # Please uncomment this zone resource block if you are a Citrix Cloud customer 10 | # resource "citrix_zone" "example-zone" { 11 | # resource_location_id = var.gcp_resource_location_id 12 | # } -------------------------------------------------------------------------------- /examples/basic_nutanix_mcs_vda/citrix.tf: -------------------------------------------------------------------------------- 1 | # On-Premises customer provider settings 2 | # Please comment out / remove this provider settings block if you are a Citrix Cloud customer 3 | provider "citrix" { 4 | cvad_config = { 5 | hostname = var.provider_hostname 6 | client_id = "${var.provider_domain_fqdn}\\${var.provider_client_id}" 7 | client_secret = "${var.provider_client_secret}" 8 | disable_ssl_verification = var.provider_disable_ssl_verification 9 | } 10 | } 11 | 12 | # Citrix Cloud customer provider settings 13 | # Please comment out / remove this provider settings block if you are an On-Premises customer 14 | provider "citrix" { 15 | cvad_config = { 16 | customer_id = var.provider_customer_id 17 | client_id = var.provider_client_id 18 | client_secret = var.provider_client_secret 19 | environment = var.provider_environment 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /examples/basic_nutanix_mcs_vda/hypervisors.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_nutanix_hypervisor" "example-nutanix-hypervisor" { 2 | name = var.hypervisor_name 3 | zone = citrix_zone.example-zone.id 4 | username = var.nutanix_username 5 | password = var.nutanix_password 6 | password_format = var.nutanix_password_format 7 | addresses = var.nutanix_addresses 8 | } -------------------------------------------------------------------------------- /examples/basic_nutanix_mcs_vda/machine_catalogs.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_machine_catalog" "example-catalog" { 2 | name = var.machine_catalog_name 3 | description = "description for example catalog" 4 | allocation_type = "Random" 5 | session_support = "MultiSession" 6 | provisioning_type = "MCS" 7 | zone = citrix_zone.example-zone.id 8 | provisioning_scheme = { 9 | hypervisor = citrix_nutanix_hypervisor.example-nutanix-hypervisor.id 10 | hypervisor_resource_pool = citrix_nutanix_hypervisor_resource_pool.example-nutanix-rp.id 11 | identity_type = "ActiveDirectory" 12 | machine_domain_identity = { 13 | domain = var.domain_fqdn 14 | domain_ou = var.domain_ou 15 | service_account = var.domain_service_account 16 | service_account_password = var.domain_service_account_password 17 | } 18 | nutanix_machine_config = { 19 | container = var.nutanix_container 20 | master_image = var.nutanix_master_image 21 | cpu_count = var.nutanix_cpu_count 22 | cores_per_cpu_count = var.nutanix_core_per_cpu_count 23 | memory_mb = var.nutanix_memory_size 24 | } 25 | number_of_total_machines = 1 26 | machine_account_creation_rules = { 27 | naming_scheme = var.machine_catalog_naming_scheme 28 | naming_scheme_type = "Numeric" 29 | } 30 | } 31 | } -------------------------------------------------------------------------------- /examples/basic_nutanix_mcs_vda/resource_pools.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_nutanix_hypervisor_resource_pool" "example-nutanix-rp" { 2 | name = var.resource_pool_name 3 | hypervisor = citrix_nutanix_hypervisor.example-nutanix-hypervisor.id 4 | networks = var.nutanix_networks 5 | } -------------------------------------------------------------------------------- /examples/basic_nutanix_mcs_vda/terraform.tf: -------------------------------------------------------------------------------- 1 | terraform { 2 | required_version = ">= 1.4.0" 3 | 4 | required_providers { 5 | citrix = { 6 | source = "citrix/citrix" 7 | version = ">=1.0.14" 8 | } 9 | } 10 | 11 | backend "local" {} 12 | } 13 | -------------------------------------------------------------------------------- /examples/basic_nutanix_mcs_vda/zones.tf: -------------------------------------------------------------------------------- 1 | # CVAD zone configuration 2 | # Please comment out / remove this zone resource block if you are a Citrix Cloud customer 3 | resource "citrix_zone" "example-zone" { 4 | name = var.zone_name 5 | description = "description for example zone" 6 | } 7 | 8 | # DaaS zone configuration 9 | # Please uncomment this zone resource block if you are a Citrix Cloud customer 10 | # resource "citrix_zone" "example-zone" { 11 | # resource_location_id = var.nutanix_resource_location_id 12 | # } -------------------------------------------------------------------------------- /examples/basic_policy_set/citrix.tf: -------------------------------------------------------------------------------- 1 | # On-Premises customer provider settings 2 | # Please comment out / remove this provider settings block if you are a Citrix Cloud customer 3 | provider "citrix" { 4 | cvad_config = { 5 | hostname = var.provider_hostname 6 | client_id = "${var.provider_domain_fqdn}\\${var.provider_client_id}" 7 | client_secret = "${var.provider_client_secret}" 8 | disable_ssl_verification = var.provider_disable_ssl_verification 9 | } 10 | } 11 | 12 | # Citrix Cloud customer provider settings 13 | # Please comment out / remove this provider settings block if you are an On-Premises customer 14 | provider "citrix" { 15 | cvad_config = { 16 | customer_id = var.provider_customer_id 17 | client_id = var.provider_client_id 18 | client_secret = var.provider_client_secret 19 | environment = var.provider_environment 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /examples/basic_policy_set/policy.tf: -------------------------------------------------------------------------------- 1 | // Policy is depending on the policy set 2 | resource "citrix_policy" "first_basic_policy" { 3 | policy_set_id = citrix_policy_set_v2.basic_policy_set.id 4 | name = "first basic policy" 5 | description = "basic policy description" 6 | enabled = true 7 | } 8 | 9 | resource "citrix_policy" "second_basic_policy" { 10 | policy_set_id = citrix_policy_set_v2.basic_policy_set.id 11 | name = "second basic policy" 12 | description = "second basic policy description" 13 | enabled = true 14 | } 15 | 16 | resource "citrix_policy" "third_basic_policy" { 17 | policy_set_id = citrix_policy_set_v2.basic_policy_set.id 18 | name = "third basic policy" 19 | description = "third basic policy description" 20 | enabled = true 21 | } 22 | -------------------------------------------------------------------------------- /examples/basic_policy_set/policy_priority.tf: -------------------------------------------------------------------------------- 1 | // Example with policy priority first_basic_policy = 0, second_basic_policy = 1, third_basic_policy = 2 2 | resource "citrix_policy_priority" "example_policy_priority" { 3 | policy_set_id = citrix_policy_set_v2.basic_policy_set.id 4 | policy_priority = [ 5 | citrix_policy.first_basic_policy.id, 6 | citrix_policy.second_basic_policy.id, 7 | citrix_policy.third_basic_policy.id 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /examples/basic_policy_set/policy_set_v2.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_policy_set_v2" "basic_policy_set" { 2 | name = "basic policy set" 3 | description = "basic policy set description" 4 | scopes = [ 5 | var.scope_id1, 6 | var.scope_id2 7 | ] 8 | delivery_groups = [ 9 | var.delivery_group_id1, 10 | var.delivery_group_id2 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /examples/basic_policy_set/policy_setting.tf: -------------------------------------------------------------------------------- 1 | // Policy Settings are depending on the `citrix_policy` resource. 2 | // Since the `citrix_policy` resource depends on `citrix_policy_set_v2` resource, the `citrix_policy_setting` resource has an implicit dependency on the `citrix_policy_set_v2` resource. 3 | resource "citrix_policy_setting" "advance_warning_period" { 4 | policy_id = citrix_policy.first_basic_policy.id 5 | name = "AdvanceWarningPeriod" 6 | use_default = false 7 | value = "13:00:00" 8 | } 9 | 10 | resource "citrix_policy_setting" "visually_lossless_compression" { 11 | policy_id = citrix_policy.first_basic_policy.id 12 | name = "AllowVisuallyLosslessCompression" 13 | use_default = false 14 | enabled = true 15 | } 16 | 17 | resource "citrix_policy_setting" "wem_citrix_cloud_connectors" { 18 | policy_id = citrix_policy.first_basic_policy.id 19 | name = "WemCloudConnectorList" 20 | use_default = false 21 | value = jsonencode([ 22 | "https://connector1.citrix.com", 23 | "https://connector2.citrix.com" 24 | ]) 25 | } 26 | -------------------------------------------------------------------------------- /examples/basic_policy_set/terraform.template.tfvars: -------------------------------------------------------------------------------- 1 | # citrix.tf variables, uncomment the ones you need for on-premises or cloud 2 | provider_hostname = "" # on-premises only 3 | provider_domain_fqdn = "" # on-premises only 4 | provider_client_id = "" # or Citrix Cloud secure client ID for cloud 5 | provider_client_secret = "" # or Citrix Cloud secure client secret for cloud 6 | # provider_customer_id = "" # cloud only 7 | 8 | # policy_set_v2.tf variables 9 | scope_id1 = "09dd6c92-51d8-42d0-a93b-838490e8e35d" // example value 10 | scope_id2 = "16d65fa7-e67c-4bea-8dfc-e8b4d089c138" // example value 11 | delivery_group_id1 = "275dca7f-38a5-4f61-b124-f35358fe2833" // example value 12 | delivery_group_id2 = "6f4d47d1-16eb-4b57-b744-74f07fa4884d" // example value 13 | 14 | # policy_filter.tf variables 15 | policy_filter_client_ip = "192.168.0.1" 16 | policy_filter_client_name = "example-client-name" 17 | policy_filter_client_platform = "Windows" 18 | policy_filter_delivery_group_id = "a298d13d-9197-44bc-8ec9-75e0e4ae8fd8" 19 | policy_filter_delivery_group_type ="Private" 20 | policy_filter_ou = "OU=example,DC=example,DC=local" 21 | policy_filter_tag_id = "8668672a-31ab-49f8-8a42-4babbef18a3c" // example value 22 | policy_filter_user_sid = "S-1-5-21-3623811015-3361044348-30300820-1013" // example value 23 | -------------------------------------------------------------------------------- /examples/basic_policy_set/terraform.tf: -------------------------------------------------------------------------------- 1 | terraform { 2 | required_version = ">= 1.4.0" 3 | 4 | required_providers { 5 | citrix = { 6 | source = "citrix/citrix" 7 | version = ">=1.0.15" 8 | } 9 | } 10 | 11 | backend "local" {} 12 | } 13 | -------------------------------------------------------------------------------- /examples/basic_scvmm_mcs_vda/citrix.tf: -------------------------------------------------------------------------------- 1 | # On-Premises customer provider settings 2 | # Please comment out / remove this provider settings block if you are a Citrix Cloud customer 3 | provider "citrix" { 4 | cvad_config = { 5 | hostname = var.provider_hostname 6 | client_id = "${var.provider_domain_fqdn}\\${var.provider_client_id}" 7 | client_secret = "${var.provider_client_secret}" 8 | disable_ssl_verification = var.provider_disable_ssl_verification 9 | } 10 | } 11 | 12 | # Citrix Cloud customer provider settings 13 | # Please comment out / remove this provider settings block if you are an On-Premises customer 14 | provider "citrix" { 15 | cvad_config = { 16 | customer_id = var.provider_customer_id 17 | client_id = var.provider_client_id 18 | client_secret = var.provider_client_secret 19 | environment = var.provider_environment 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /examples/basic_scvmm_mcs_vda/hypervisors.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_scvmm_hypervisor" "example-scvmm-hypervisor" { 2 | name = var.hypervisor_name 3 | zone = citrix_zone.example-zone.id 4 | username = var.scvmm_username 5 | password = var.scvmm_password 6 | password_format = var.scvmm_password_format 7 | addresses = var.scvmm_addresses 8 | max_absolute_active_actions = 50 9 | } -------------------------------------------------------------------------------- /examples/basic_scvmm_mcs_vda/machine_catalogs.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_machine_catalog" "example-catalog" { 2 | name = var.machine_catalog_name 3 | description = "description for example catalog" 4 | provisioning_type = "MCS" 5 | allocation_type = "Random" 6 | session_support = "MultiSession" 7 | zone = citrix_zone.example-zone.id 8 | provisioning_scheme = { 9 | hypervisor = citrix_scvmm_hypervisor.example-scvmm-hypervisor.id 10 | hypervisor_resource_pool = citrix_scvmm_hypervisor_resource_pool.example-scvmm-rp.id 11 | identity_type = "ActiveDirectory" 12 | machine_domain_identity = { 13 | domain = var.domain_fqdn 14 | domain_ou = var.domain_ou 15 | service_account = var.domain_service_account 16 | service_account_password = var.domain_service_account_password 17 | } 18 | scvmm_machine_config = { 19 | master_image = var.scvmm_master_image 20 | cpu_count = var.scvmm_cpu_count 21 | memory_mb = var.scvmm_memory_size 22 | } 23 | number_of_total_machines = 1 24 | machine_account_creation_rules = { 25 | naming_scheme = var.machine_catalog_naming_scheme 26 | naming_scheme_type = "Numeric" 27 | } 28 | } 29 | } -------------------------------------------------------------------------------- /examples/basic_scvmm_mcs_vda/resource_pools.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_scvmm_hypervisor_resource_pool" "example-scvmm-hypervisor-resource-pool" { 2 | name = var.resource_pool_name 3 | hypervisor = citrix_scvmm_hypervisor.example-scvmm-hypervisor.id 4 | host = var.scvmm_host_name 5 | networks = var.scvmm_networks 6 | storage = [ 7 | { 8 | storage_name = var.scvmm_storage_name 9 | } 10 | ] 11 | temporary_storage = [ 12 | { 13 | storage_name = var.scvmm_temporary_storage_name 14 | } 15 | ] 16 | use_local_storage_caching = false 17 | } -------------------------------------------------------------------------------- /examples/basic_scvmm_mcs_vda/terraform.tf: -------------------------------------------------------------------------------- 1 | terraform { 2 | required_version = ">= 1.4.0" 3 | 4 | required_providers { 5 | citrix = { 6 | source = "citrix/citrix" 7 | version = ">=1.0.14" 8 | } 9 | } 10 | 11 | backend "local" {} 12 | } 13 | -------------------------------------------------------------------------------- /examples/basic_scvmm_mcs_vda/zones.tf: -------------------------------------------------------------------------------- 1 | # CVAD zone configuration 2 | # Please comment out / remove this zone resource block if you are a Citrix Cloud customer 3 | resource "citrix_zone" "example-zone" { 4 | name = var.zone_name 5 | description = "description for example zone" 6 | } 7 | 8 | # DaaS zone configuration 9 | # Please uncomment this zone resource block if you are a Citrix Cloud customer 10 | # resource "citrix_zone" "example-zone" { 11 | # resource_location_id = var.scvmm_resource_location_id 12 | # } -------------------------------------------------------------------------------- /examples/basic_vsphere_mcs_vda/citrix.tf: -------------------------------------------------------------------------------- 1 | # On-Premises customer provider settings 2 | # Please comment out / remove this provider settings block if you are a Citrix Cloud customer 3 | provider "citrix" { 4 | cvad_config = { 5 | hostname = var.provider_hostname 6 | client_id = "${var.provider_domain_fqdn}\\${var.provider_client_id}" 7 | client_secret = "${var.provider_client_secret}" 8 | disable_ssl_verification = var.provider_disable_ssl_verification 9 | } 10 | } 11 | 12 | # Citrix Cloud customer provider settings 13 | # Please comment out / remove this provider settings block if you are an On-Premises customer 14 | provider "citrix" { 15 | cvad_config = { 16 | customer_id = var.provider_customer_id 17 | client_id = var.provider_client_id 18 | client_secret = var.provider_client_secret 19 | environment = var.provider_environment 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /examples/basic_vsphere_mcs_vda/hypervisors.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_vsphere_hypervisor" "example-vsphere-hypervisor" { 2 | name = var.hypervisor_name 3 | zone = citrix_zone.example-zone.id 4 | username = var.vsphere_username 5 | password = var.vsphere_password 6 | password_format = var.vsphere_password_format 7 | addresses = var.vsphere_addresses 8 | max_absolute_active_actions = 20 9 | } -------------------------------------------------------------------------------- /examples/basic_vsphere_mcs_vda/images.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_image_definition" "example-image-definition" { 2 | name = var.image_definition_name 3 | description = "Description for example image definition" 4 | os_type = "Windows" 5 | session_support = "MultiSession" 6 | hypervisor = citrix_vsphere_hypervisor.example-vsphere-hypervisor.id 7 | hypervisor_resource_pool = citrix_vsphere_hypervisor_resource_pool.example-vsphere-rp.id 8 | } 9 | 10 | resource "citrix_image_version" "example-image-version" { 11 | image_definition = citrix_image_definition.example-image-definition.id 12 | hypervisor = citrix_vsphere_hypervisor.example-vsphere-hypervisor.id 13 | hypervisor_resource_pool = citrix_vsphere_hypervisor_resource_pool.example-vsphere-rp.id 14 | description = "Description for example image version" 15 | 16 | vsphere_image_specs = { 17 | master_image_vm = var.vsphere_master_image_vm 18 | image_snapshot = var.vsphere_image_snapshot 19 | cpu_count = var.vsphere_cpu_count 20 | memory_mb = var.vsphere_memory_size 21 | } 22 | } -------------------------------------------------------------------------------- /examples/basic_vsphere_mcs_vda/machine_catalogs.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_machine_catalog" "example-catalog" { 2 | name = var.machine_catalog_name 3 | description = "description for example catalog" 4 | allocation_type = "Random" 5 | session_support = "MultiSession" 6 | provisioning_type = "MCS" 7 | zone = citrix_zone.example-zone.id 8 | provisioning_scheme = { 9 | hypervisor = citrix_vsphere_hypervisor.example-vsphere-hypervisor.id 10 | hypervisor_resource_pool = citrix_vsphere_hypervisor_resource_pool.example-vsphere-rp.id 11 | identity_type = "ActiveDirectory" 12 | machine_domain_identity = { 13 | domain = var.domain_fqdn 14 | domain_ou = var.domain_ou 15 | service_account = var.domain_service_account 16 | service_account_password = var.domain_service_account_password 17 | } 18 | vsphere_machine_config = { 19 | prepared_image = { 20 | image_definition = citrix_image_definition.example-image-definition.id 21 | image_version = citrix_image_version.example-image-version.id 22 | } 23 | cpu_count = var.vsphere_cpu_count 24 | memory_mb = var.vsphere_memory_size 25 | } 26 | number_of_total_machines = 1 27 | machine_account_creation_rules = { 28 | naming_scheme = var.machine_catalog_naming_scheme 29 | naming_scheme_type = "Numeric" 30 | } 31 | } 32 | } -------------------------------------------------------------------------------- /examples/basic_vsphere_mcs_vda/resource_pools.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_vsphere_hypervisor_resource_pool" "example-vsphere-rp" { 2 | name = var.resource_pool_name 3 | hypervisor = citrix_vsphere_hypervisor.example-vsphere-hypervisor.id 4 | cluster = { 5 | datacenter = var.vsphere_cluster_datacenter 6 | cluster_name = var.vsphere_cluster_name 7 | # host = var.vsphere_host // Use one of host or cluster 8 | } 9 | networks = var.vsphere_networks 10 | storage = [ 11 | { 12 | storage_name = var.vsphere_storage_name 13 | } 14 | ] 15 | temporary_storage = [ 16 | { 17 | storage_name = var.vsphere_temporary_storage_name 18 | } 19 | ] 20 | use_local_storage_caching = false 21 | } -------------------------------------------------------------------------------- /examples/basic_vsphere_mcs_vda/terraform.tf: -------------------------------------------------------------------------------- 1 | terraform { 2 | required_version = ">= 1.4.0" 3 | 4 | required_providers { 5 | citrix = { 6 | source = "citrix/citrix" 7 | version = ">=1.0.14" 8 | } 9 | } 10 | 11 | backend "local" {} 12 | } 13 | -------------------------------------------------------------------------------- /examples/basic_vsphere_mcs_vda/zones.tf: -------------------------------------------------------------------------------- 1 | # CVAD zone configuration 2 | # Please comment out / remove this zone resource block if you are a Citrix Cloud customer 3 | resource "citrix_zone" "example-zone" { 4 | name = var.zone_name 5 | description = "description for example zone" 6 | } 7 | 8 | # DaaS zone configuration 9 | # Please uncomment this zone resource block if you are a Citrix Cloud customer 10 | # resource "citrix_zone" "example-zone" { 11 | # resource_location_id = var.vsphere_resource_location_id 12 | # } -------------------------------------------------------------------------------- /examples/basic_xenserver_mcs_vda/citrix.tf: -------------------------------------------------------------------------------- 1 | # On-Premises customer provider settings 2 | # Please comment out / remove this provider settings block if you are a Citrix Cloud customer 3 | provider "citrix" { 4 | cvad_config = { 5 | hostname = var.provider_hostname 6 | client_id = "${var.provider_domain_fqdn}\\${var.provider_client_id}" 7 | client_secret = "${var.provider_client_secret}" 8 | disable_ssl_verification = var.provider_disable_ssl_verification 9 | } 10 | } 11 | 12 | # Citrix Cloud customer provider settings 13 | # Please comment out / remove this provider settings block if you are an On-Premises customer 14 | provider "citrix" { 15 | cvad_config = { 16 | customer_id = var.provider_customer_id 17 | client_id = var.provider_client_id 18 | client_secret = var.provider_client_secret 19 | environment = var.provider_environment 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /examples/basic_xenserver_mcs_vda/hypervisors.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_xenserver_hypervisor" "example-xenserver-hypervisor" { 2 | name = var.hypervisor_name 3 | zone = citrix_zone.example-zone.id 4 | username = var.xenserver_username 5 | password = var.xenserver_password 6 | password_format = var.xenserver_password_format 7 | addresses = var.xenserver_addresses 8 | } -------------------------------------------------------------------------------- /examples/basic_xenserver_mcs_vda/machine_catalogs.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_machine_catalog" "example-catalog" { 2 | name = var.machine_catalog_name 3 | description = "description for example catalog" 4 | provisioning_type = "MCS" 5 | allocation_type = "Random" 6 | session_support = "MultiSession" 7 | zone = "" 8 | provisioning_scheme = { 9 | hypervisor = citrix_xenserver_hypervisor.example-xenserver-hypervisor.id 10 | hypervisor_resource_pool = citrix_xenserver_hypervisor_resource_pool.example-xenserver-rp.id 11 | identity_type = "ActiveDirectory" 12 | machine_domain_identity = { 13 | domain = var.domain_fqdn 14 | domain_ou = var.domain_ou 15 | service_account = var.domain_service_account 16 | service_account_password = var.domain_service_account_password 17 | } 18 | xenserver_machine_config = { 19 | master_image_vm = var.xenserver_master_image_vm 20 | cpu_count = var.xenserver_cpu_count 21 | memory_mb = var.xenserver_memory_size 22 | } 23 | number_of_total_machines = 1 24 | machine_account_creation_rules = { 25 | naming_scheme = var.machine_catalog_naming_scheme 26 | naming_scheme_type = "Numeric" 27 | } 28 | } 29 | } -------------------------------------------------------------------------------- /examples/basic_xenserver_mcs_vda/resource_pools.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_xenserver_hypervisor_resource_pool" "example-xenserver-rp" { 2 | name = var.resource_pool_name 3 | hypervisor = citrix_xenserver_hypervisor.example-xenserver-hypervisor.id 4 | networks = var.xenserver_networks 5 | storage = [ 6 | { 7 | storage_name = var.xenserver_storage_name 8 | } 9 | ] 10 | temporary_storage = [ 11 | { 12 | storage_name = var.xenserver_temporary_storage_name 13 | } 14 | ] 15 | use_local_storage_caching = false 16 | } -------------------------------------------------------------------------------- /examples/basic_xenserver_mcs_vda/terraform.tf: -------------------------------------------------------------------------------- 1 | terraform { 2 | required_version = ">= 1.4.0" 3 | 4 | required_providers { 5 | citrix = { 6 | source = "citrix/citrix" 7 | version = ">=1.0.14" 8 | } 9 | } 10 | 11 | backend "local" {} 12 | } 13 | -------------------------------------------------------------------------------- /examples/basic_xenserver_mcs_vda/zones.tf: -------------------------------------------------------------------------------- 1 | # CVAD zone configuration 2 | # Please comment out / remove this zone resource block if you are a Citrix Cloud customer 3 | resource "citrix_zone" "example-zone" { 4 | name = var.zone_name 5 | description = "description for example zone" 6 | } 7 | 8 | # DaaS zone configuration 9 | # Please uncomment this zone resource block if you are a Citrix Cloud customer 10 | # resource "citrix_zone" "example-zone" { 11 | # resource_location_id = var.xenserver_resource_location_id 12 | # } -------------------------------------------------------------------------------- /examples/non_domain_joined_azure_mcs_vda/citrix.tf: -------------------------------------------------------------------------------- 1 | # Citrix Cloud customer provider settings 2 | # Please comment out / remove this provider settings block if you are an On-Premises customer 3 | provider "citrix" { 4 | cvad_config = { 5 | customer_id = var.provider_customer_id 6 | client_id = var.provider_client_id 7 | client_secret = var.provider_client_secret 8 | environment = "Staging" 9 | hostname = "api.dev.cloud.com" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /examples/non_domain_joined_azure_mcs_vda/hypervisors.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_azure_hypervisor" "example-azure-hypervisor" { 2 | name = var.hypervisor_name 3 | zone = citrix_zone.example-zone.id 4 | application_id = var.azure_application_id 5 | application_secret = var.azure_application_secret 6 | subscription_id = var.azure_subscription_id 7 | active_directory_id = var.azure_tenant_id 8 | } -------------------------------------------------------------------------------- /examples/non_domain_joined_azure_mcs_vda/machine_catalogs.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_machine_catalog" "example-catalog" { 2 | name = var.machine_catalog_name 3 | description = "description for example catalog" 4 | allocation_type = "Random" 5 | session_support = "MultiSession" 6 | provisioning_type = "MCS" 7 | zone = citrix_zone.example-zone.id 8 | provisioning_scheme = { 9 | hypervisor = citrix_azure_hypervisor.example-azure-hypervisor.id 10 | hypervisor_resource_pool = citrix_azure_hypervisor_resource_pool.example-azure-rp.id 11 | identity_type = "Workgroup" # Workgroup specifies that the machines are not domain-joined 12 | azure_machine_config = { 13 | prepared_image = { 14 | image_definition = citrix_image_definition.example-image-definition.id 15 | image_version = citrix_image_version.example-image-version.id 16 | } 17 | service_offering = var.azure_service_offering 18 | storage_type = var.azure_storage_type 19 | use_managed_disks = true 20 | } 21 | number_of_total_machines = 1 22 | machine_account_creation_rules = { 23 | naming_scheme = var.machine_catalog_naming_scheme 24 | naming_scheme_type = "Numeric" 25 | } 26 | } 27 | } -------------------------------------------------------------------------------- /examples/non_domain_joined_azure_mcs_vda/policy_sets.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_policy_set" "rv2-policy-set" { 2 | name = "rv2-policy-set" 3 | description = "This is an policy set to enable rendezvous v2 for Connectorless VDAs" 4 | type = "DeliveryGroupPolicies" 5 | policies = [ 6 | { 7 | name = "rv2-policy-with-priority-0" 8 | enabled = true 9 | policy_settings = [ 10 | { 11 | name = "RendezvousProtocol" 12 | enabled = true 13 | use_default = false 14 | }, 15 | ] 16 | delivery_group_filters = [ 17 | { 18 | delivery_group_id = citrix_delivery_group.example-delivery-group.id 19 | enabled = true 20 | allowed = true 21 | }, 22 | ] 23 | } 24 | ] 25 | } -------------------------------------------------------------------------------- /examples/non_domain_joined_azure_mcs_vda/resource_location.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_cloud_resource_location" "example-resource-location" { 2 | name = var.resource_location_name 3 | } -------------------------------------------------------------------------------- /examples/non_domain_joined_azure_mcs_vda/resource_pools.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_azure_hypervisor_resource_pool" "example-azure-rp" { 2 | name = var.resource_pool_name 3 | hypervisor = citrix_azure_hypervisor.example-azure-hypervisor.id 4 | region = var.azure_region 5 | virtual_network_resource_group = var.azure_vnet_resource_group 6 | virtual_network = var.azure_vnet 7 | subnets = var.azure_subnets 8 | } -------------------------------------------------------------------------------- /examples/non_domain_joined_azure_mcs_vda/terraform.tf: -------------------------------------------------------------------------------- 1 | terraform { 2 | required_version = ">= 1.4.0" 3 | 4 | required_providers { 5 | citrix = { 6 | source = "citrix/citrix" 7 | version = ">=1.0.14" 8 | } 9 | } 10 | 11 | backend "local" {} 12 | } 13 | -------------------------------------------------------------------------------- /examples/non_domain_joined_azure_mcs_vda/zones.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_zone" "example-zone" { 2 | resource_location_id = citrix_cloud_resource_location.example-resource-location.id 3 | } 4 | -------------------------------------------------------------------------------- /images/go-extension.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/citrix/terraform-provider-citrix/c1fbbfba7fa250b5f8b922d44adfd5aa39963c34/images/go-extension.png -------------------------------------------------------------------------------- /images/techzone-youtube-thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/citrix/terraform-provider-citrix/c1fbbfba7fa250b5f8b922d44adfd5aa39963c34/images/techzone-youtube-thumbnail.png -------------------------------------------------------------------------------- /internal/citrixcloud/resource_locations/resource_locations_data_source_model.go: -------------------------------------------------------------------------------- 1 | // Copyright © 2024. Citrix Systems, Inc. 2 | 3 | package resource_locations 4 | 5 | import ( 6 | "github.com/hashicorp/terraform-plugin-framework/datasource/schema" 7 | ) 8 | 9 | func (ResourceLocationModel) GetDataSourceSchema() schema.Schema { 10 | return schema.Schema{ 11 | Description: "Citrix Cloud --- Read data of an existing resource location.", 12 | 13 | Attributes: map[string]schema.Attribute{ 14 | "id": schema.StringAttribute{ 15 | Description: "ID of the resource location.", 16 | Computed: true, 17 | }, 18 | "name": schema.StringAttribute{ 19 | Description: "Name of the resource location.", 20 | Required: true, 21 | }, 22 | "internal_only": schema.BoolAttribute{ 23 | Description: "Flag to determine if the resource location can only be used internally. Defaults to `false`.", 24 | Computed: true, 25 | }, 26 | "time_zone": schema.StringAttribute{ 27 | Description: "Timezone associated with the resource location. Please refer to the `Timezone` column in the following [table](https://learn.microsoft.com/en-us/windows-hardware/manufacture/desktop/default-time-zones?view=windows-11#time-zones) for allowed values.", 28 | Computed: true, 29 | }, 30 | }, 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /internal/daas/bearer_token/bearer_token_data_source_model.go: -------------------------------------------------------------------------------- 1 | // Copyright © 2024. Citrix Systems, Inc. 2 | 3 | package bearer_token 4 | 5 | import ( 6 | "context" 7 | 8 | "github.com/hashicorp/terraform-plugin-framework/datasource/schema" 9 | "github.com/hashicorp/terraform-plugin-framework/diag" 10 | "github.com/hashicorp/terraform-plugin-framework/types" 11 | ) 12 | 13 | type BearerTokenDataSourceModel struct { 14 | BearerToken types.String `tfsdk:"bearer_token"` 15 | } 16 | 17 | func (BearerTokenDataSourceModel) GetSchema() schema.Schema { 18 | return schema.Schema{ 19 | // This description is used by the documentation generator and the language server. 20 | Description: "CVAD --- Data source to get bearer token.", 21 | 22 | Attributes: map[string]schema.Attribute{ 23 | "bearer_token": schema.StringAttribute{ 24 | Description: "Value of the bearer token.", 25 | Computed: true, 26 | Sensitive: true, 27 | }, 28 | }, 29 | } 30 | } 31 | 32 | func (r BearerTokenDataSourceModel) RefreshPropertyValues(ctx context.Context, diagnostics *diag.Diagnostics, bearerToken string) BearerTokenDataSourceModel { 33 | r.BearerToken = types.StringValue(bearerToken) 34 | 35 | return r 36 | } 37 | -------------------------------------------------------------------------------- /internal/daas/zone/zone_data_source_model.go: -------------------------------------------------------------------------------- 1 | // Copyright © 2024. Citrix Systems, Inc. 2 | 3 | package zone 4 | 5 | import ( 6 | "github.com/citrix/citrix-daas-rest-go/citrixorchestration" 7 | "github.com/hashicorp/terraform-plugin-framework/datasource/schema" 8 | "github.com/hashicorp/terraform-plugin-framework/types" 9 | ) 10 | 11 | // ZoneDataSourceModel defines the Zone data source implementation. 12 | type ZoneDataSourceModel struct { 13 | Id types.String `tfsdk:"id"` 14 | Name types.String `tfsdk:"name"` 15 | } 16 | 17 | func (ZoneDataSourceModel) GetSchema() schema.Schema { 18 | return schema.Schema{ 19 | Description: "CVAD --- Read data of an existing zone.", 20 | Attributes: map[string]schema.Attribute{ 21 | "id": schema.StringAttribute{ 22 | Description: "GUID identifier of the zone.", 23 | Computed: true, 24 | }, 25 | "name": schema.StringAttribute{ 26 | Description: "Name of the zone.", 27 | Required: true, 28 | }, 29 | }, 30 | } 31 | } 32 | 33 | func (r ZoneDataSourceModel) RefreshPropertyValues(zone *citrixorchestration.ZoneDetailResponseModel) ZoneDataSourceModel { 34 | r.Id = types.StringValue(zone.GetId()) 35 | r.Name = types.StringValue(zone.GetName()) 36 | 37 | return r 38 | } 39 | -------------------------------------------------------------------------------- /internal/examples/data-sources/citrix_access_control_policy_filter/data-source.tf: -------------------------------------------------------------------------------- 1 | data "citrix_access_control_policy_filter" "example_filter" { 2 | id = "00000000-0000-0000-0000-000000000000" 3 | } -------------------------------------------------------------------------------- /internal/examples/data-sources/citrix_admin_folder/data-source.tf: -------------------------------------------------------------------------------- 1 | # Get Admin Folder resource by id 2 | data "citrix_admin_folder" "test_admin_folder_data_source_with_id" { 3 | id = "0" 4 | } 5 | 6 | # Get Admin Folder resource by path 7 | data "citrix_admin_folder" "test_admin_folder_data_source_with_path" { 8 | path = "test123\\" 9 | } 10 | -------------------------------------------------------------------------------- /internal/examples/data-sources/citrix_admin_permissions/data-source.tf: -------------------------------------------------------------------------------- 1 | # Get all predefined admin permissions 2 | data "citrix_admin_permissions" "all-permissions" { } 3 | 4 | # The permissions can then be viewed via: 5 | # terraform apply 6 | # terraform state show data.citrix_admin_permissions.all-permissions 7 | 8 | # Example using the data source to create a new custom role 9 | data "citrix_admin_role" "desktop_group_admin_role" { 10 | name = "Delivery Group Custom Admin Role" 11 | description = "Role for managing delivery groups" 12 | permissions = [ 13 | // all permissions from the data source that start with "DesktopGroup_", the old name for delivery groups 14 | for permission in data.citrix_admin_permissions.all-permissions.permissions : 15 | permission.id if startswith(permission.id, "DesktopGroup_") 16 | ] 17 | } -------------------------------------------------------------------------------- /internal/examples/data-sources/citrix_admin_role/data-source.tf: -------------------------------------------------------------------------------- 1 | # Get Admin Scope resource by name 2 | data "citrix_admin_role" "example_admin_role" { 3 | name = "ExampleAdminRole" 4 | } 5 | 6 | # Get Admin Scope resource by id 7 | data "citrix_admin_role" "example_admin_role" { 8 | id = "00000000-0000-0000-0000-000000000000" 9 | } -------------------------------------------------------------------------------- /internal/examples/data-sources/citrix_admin_scope/data-source.tf: -------------------------------------------------------------------------------- 1 | # Get Admin Scope resource by name 2 | data "citrix_admin_scope" "test_scope_by_name" { 3 | name = "All" 4 | } 5 | 6 | # Get Admin Scope resource by id 7 | data "citrix_admin_scope" "test_scope_by_id" { 8 | id = "00000000-0000-0000-0000-000000000000" 9 | } -------------------------------------------------------------------------------- /internal/examples/data-sources/citrix_admin_user/data-source.tf: -------------------------------------------------------------------------------- 1 | # Get Admin Scope resource by id 2 | data "citrix_admin_user" "example_admin_user" { 3 | id = "00000000-0000-0000-0000-000000000000" 4 | } -------------------------------------------------------------------------------- /internal/examples/data-sources/citrix_application_folder_details/data-source.tf: -------------------------------------------------------------------------------- 1 | data "citrix_application_folder_details" "example_application_folder_details" { 2 | path = "test-folder1\\test-folder2" 3 | } -------------------------------------------------------------------------------- /internal/examples/data-sources/citrix_bearer_token/data-source.tf: -------------------------------------------------------------------------------- 1 | # Bearer token can be fetched with the citrix_bearer_token data source. 2 | data "citrix_bearer_token" "example_bearer_token" {} 3 | 4 | # The bearer token can then be output with terraform. `sensitive = true` is required for outputing sensitive data. 5 | output "example_bearer_token_output" { 6 | value = data.citrix_bearer_token.example_bearer_token.bearer_token 7 | sensitive = true 8 | } 9 | -------------------------------------------------------------------------------- /internal/examples/data-sources/citrix_branch_repeater_policy_filter/data-source.tf: -------------------------------------------------------------------------------- 1 | data "citrix_branch_repeater_policy_filter" "example_filter" { 2 | id = "00000000-0000-0000-0000-000000000000" 3 | } -------------------------------------------------------------------------------- /internal/examples/data-sources/citrix_client_ip_policy_filter/data-source.tf: -------------------------------------------------------------------------------- 1 | data "citrix_client_ip_policy_filter" "example_filter" { 2 | id = "00000000-0000-0000-0000-000000000000" 3 | } -------------------------------------------------------------------------------- /internal/examples/data-sources/citrix_client_name_policy_filter/data-source.tf: -------------------------------------------------------------------------------- 1 | data "citrix_client_name_policy_filter" "example_filter" { 2 | id = "00000000-0000-0000-0000-000000000000" 3 | } -------------------------------------------------------------------------------- /internal/examples/data-sources/citrix_client_platform_policy_filter/data-source.tf: -------------------------------------------------------------------------------- 1 | data "citrix_client_platform_policy_filter" "example_filter" { 2 | id = "00000000-0000-0000-0000-000000000000" 3 | } -------------------------------------------------------------------------------- /internal/examples/data-sources/citrix_cloud_google_identity_provider/data-source.tf: -------------------------------------------------------------------------------- 1 | # Get Citrix Cloud Google Identity Provider data source by ID 2 | data "citrix_cloud_google_identity_provider" "example_google_identity_provider" { 3 | id = "00000000-0000-0000-0000-000000000000" 4 | } 5 | 6 | # Get Citrix Cloud Google Identity Provider data source by name 7 | data "citrix_cloud_google_identity_provider" "example_google_identity_provider" { 8 | name = "exampleGoogleIdentityProvider" 9 | } 10 | -------------------------------------------------------------------------------- /internal/examples/data-sources/citrix_cloud_okta_identity_provider/data-source.tf: -------------------------------------------------------------------------------- 1 | # Get Citrix Cloud Identity Provider data source by ID 2 | data "citrix_cloud_okta_identity_provider" "example_okta_identity_provider" { 3 | id = "00000000-0000-0000-0000-000000000000" 4 | } 5 | 6 | # Get Citrix Cloud Identity Provider data source by name 7 | data "citrix_cloud_okta_identity_provider" "example_okta_identity_provider" { 8 | name = "exampleOktaIdentityProvider" 9 | } 10 | -------------------------------------------------------------------------------- /internal/examples/data-sources/citrix_cloud_resource_location/data-source.tf: -------------------------------------------------------------------------------- 1 | # Get Resource Location resource by name 2 | data "citrix_cloud_resource_location" "example-resource-location" { 3 | name = "example-resource-location" 4 | } -------------------------------------------------------------------------------- /internal/examples/data-sources/citrix_cloud_saml_identity_provider/data-source.tf: -------------------------------------------------------------------------------- 1 | # Get Citrix Cloud Identity Provider data source by ID 2 | data "citrix_cloud_saml_identity_provider" "example_saml_identity_provider" { 3 | id = "00000000-0000-0000-0000-000000000000" 4 | } 5 | 6 | # Get Citrix Cloud Identity Provider data source by name 7 | data "citrix_cloud_saml_identity_provider" "example_saml_identity_provider" { 8 | name = "exampleSamlIdentityProvider" 9 | } 10 | -------------------------------------------------------------------------------- /internal/examples/data-sources/citrix_delivery_group/data-source.tf: -------------------------------------------------------------------------------- 1 | # Get Citrix Delivery Group data source by name 2 | data "citrix_delivery_group" "example_delivery_group" { 3 | name = "exampleDeliveryGroupName" 4 | } 5 | 6 | # Get Citrix Delivery Group data source by ID 7 | data "citrix_delivery_group" "example_delivery_group" { 8 | id = "00000000-0000-0000-0000-000000000000" 9 | } 10 | -------------------------------------------------------------------------------- /internal/examples/data-sources/citrix_delivery_group_policy_filter/data-source.tf: -------------------------------------------------------------------------------- 1 | data "citrix_delivery_group_policy_filter" "example_filter" { 2 | id = "00000000-0000-0000-0000-000000000000" 3 | } -------------------------------------------------------------------------------- /internal/examples/data-sources/citrix_delivery_group_type_policy_filter/data-source.tf: -------------------------------------------------------------------------------- 1 | data "citrix_delivery_group_type_policy_filter" "example_filter" { 2 | id = "00000000-0000-0000-0000-000000000000" 3 | } -------------------------------------------------------------------------------- /internal/examples/data-sources/citrix_hypervisor/data-source.tf: -------------------------------------------------------------------------------- 1 | # Get Hypervisor resource of any connection type by name 2 | data "citrix_hypervisor" "azure-hypervisor" { 3 | name = "azure-hyperv" 4 | } 5 | 6 | # Get Hypervisor resource of any connection type by id 7 | data "citrix_hypervisor" "azure-hypervisor" { 8 | id = "00000000-0000-0000-0000-000000000000" 9 | } -------------------------------------------------------------------------------- /internal/examples/data-sources/citrix_hypervisor_resource_pool/data-source.tf: -------------------------------------------------------------------------------- 1 | # Get Hypervisor Resource Pool of any connection type resource by name and the hypervisor name it belongs to 2 | data "citrix_hypervisor_resource_pool" "azure-resource-pool" { 3 | name = "azure-rp" 4 | hypervisor_name = "azure-hyperv" 5 | } 6 | 7 | # Get Hypervisor Resource Pool of any connection type resource by id and the hypervisor name it belongs to 8 | data "citrix_hypervisor_resource_pool" "azure-resource-pool" { 9 | id = "00000000-0000-0000-0000-000000000000" 10 | hypervisor_name = "azure-hyperv" 11 | } -------------------------------------------------------------------------------- /internal/examples/data-sources/citrix_image_definition/data-source.tf: -------------------------------------------------------------------------------- 1 | # Define Image Definition data source by id 2 | data "citrix_image_definition" "example_image_definition_by_id" { 3 | id = "00000000-0000-0000-0000-000000000000" 4 | } 5 | 6 | # Define Image Definition data source by name 7 | data "citrix_image_definition" "example_image_definition_by_name" { 8 | name = "Example Image Definition" 9 | } 10 | -------------------------------------------------------------------------------- /internal/examples/data-sources/citrix_image_version/data-source.tf: -------------------------------------------------------------------------------- 1 | # Define Image Version data source by id 2 | data "citrix_image_version" "example_image_version_by_id" { 3 | id = "00000000-0000-0000-0000-000000000000" 4 | image_definition = "00000000-0000-0000-0000-000000000000" 5 | } 6 | 7 | # Define Image Version data source by version number 8 | data "citrix_image_version" "example_image_version_by_version_number" { 9 | version_number = 1 10 | image_definition = "00000000-0000-0000-0000-000000000000" 11 | } 12 | -------------------------------------------------------------------------------- /internal/examples/data-sources/citrix_machine_catalog/data-source.tf: -------------------------------------------------------------------------------- 1 | # Get Citrix Machine Catalog data source by name 2 | data "citrix_machine_catalog" "example_machine_catalog" { 3 | name = "example-catalog" 4 | } 5 | 6 | # Get Citrix Machine Catalog data source by ID 7 | data "citrix_machine_catalog" "example_machine_catalog" { 8 | id = "00000000-0000-0000-0000-000000000000" 9 | } 10 | -------------------------------------------------------------------------------- /internal/examples/data-sources/citrix_ou_policy_filter/data-source.tf: -------------------------------------------------------------------------------- 1 | data "citrix_ou_policy_filter" "example_filter" { 2 | id = "00000000-0000-0000-0000-000000000000" 3 | } -------------------------------------------------------------------------------- /internal/examples/data-sources/citrix_policy/data-source.tf: -------------------------------------------------------------------------------- 1 | # Get Policy data source by id 2 | data "citrix_policy" "example_policy_data_source_with_id" { 3 | id = "00000000-0000-0000-0000-000000000000" 4 | } 5 | 6 | # Get Policy data source by name and policy set id 7 | data "citrix_policy" "example_policy_data_source_with_name" { 8 | policy_set_id = "00000000-0000-0000-0000-000000000000" 9 | name = "example-policy-set" 10 | } 11 | -------------------------------------------------------------------------------- /internal/examples/data-sources/citrix_policy_filters/data-source.tf: -------------------------------------------------------------------------------- 1 | data "citrix_policy_filters" "example_filters" { 2 | policy_id = "00000000-0000-0000-0000-000000000000" 3 | } -------------------------------------------------------------------------------- /internal/examples/data-sources/citrix_policy_priority/data-source.tf: -------------------------------------------------------------------------------- 1 | # Get Policy Priority data source by policy_set_id 2 | data "citrix_policy_priority" "example_policy_priority_data_source_with_policy_set_id" { 3 | policy_set_id = "00000000-0000-0000-0000-000000000000" 4 | } 5 | 6 | # Get Policy Priority data source by policy_set_name 7 | data "citrix_policy" "example_policy_data_source_with_name" { 8 | policy_set_name = "example-policy-set" 9 | } 10 | -------------------------------------------------------------------------------- /internal/examples/data-sources/citrix_policy_set/data-source.tf: -------------------------------------------------------------------------------- 1 | # Get Policy Set data source by id 2 | data "citrix_policy_set" "example_policy_set_data_source_with_id" { 3 | id = "00000000-0000-0000-0000-000000000000" 4 | } 5 | 6 | # Get Policy Set data source by name 7 | data "citrix_policy_set" "example_policy_set_data_source_with_name" { 8 | name = "example-policy-set" 9 | } 10 | -------------------------------------------------------------------------------- /internal/examples/data-sources/citrix_policy_set_v2/data-source.tf: -------------------------------------------------------------------------------- 1 | # Get Policy Set data source by id 2 | data "citrix_policy_set_v2" "example_policy_set_v2_data_source_with_id" { 3 | id = "00000000-0000-0000-0000-000000000000" 4 | } 5 | 6 | # Get Policy Set data source by name 7 | data "citrix_policy_set_v2" "example_policy_set_v2_data_source_with_name" { 8 | name = "example-policy-set-v2" 9 | } 10 | -------------------------------------------------------------------------------- /internal/examples/data-sources/citrix_policy_setting/data-source.tf: -------------------------------------------------------------------------------- 1 | # Get Policy Setting data source by id 2 | data "citrix_policy_setting" "example_policy_setting_data_source_with_id" { 3 | id = "00000000-0000-0000-0000-000000000000" 4 | } 5 | 6 | # Get Policy data source by name and policy set id 7 | data "citrix_policy_setting" "example_policy_setting_data_source_with_name" { 8 | policy_id = "00000000-0000-0000-0000-000000000000" 9 | name = "AdvanceWarningPeriod" 10 | } 11 | -------------------------------------------------------------------------------- /internal/examples/data-sources/citrix_pvs/data-source.tf: -------------------------------------------------------------------------------- 1 | data "citrix_pvs" "example_pvs_config" { 2 | pvs_farm_name = "test-farm" 3 | pvs_site_name = "test-site" 4 | pvs_store_name = "test-store" 5 | pvs_vdisk_name = "test-vdisk" 6 | } 7 | -------------------------------------------------------------------------------- /internal/examples/data-sources/citrix_quickcreate_aws_workspaces_account/data-source.tf: -------------------------------------------------------------------------------- 1 | # Get details of a Citrix QuickCreate AWS WorkSpaces Account using the account GUID 2 | data "citrix_quickcreate_aws_workspaces_account" "example-account" { 3 | id = "00000000-0000-0000-0000-000000000000" 4 | } 5 | 6 | # Get details of a Citrix QuickCreate AWS WorkSpaces Account using the account name 7 | data "citrix_quickcreate_aws_workspaces_account" "example-account" { 8 | name = "exampleAccountName" 9 | } -------------------------------------------------------------------------------- /internal/examples/data-sources/citrix_quickcreate_aws_workspaces_deployment/data-source.tf: -------------------------------------------------------------------------------- 1 | # Get details of a Citrix QuickCreate AWS WorkSpaces Deployment using deployment id 2 | data "citrix_quickcreate_aws_workspaces_deployment" "example-deployment" { 3 | id = "00000000-0000-0000-0000-000000000000" 4 | } 5 | 6 | # Get details of a Citrix QuickCreate AWS WorkSpaces Deployment using deployment name and account id 7 | data "citrix_quickcreate_aws_workspaces_deployment" "example-deployment" { 8 | account_id = citrix_quickcreate_aws_workspaces_account.example_aws_workspaces_account_role_arn.id 9 | name = "exampleDeploymentName" 10 | } 11 | -------------------------------------------------------------------------------- /internal/examples/data-sources/citrix_quickcreate_aws_workspaces_directory_connection/data-source.tf: -------------------------------------------------------------------------------- 1 | # Get details of a Citrix QuickCreate AWS WorkSpaces Directory Connection with directory connection id and account id 2 | data "citrix_quickcreate_aws_workspaces_directory_connection" "example_aws_workspaces_directory_connection" { 3 | id = "00000000-0000-0000-0000-000000000000" 4 | account = "00000000-0000-0000-0000-000000000000" 5 | } 6 | 7 | # Get details of a Citrix QuickCreate AWS WorkSpaces Directory Connection with directory connection name and account id 8 | data "citrix_quickcreate_aws_workspaces_directory_connection" "example_aws_workspaces_directory_connection" { 9 | name = "exampleDirectoryConnectionName" 10 | account = "00000000-0000-0000-0000-000000000000" 11 | } 12 | -------------------------------------------------------------------------------- /internal/examples/data-sources/citrix_quickcreate_aws_workspaces_image/data-source.tf: -------------------------------------------------------------------------------- 1 | # Get details of a Citrix QuickCreate AWS WorkSpaces Image with image id and account id 2 | data "citrix_quickcreate_aws_workspaces_image" "example_aws_workspaces_image" { 3 | id = "00000000-0000-0000-0000-000000000000" 4 | account_id = "00000000-0000-0000-0000-000000000000" 5 | } 6 | 7 | # Get details of a Citrix QuickCreate AWS WorkSpaces Image with image name and account id 8 | data "citrix_quickcreate_aws_workspaces_image" "example_aws_workspaces_image" { 9 | name = "exampleImageName" 10 | account_id = "00000000-0000-0000-0000-000000000000" 11 | } 12 | -------------------------------------------------------------------------------- /internal/examples/data-sources/citrix_quickdeploy_template_image/data-source.tf: -------------------------------------------------------------------------------- 1 | # Get details of a Citrix QuickDeploy Template Image with image name 2 | data "citrix_quickdeploy_template_image" "example_template_image" { 3 | name = "example-image-name" 4 | } -------------------------------------------------------------------------------- /internal/examples/data-sources/citrix_service_account/data-source.tf: -------------------------------------------------------------------------------- 1 | data citrix_service_account example-azuread-service-account { 2 | account_id = "" 3 | } 4 | 5 | data citrix_service_account example-ad-service-account { 6 | account_id = "domain\\admin" # Admin user name 7 | } -------------------------------------------------------------------------------- /internal/examples/data-sources/citrix_site/data-source.tf: -------------------------------------------------------------------------------- 1 | # Site information can be fetched with the citrix_site data source. 2 | data "citrix_site" "example_citrix_site" {} 3 | -------------------------------------------------------------------------------- /internal/examples/data-sources/citrix_site_settings/data-source.tf: -------------------------------------------------------------------------------- 1 | # Site Settings information can be fetched with the citrix_site_settings data source. 2 | data "citrix_site_settings" "example_citrix_site_settings" {} 3 | -------------------------------------------------------------------------------- /internal/examples/data-sources/citrix_stf_roaming_service/data-source.tf: -------------------------------------------------------------------------------- 1 | # Get details of a Citrix StoreFront Roming Service by site_id 2 | data "citrix_hypervisor_resource_pool" "azure-resource-pool" { 3 | site_id = "1" 4 | } 5 | -------------------------------------------------------------------------------- /internal/examples/data-sources/citrix_storefront_server/data-source.tf: -------------------------------------------------------------------------------- 1 | # Get StoreFront Server data source by name 2 | data "citrix_storefront_server" "example_storefront_server_by_name" { 3 | name = "ExampleStoreFrontServer" 4 | } 5 | 6 | # Get StoreFront Server data source by id 7 | data "citrix_storefront_server" "example_storefront_server_by_id" { 8 | id = "00000000-0000-0000-0000-000000000000" 9 | } -------------------------------------------------------------------------------- /internal/examples/data-sources/citrix_tag/data-source.tf: -------------------------------------------------------------------------------- 1 | # Get Tag detail by name 2 | data "citrix_tag" "example_tag_by_name" { 3 | name = "exampleTag" 4 | } 5 | 6 | # Get Tag detail by id 7 | data "citrix_tag" "example_tag_by_id" { 8 | id = "00000000-0000-0000-0000-000000000000" 9 | } -------------------------------------------------------------------------------- /internal/examples/data-sources/citrix_tag_policy_filter/data-source.tf: -------------------------------------------------------------------------------- 1 | data "citrix_tag_policy_filter" "example_filter" { 2 | id = "00000000-0000-0000-0000-000000000000" 3 | } -------------------------------------------------------------------------------- /internal/examples/data-sources/citrix_user_policy_filter/data-source.tf: -------------------------------------------------------------------------------- 1 | data "citrix_user_policy_filter" "example_filter" { 2 | id = "00000000-0000-0000-0000-000000000000" 3 | } -------------------------------------------------------------------------------- /internal/examples/data-sources/citrix_vda/data-source.tf: -------------------------------------------------------------------------------- 1 | # Get VDA resource by machine catalog Name or Id 2 | data "citrix_vda" "vda_by_machine_catalog" { 3 | machine_catalog = "{MachineCatalog Name or Id}" 4 | } 5 | 6 | # Get VDA resource by delivery group Name or Id 7 | data "citrix_vda" "vda_by_delivery_group" { 8 | delivery_group = "{DeliveryGroup Name or Id}" 9 | } -------------------------------------------------------------------------------- /internal/examples/data-sources/citrix_wem_configuration_set/data-source.tf: -------------------------------------------------------------------------------- 1 | # Get WEM configuration set by id 2 | data "citrix_wem_configuration_set" "test_wem_configuration_set_by_id" { 3 | id = "1" 4 | } 5 | 6 | # Get WEM configuration set by name 7 | data "citrix_wem_configuration_set" "test_wem_configuration_set_by_name" { 8 | name = "Default Site" 9 | } -------------------------------------------------------------------------------- /internal/examples/data-sources/citrix_zone/data-source.tf: -------------------------------------------------------------------------------- 1 | # Get Zone resource by name 2 | data "citrix_zone" "test_zone" { 3 | name = "zone-1" 4 | } -------------------------------------------------------------------------------- /internal/examples/provider/provider.tf: -------------------------------------------------------------------------------- 1 | # Cloud Provider 2 | provider "citrix" { 3 | cvad_config = { 4 | customer_id = "" 5 | client_id = "" 6 | # secret can be specified via the CITRIX_CLIENT_SECRET environment variable 7 | } 8 | } 9 | 10 | # On-Premises Provider 11 | provider "citrix" { 12 | cvad_config = { 13 | hostname = "10.0.0.6" 14 | client_id = "foo.local\\admin" 15 | # secret can be specified via the CITRIX_CLIENT_SECRET environment variable 16 | } 17 | } 18 | 19 | # Storefront Provider 20 | provider "citrix" { 21 | storefront_remote_host = { 22 | computer_name = "" 23 | ad_admin_username ="" 24 | ad_admin_password ="" 25 | # secret can be specified via the CITRIX_CLIENT_SECRET environment variable 26 | } 27 | } -------------------------------------------------------------------------------- /internal/examples/resources/citrix_access_control_policy_filter/import.sh: -------------------------------------------------------------------------------- 1 | # Access Control Policy Filter can be imported by specifying the Policy Filter GUID 2 | terraform import citrix_access_control_policy_filter.example_access_control_policy_filter 00000000-0000-0000-0000-000000000000 -------------------------------------------------------------------------------- /internal/examples/resources/citrix_access_control_policy_filter/resource.tf: -------------------------------------------------------------------------------- 1 | // With Citrix Gateway 2 | resource "citrix_access_control_policy_filter" "example_access_control_policy_filter" { 3 | policy_id = citrix_policy.example_policy.id 4 | enabled = true 5 | allowed = true 6 | connection_type = "WithAccessGateway" 7 | condition = "{Access Condition}" // Wildcard `*` is allowed 8 | gateway = "{Gateway farm name}" // Wildcard `*` is allowed 9 | } 10 | 11 | // Without Citrix Gateway 12 | resource "citrix_access_control_policy_filter" "example_access_control_policy_filter" { 13 | policy_id = citrix_policy.example_policy.id 14 | enabled = true 15 | allowed = true 16 | connection_type = "WithoutAccessGateway" 17 | condition = "*" 18 | gateway = "*" 19 | } -------------------------------------------------------------------------------- /internal/examples/resources/citrix_admin_folder/import.sh: -------------------------------------------------------------------------------- 1 | # Admin Folder can be imported by specifying the ID 2 | terraform import citrix_admin_folder.example-admin-folder 1 -------------------------------------------------------------------------------- /internal/examples/resources/citrix_admin_folder/resource.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_admin_folder" "example-admin-folder-1" { 2 | name = "example-admin-folder-1" 3 | type = [ "ContainsApplications" ] 4 | } 5 | 6 | resource "citrix_admin_folder" "example-admin-folder-2" { 7 | name = "example-admin-folder-2" 8 | type = [ "ContainsApplications" ] 9 | parent_path = citrix_admin_folder.example-admin-folder-1.path 10 | } 11 | 12 | # If you want to define admin folders with different types but with the same name, please use a single resource block with a set of types for the admin folder 13 | resource "citrix_admin_folder" "example-admin-folder-3" { 14 | name = "example-admin-folder-3" 15 | type = [ "ContainsApplications", "ContainsMachineCatalogs", "ContainsDeliveryGroups", "ContainsApplicationGroups" ] 16 | } 17 | -------------------------------------------------------------------------------- /internal/examples/resources/citrix_admin_role/import.sh: -------------------------------------------------------------------------------- 1 | # Admin Role can be imported by specifying the GUID 2 | terraform import citrix_admin_role.example-admin-role 00000000-0000-0000-0000-000000000000 -------------------------------------------------------------------------------- /internal/examples/resources/citrix_admin_role/resource.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_admin_role" "on_premises_example_role" { 2 | name = "on_premise_admin_role" 3 | description = "Example admin role for CVAD onpremises" 4 | permissions = ["AppGroupApplications_ChangeTags"] 5 | } 6 | 7 | resource "citrix_admin_role" "cloud_example_role" { 8 | name = "cloud_admin_role" 9 | can_launch_manage = true 10 | can_launch_monitor = false 11 | description = "Example admin role for a DaaS admin with some app group permissions" 12 | permissions = [ 13 | "AppGroupApplications_Read", 14 | "ApplicationGroup_AddScope", 15 | "ApplicationGroup_Read" 16 | ] 17 | } 18 | 19 | # To view all possible permissions use the data source: 20 | data "citrix_admin_permissions" "all-permissions" { } 21 | 22 | # The permissions can then be viewed via: 23 | # terraform apply 24 | # terraform state show data.citrix_admin_permissions.all-permissions 25 | 26 | # Example using the data source to create a new custom role 27 | data "citrix_admin_role" "desktop_group_admin_role" { 28 | name = "Delivery Group Custom Admin Role" 29 | description = "Role for managing delivery groups" 30 | permissions = [ 31 | // all permissions from the data source that start with "DesktopGroup_", the old name for delivery groups 32 | for permission in data.citrix_admin_permissions.all-permissions.permissions : 33 | permission.id if startswith(permission.id, "DesktopGroup_") 34 | ] 35 | } -------------------------------------------------------------------------------- /internal/examples/resources/citrix_admin_scope/import.sh: -------------------------------------------------------------------------------- 1 | # Admin Scope can be imported by specifying the GUID 2 | terraform import citrix_admin_scope.example-admin-scope 00000000-0000-0000-0000-000000000000 -------------------------------------------------------------------------------- /internal/examples/resources/citrix_admin_scope/resource.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_admin_scope" "example-admin-scope" { 2 | name = "example-admin-scope" 3 | description = "Example admin scope for delivery group and machine catalog" 4 | } -------------------------------------------------------------------------------- /internal/examples/resources/citrix_admin_user/import.sh: -------------------------------------------------------------------------------- 1 | # Admin User can be imported by specifying the SID 2 | terraform import citrix_admin_user.example-admin-user S-1-5-21-0000000000-0000000000-0000000000-0000 -------------------------------------------------------------------------------- /internal/examples/resources/citrix_admin_user/resource.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_admin_user" "example-admin-user" { 2 | name = "example-admin-user" 3 | domain_name = "example-domain" 4 | rights = [ 5 | { 6 | role = "Delivery Group Administrator", 7 | scope = "All" 8 | } 9 | ] 10 | is_enabled = true 11 | } -------------------------------------------------------------------------------- /internal/examples/resources/citrix_application/import.sh: -------------------------------------------------------------------------------- 1 | # Application can be imported by specifying the GUID 2 | terraform import citrix_application.example-application b620d505-0d0d-43b1-8c94-5cb21c5ab40d -------------------------------------------------------------------------------- /internal/examples/resources/citrix_application_group/import.sh: -------------------------------------------------------------------------------- 1 | # Application group can be imported by specifying the GUID 2 | terraform import citrix_application_group.example-application-group b620d505-0d0d-43b1-8c94-5cb21c5ab40d -------------------------------------------------------------------------------- /internal/examples/resources/citrix_application_group/resource.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_application_group" "example-application-group" { 2 | name = "example-name" 3 | description = "example-description" 4 | included_users = ["user@text.com"] 5 | delivery_groups = [citrix_delivery_group.example-delivery-group.id, citrix_delivery_group.example-delivery-group-2.id] 6 | } 7 | 8 | 9 | -------------------------------------------------------------------------------- /internal/examples/resources/citrix_application_icon/import.sh: -------------------------------------------------------------------------------- 1 | # Application icon can be imported by specifying the ID 2 | terraform import citrix_application_icon.example-application-icon 1 -------------------------------------------------------------------------------- /internal/examples/resources/citrix_application_icon/resource.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_application_icon" "example-application-icon" { 2 | raw_data = filebase64("path/to/icon.ico") 3 | } 4 | # Use filebase64 to encode a file's content in base64 format. -------------------------------------------------------------------------------- /internal/examples/resources/citrix_aws_hypervisor/import.sh: -------------------------------------------------------------------------------- 1 | # AWS Hypervisor can be imported by specifying the GUID 2 | terraform import citrix_aws_hypervisor.example-aws-hypervisor b2339edf-7b00-436e-9c3a-54c987c3526e -------------------------------------------------------------------------------- /internal/examples/resources/citrix_aws_hypervisor/resource.tf: -------------------------------------------------------------------------------- 1 | # AWS Hypervisor 2 | resource "citrix_aws_hypervisor" "example-aws-hypervisor" { 3 | name = "example-aws-hypervisor" 4 | zone = "" 5 | api_key = var.aws_account_access_key # AWS account Access Key from variable 6 | secret_key = var.aws_account_secret_key # AWS account Secret Key from variable 7 | region = "us-east-2" 8 | } -------------------------------------------------------------------------------- /internal/examples/resources/citrix_aws_hypervisor_resource_pool/import.sh: -------------------------------------------------------------------------------- 1 | # Hypervisor Resource Pool can be imported with the format HypervisorId,HypervisorResourcePoolId 2 | terraform import citrix_aws_hypervisor_resource_pool.example-aws-hypervisor-resource-pool sbf0dc45-5c42-45a0-a15d-a3df4ff5da8c,ce571dd9-1a46-4b85-891c-484423322c53 3 | 4 | # Hypervisor Resource Pool can be imported by specifying the GUID 5 | terraform import citrix_aws_hypervisor_resource_pool.example-aws-hypervisor-resource-pool ce571dd9-1a46-4b85-891c-484423322c53 -------------------------------------------------------------------------------- /internal/examples/resources/citrix_aws_hypervisor_resource_pool/resource.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_aws_hypervisor_resource_pool" "example-aws-hypervisor-resource-pool" { 2 | name = "example-aws-hypervisor-resource-pool" 3 | hypervisor = citrix_aws_hypervisor.example-aws-hypervisor.id 4 | subnets = [ 5 | "10.0.1.0/24", 6 | ] 7 | vpc = "" 8 | availability_zone = "us-east-2a" 9 | } -------------------------------------------------------------------------------- /internal/examples/resources/citrix_azure_hypervisor/import.sh: -------------------------------------------------------------------------------- 1 | # Azure Hypervisor can be imported by specifying the GUID 2 | terraform import citrix_azure_hypervisor.example-azure-hypervisor b2339edf-7b00-436e-9c3a-54c987c3526e -------------------------------------------------------------------------------- /internal/examples/resources/citrix_azure_hypervisor/resource.tf: -------------------------------------------------------------------------------- 1 | # Azure Hypervisor 2 | resource "citrix_azure_hypervisor" "example-azure-hypervisor" { 3 | name = "example-azure-hypervisor" 4 | zone = "" 5 | active_directory_id = "" 6 | subscription_id = "" 7 | application_secret = var.azure_client_secret # Azure Client Secret from variable 8 | application_id = "" 9 | } -------------------------------------------------------------------------------- /internal/examples/resources/citrix_azure_hypervisor_resource_pool/import.sh: -------------------------------------------------------------------------------- 1 | # Hypervisor Resource Pool can be imported with the format HypervisorId,HypervisorResourcePoolId 2 | terraform import citrix_azure_hypervisor_resource_pool.example-azure-hypervisor-resource-pool sbf0dc45-5c42-45a0-a15d-a3df4ff5da8c,ce571dd9-1a46-4b85-891c-484423322c53 3 | 4 | # Hypervisor Resource Pool can be imported by specifying the GUID 5 | terraform import citrix_azure_hypervisor_resource_pool.example-azure-hypervisor-resource-pool ce571dd9-1a46-4b85-891c-484423322c53 -------------------------------------------------------------------------------- /internal/examples/resources/citrix_azure_hypervisor_resource_pool/resource.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_azure_hypervisor_resource_pool" "example-azure-hypervisor-resource-pool" { 2 | name = "example-azure-hypervisor-resource-pool" 3 | hypervisor = citrix_azure_hypervisor.example-azure-hypervisor.id 4 | region = "East US" 5 | virtual_network_resource_group = "" 6 | virtual_network = "" 7 | subnets = [ 8 | "subnet 1", 9 | "subnet 2" 10 | ] 11 | } -------------------------------------------------------------------------------- /internal/examples/resources/citrix_branch_repeater_policy_filter/import.sh: -------------------------------------------------------------------------------- 1 | # Branch Repeater Policy Filter can be imported by specifying the Policy Filter GUID 2 | terraform import citrix_branch_repeater_policy_filter.example_branch_repeater_policy_filter 00000000-0000-0000-0000-000000000000 -------------------------------------------------------------------------------- /internal/examples/resources/citrix_branch_repeater_policy_filter/resource.tf: -------------------------------------------------------------------------------- 1 | # When `allowed` is set to `true`, this means policy is applied to `Connections with Citrix SD-WAN`. 2 | resource "citrix_branch_repeater_policy_filter" "example_branch_repeater_policy_filter" { 3 | policy_id = citrix_policy.example_policy.id 4 | allowed = true 5 | } 6 | 7 | # When `allowed` is set to `false`, this means policy is applied to `Connections without Citrix SD-WAN`. 8 | resource "citrix_branch_repeater_policy_filter" "example_branch_repeater_policy_filter" { 9 | policy_id = citrix_policy.example_policy.id 10 | allowed = false 11 | } -------------------------------------------------------------------------------- /internal/examples/resources/citrix_client_ip_policy_filter/import.sh: -------------------------------------------------------------------------------- 1 | # Client IP Policy Filter can be imported by specifying the Policy Filter GUID 2 | terraform import citrix_client_ip_policy_filter.example_client_ip_policy_filter 00000000-0000-0000-0000-000000000000 -------------------------------------------------------------------------------- /internal/examples/resources/citrix_client_ip_policy_filter/resource.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_client_ip_policy_filter" "example_client_ip_policy_filter" { 2 | policy_id = citrix_policy.example_policy.id 3 | enabled = true 4 | allowed = true 5 | ip_address = "{IP address to be filtered}" 6 | } -------------------------------------------------------------------------------- /internal/examples/resources/citrix_client_name_policy_filter/import.sh: -------------------------------------------------------------------------------- 1 | # Client Name Policy Filter can be imported by specifying the Policy Filter GUID 2 | terraform import citrix_client_name_policy_filter.example_client_name_policy_filter 00000000-0000-0000-0000-000000000000 -------------------------------------------------------------------------------- /internal/examples/resources/citrix_client_name_policy_filter/resource.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_client_name_policy_filter" "example_client_name_policy_filter" { 2 | policy_id = citrix_policy.example_policy.id 3 | enabled = true 4 | allowed = true 5 | client_name = "{Name of the client to be filtered}" 6 | } -------------------------------------------------------------------------------- /internal/examples/resources/citrix_client_platform_policy_filter/import.sh: -------------------------------------------------------------------------------- 1 | # Client Platform Policy Filter can be imported by specifying the Policy Filter GUID 2 | terraform import citrix_client_platform_policy_filter.example_client_platform_policy_filter 00000000-0000-0000-0000-000000000000 -------------------------------------------------------------------------------- /internal/examples/resources/citrix_client_platform_policy_filter/resource.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_client_platform_policy_filter" "example_client_platform_policy_filter" { 2 | policy_id = citrix_policy.example_policy.id 3 | enabled = true 4 | allowed = true 5 | platform = "{Windows|Linux|Mac|Ios|Android|Html5}" 6 | } 7 | -------------------------------------------------------------------------------- /internal/examples/resources/citrix_cloud_admin_user/import.sh: -------------------------------------------------------------------------------- 1 | # Admin User can be imported by specifying their adminId which can be userId or ucOid. Note: Admin users must accept the invitation before they can be imported. 2 | terraform import citrix_cloud_admin_user.example-admin-user f6197063-a7b3-49fc-a1df-42a042449bff -------------------------------------------------------------------------------- /internal/examples/resources/citrix_cloud_google_identity_provider/import.sh: -------------------------------------------------------------------------------- 1 | # Citrix Cloud Google Identity Provider can be imported by specifying the ID 2 | terraform import citrix_cloud_google_identity_provider.example_google_idp 00000000-0000-0000-0000-000000000000 3 | -------------------------------------------------------------------------------- /internal/examples/resources/citrix_cloud_google_identity_provider/resource.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_cloud_google_identity_provider" "example_google_idp" { 2 | name = "example Google idp" 3 | auth_domain_name = "exampleAuthDomain" 4 | client_email = var.example_google_idp_client_email 5 | private_key = var.example_google_idp_private_key 6 | impersonated_user = var.example_google_idp_impersonated_user 7 | } 8 | -------------------------------------------------------------------------------- /internal/examples/resources/citrix_cloud_okta_identity_provider/import.sh: -------------------------------------------------------------------------------- 1 | # Citrix Cloud Okta Identity Provider can be imported by specifying the ID 2 | terraform import citrix_cloud_okta_identity_provider.example_okta_idp 00000000-0000-0000-0000-000000000000 3 | -------------------------------------------------------------------------------- /internal/examples/resources/citrix_cloud_okta_identity_provider/resource.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_cloud_okta_identity_provider" "example_okta_idp" { 2 | name = "example Okta idp" 3 | okta_domain = "example.okta.com" 4 | okta_client_id = var.example_okta_client_id 5 | okta_client_secret = var.example_okta_client_secret 6 | okta_api_token = var.example_okta_api_token 7 | } 8 | -------------------------------------------------------------------------------- /internal/examples/resources/citrix_cloud_resource_location/import.sh: -------------------------------------------------------------------------------- 1 | # Resource Location can be imported by specifying the resource location GUID 2 | terraform import citrix_cloud_resource_location.test_resource_location 00000000-0000-0000-0000-000000000000 -------------------------------------------------------------------------------- /internal/examples/resources/citrix_cloud_resource_location/resource.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_cloud_resource_location" "example-resource-location" { 2 | name = "example-resource-location" 3 | } -------------------------------------------------------------------------------- /internal/examples/resources/citrix_cloud_saml_identity_provider/import.sh: -------------------------------------------------------------------------------- 1 | # SAML 2.0 Identity Provider can be imported by specifying the GUID 2 | terraform import citrix_cloud_saml_identity_provider.example_saml_idp 00000000-0000-0000-0000-000000000000 -------------------------------------------------------------------------------- /internal/examples/resources/citrix_cloud_saml_identity_provider/resource.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_cloud_saml_identity_provider" "example_saml_idp" { 2 | name = "example SAML 2.0 idp" 3 | auth_domain_name = "exampleAuthDomain" 4 | 5 | entity_id = var.saml_entity_id 6 | use_scoped_entity_id = false 7 | 8 | single_sign_on_service_url = var.saml_sso_url 9 | sign_auth_request = "Yes" 10 | single_sign_on_service_binding = "HttpPost" 11 | saml_response = "SignEitherResponseOrAssertion" 12 | cert_file_path = var.cert_file_path 13 | authentication_context = "Unspecified" 14 | authentication_context_comparison = "Exact" 15 | 16 | logout_url = var.saml_logout_url 17 | sign_logout_request = "Yes" 18 | logout_binding = "HttpPost" 19 | 20 | attribute_names = { 21 | user_display_name = "displayName" 22 | user_given_name = "givenName" 23 | user_family_name = "familyName" 24 | security_identifier = "cip_sid" 25 | user_principal_name = "cip_upn" 26 | email = "cip_email" 27 | ad_object_identifier = "cip_oid" 28 | ad_forest = "cip_forest" 29 | ad_domain = "cip_domain" 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /internal/examples/resources/citrix_delivery_group/import.sh: -------------------------------------------------------------------------------- 1 | # Delivery Group can be imported by specifying the GUID 2 | terraform import citrix_delivery_group.example-delivery-group a92ac0d6-9a0f-477a-a504-07cae8fccb81 -------------------------------------------------------------------------------- /internal/examples/resources/citrix_delivery_group_policy_filter/import.sh: -------------------------------------------------------------------------------- 1 | # Delivery Group Policy Filter can be imported by specifying the Policy Filter GUID 2 | terraform import citrix_delivery_group_policy_filter.example_delivery_group_policy_filter 00000000-0000-0000-0000-000000000000 -------------------------------------------------------------------------------- /internal/examples/resources/citrix_delivery_group_policy_filter/resource.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_delivery_group_policy_filter" "example_delivery_group_policy_filter" { 2 | policy_id = citrix_policy.example_policy.id 3 | enabled = true 4 | allowed = true 5 | delivery_group_id = "{ID of the delivery group to be filtered}" 6 | } -------------------------------------------------------------------------------- /internal/examples/resources/citrix_delivery_group_type_policy_filter/import.sh: -------------------------------------------------------------------------------- 1 | # Delivery Group Type Policy Filter can be imported by specifying the Policy Filter GUID 2 | terraform import citrix_delivery_group_type_policy_filter.example_delivery_group_type_policy_filter 00000000-0000-0000-0000-000000000000 -------------------------------------------------------------------------------- /internal/examples/resources/citrix_delivery_group_type_policy_filter/resource.tf: -------------------------------------------------------------------------------- 1 | // Available `delivery_group_type` are `Private`, `PrivateApp`, `Shared`, `SharedApp` 2 | // `Private` means Private Desktop 3 | // `PrivateApp` means Private Application 4 | // `Shared` means Shared Desktop 5 | // `SharedApp` means Shared Application 6 | resource "citrix_delivery_group_type_policy_filter" "example_delivery_group_type_policy_filter" { 7 | policy_id = citrix_policy.example_policy.id 8 | enabled = true 9 | allowed = true 10 | delivery_group_type = "{Type of the delivery group to be filtered}" 11 | } -------------------------------------------------------------------------------- /internal/examples/resources/citrix_desktop_icon/import.sh: -------------------------------------------------------------------------------- 1 | # Desktop icon can be imported by specifying the ID 2 | terraform import citrix_desktop_icon.example-desktop-icon 1 -------------------------------------------------------------------------------- /internal/examples/resources/citrix_desktop_icon/resource.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_desktop_icon" "example-desktop-icon" { 2 | raw_data = filebase64("path/to/desktopicon.ico") 3 | } 4 | # Use filebase64 to encode a file's content in base64 format. -------------------------------------------------------------------------------- /internal/examples/resources/citrix_gac_discovery/import.sh: -------------------------------------------------------------------------------- 1 | # Global App Configuration Discovery can be imported by specifying the domain 2 | terraform import citrix_gac_discovery.example-gac-discovery example-domain.com -------------------------------------------------------------------------------- /internal/examples/resources/citrix_gac_discovery/resource.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_gac_discovery" "example-gac-discovery" { 2 | domain = "example-domain.com" 3 | service_urls = ["https://example.com:443", "https://example2.com:80"] 4 | allowed_web_store_urls = ["https://example.com", "https://example2.com"] 5 | } -------------------------------------------------------------------------------- /internal/examples/resources/citrix_gac_settings/import.sh: -------------------------------------------------------------------------------- 1 | # Global App Configuration settings can be imported by specifying the service url 2 | terraform import citrix_gac_settings.test_gac_settings https://example.com:443 -------------------------------------------------------------------------------- /internal/examples/resources/citrix_gcp_hypervisor/import.sh: -------------------------------------------------------------------------------- 1 | # Hypervisor can be imported by specifying the GUID 2 | terraform import citrix_gcp_hypervisor.example-gcp-hypervisor b2339edf-7b00-436e-9c3a-54c987c3526e -------------------------------------------------------------------------------- /internal/examples/resources/citrix_gcp_hypervisor/resource.tf: -------------------------------------------------------------------------------- 1 | # GCP Hypervisor 2 | resource "citrix_gcp_hypervisor" "example-gcp-hypervisor" { 3 | name = "example-gcp-hypervisor" 4 | zone = "" 5 | service_account_id = "" 6 | service_account_credentials = "" 7 | } -------------------------------------------------------------------------------- /internal/examples/resources/citrix_gcp_hypervisor_resource_pool/import.sh: -------------------------------------------------------------------------------- 1 | # Hypervisor Resource Pool can be imported with the format HypervisorId,HypervisorResourcePoolId 2 | terraform import citrix_gcp_hypervisor_resource_pool.example-gcp-hypervisor-resource-pool sbf0dc45-5c42-45a0-a15d-a3df4ff5da8c,ce571dd9-1a46-4b85-891c-484423322c53 3 | 4 | # Hypervisor Resource Pool can be imported by specifying the GUID 5 | terraform import citrix_gcp_hypervisor_resource_pool.example-gcp-hypervisor-resource-pool ce571dd9-1a46-4b85-891c-484423322c53 -------------------------------------------------------------------------------- /internal/examples/resources/citrix_gcp_hypervisor_resource_pool/resource.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_gcp_hypervisor_resource_pool" "example-gcp-hypervisor-resource-pool" { 2 | name = "example-gcp-hypervisor-resource-pool" 3 | hypervisor = citrix_gcp_hypervisor.example-gcp-hypervisor.id 4 | project_name = "10000-example-gcp-project" 5 | region = "us-east1" 6 | subnets = [ 7 | "us-east1", 8 | ] 9 | vpc = "" 10 | } -------------------------------------------------------------------------------- /internal/examples/resources/citrix_hpe_moonshot_hypervisor/import.sh: -------------------------------------------------------------------------------- 1 | # Hypervisor can be imported by specifying the GUID 2 | terraform import citrix_hpe_moonshot_hypervisor.example-hpe-moonshot-hypervisor b2339edf-7b00-436e-9c3a-54c987c3526e -------------------------------------------------------------------------------- /internal/examples/resources/citrix_hpe_moonshot_hypervisor/resource.tf: -------------------------------------------------------------------------------- 1 | # HPE Moonshot Hypervisor 2 | resource "citrix_hpe_moonshot_hypervisor" "example-hpe-moonshot-hypervisor" { 3 | name = "example-hpe-moonshot-hypervisor" 4 | zone = "" 5 | username = "" 6 | password = "" 7 | password_format = "PlainText" 8 | addresses = [ 9 | "http://" 10 | ] 11 | ssl_thumbprints = [ 12 | "" 13 | ] 14 | } -------------------------------------------------------------------------------- /internal/examples/resources/citrix_image_definition/import.sh: -------------------------------------------------------------------------------- 1 | # Image Definition can be imported by specifying the GUID 2 | terraform import citrix_image_definition.example_image_definition 00000000-0000-0000-0000-000000000000 3 | -------------------------------------------------------------------------------- /internal/examples/resources/citrix_image_definition/resource.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_image_definition" "example_azure_image_definition" { 2 | name = "Example Azure Image Definition" 3 | description = "Example Azure Image Definition Description" 4 | os_type = "Windows" 5 | session_support = "MultiSession" 6 | hypervisor = citrix_azure_hypervisor.example_azure_hypervisor.id 7 | hypervisor_resource_pool = citrix_azure_hypervisor_resource_pool.example_azure_hypervisor_resource_pool.id 8 | azure_image_definition = { 9 | resource_group = "ExampleResourceGroup" 10 | use_image_gallery = true 11 | image_gallery_name = "ExampleImageGalleryName" 12 | } 13 | } 14 | 15 | resource "citrix_image_definition" "example_vsphere_image_definition" { 16 | name = "Example vSphere Image Definition" 17 | description = "Example vSphere Image Definition Description" 18 | os_type = "Windows" 19 | session_support = "MultiSession" 20 | hypervisor = citrix_vsphere_hypervisor.example_vsphere_hypervisor.id 21 | hypervisor_resource_pool = citrix_vsphere_hypervisor_resource_pool.example_vsphere_hypervisor_resource_pool.id 22 | } 23 | -------------------------------------------------------------------------------- /internal/examples/resources/citrix_image_version/import.sh: -------------------------------------------------------------------------------- 1 | # Image Version can be imported with the format ImageDefinitionId,ImageVersionId 2 | terraform import citrix_image_version.example_image_version 86a00c8a-504c-4a85-9d5d-bce4d5876a72,fb8cc891-c6c8-4c26-be52-1734d4ef1207 -------------------------------------------------------------------------------- /internal/examples/resources/citrix_machine_catalog/import.sh: -------------------------------------------------------------------------------- 1 | # Machine catalog can be imported by specifying the GUID 2 | terraform import citrix_machine_catalog.example b2339edf-7b00-436e-9c3a-54c987c3526e -------------------------------------------------------------------------------- /internal/examples/resources/citrix_machine_properties/import.sh: -------------------------------------------------------------------------------- 1 | # citrix_machine_properties resource can be imported with the Machine Name 2 | terraform import citrix_machine_properties.example_machine_properties domain\machine-name -------------------------------------------------------------------------------- /internal/examples/resources/citrix_machine_properties/resource.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_machine_properties" "example_machine_properties" { 2 | name = "domain\\machine-name" // For workgroup machines, use machine-name only 3 | machine_catalog_id = "00000000-0000-0000-0000-000000000000" // Id of the machine catalog the machine belongs to 4 | tags = [ "11111111-1111-1111-1111-111111111111" ] // Tags to be assigned to the machine 5 | } 6 | -------------------------------------------------------------------------------- /internal/examples/resources/citrix_nutanix_hypervisor/import.sh: -------------------------------------------------------------------------------- 1 | # Nutanix Hypervisor can be imported by specifying the GUID 2 | terraform import citrix_nutanix_hypervisor.example-nutanix-hypervisor b2339edf-7b00-436e-9c3a-54c987c3526e -------------------------------------------------------------------------------- /internal/examples/resources/citrix_nutanix_hypervisor/resource.tf: -------------------------------------------------------------------------------- 1 | # Nutanix Hypervisor 2 | resource "citrix_nutanix_hypervisor" "example-nutanix-hypervisor" { 3 | name = "example-nutanix-hypervisor" 4 | zone = "" 5 | username = "" 6 | password = "" 7 | password_format = "Plaintext" 8 | addresses = ["10.122.36.26"] 9 | max_absolute_active_actions = 20 10 | } -------------------------------------------------------------------------------- /internal/examples/resources/citrix_nutanix_hypervisor_resource_pool/import.sh: -------------------------------------------------------------------------------- 1 | # Hypervisor Resource Pool can be imported with the format HypervisorId,HypervisorResourcePoolId 2 | terraform import citrix_nutanix_hypervisor_resource_pool.example-nutanix-hypervisor-resource-pool sbf0dc45-5c42-45a0-a15d-a3df4ff5da8c,ce571dd9-1a46-4b85-891c-484423322c53 3 | 4 | # Hypervisor Resource Pool can be imported by specifying the GUID 5 | terraform import citrix_nutanix_hypervisor_resource_pool.example-nutanix-hypervisor-resource-pool ce571dd9-1a46-4b85-891c-484423322c53 -------------------------------------------------------------------------------- /internal/examples/resources/citrix_nutanix_hypervisor_resource_pool/resource.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_nutanix_hypervisor_resource_pool" "example-nutanix-hypervisor-resource-pool" { 2 | name = "example-nutanix-hypervisor-resource-pool" 3 | hypervisor = citrix_nutanix_hypervisor.example-nutanix-hypervisor.id 4 | networks = [ 5 | "", 6 | "" 7 | ] 8 | } -------------------------------------------------------------------------------- /internal/examples/resources/citrix_openshift_hypervisor/import.sh: -------------------------------------------------------------------------------- 1 | # OpenShift Hypervisor can be imported by specifying the GUID 2 | terraform import citrix_openshift_hypervisor.example-openshift-hypervisor b2339edf-7b00-436e-9c3a-54c987c3526e -------------------------------------------------------------------------------- /internal/examples/resources/citrix_openshift_hypervisor/resource.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_openshift_hypervisor" "example-openshift-hypervisor" { 2 | name = "example-openshift-hypervisor" 3 | zone = "" 4 | service_account_token = "" 5 | addresses = [""] 6 | ssl_thumbprints = [""] 7 | max_absolute_active_actions = 150 8 | max_absolute_new_actions_per_minute = 30 9 | max_power_actions_percentage_of_machines = 40 10 | } -------------------------------------------------------------------------------- /internal/examples/resources/citrix_openshift_hypervisor_resource_pool/import.sh: -------------------------------------------------------------------------------- 1 | # Hypervisor Resource Pool can be imported with the format HypervisorId,HypervisorResourcePoolId 2 | terraform import citrix_openshift_hypervisor_resource_pool.example-openshift-hypervisor-resource-pool sbf0dc45-5c42-45a0-a15d-a3df4ff5da8c,ce571dd9-1a46-4b85-891c-484423322c53 3 | 4 | # Hypervisor Resource Pool can be imported by specifying the GUID 5 | terraform import citrix_openshift_hypervisor_resource_pool.example-openshift-hypervisor-resource-pool ce571dd9-1a46-4b85-891c-484423322c53 -------------------------------------------------------------------------------- /internal/examples/resources/citrix_openshift_hypervisor_resource_pool/resource.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_openshift_hypervisor_resource_pool" "example-openshift-hypervisor-resource-pool" { 2 | name = "example-openshift-hypervisor-resource-pool" 3 | hypervisor = citrix_openshift_hypervisor.example-openshift-hypervisor.id 4 | namespace = "" 5 | networks = [ 6 | "", 7 | "" 8 | ] 9 | storage = [ 10 | { 11 | storage_name = "" 12 | superseded = false # Only to be used for updates 13 | } 14 | ] 15 | temporary_storage = [ 16 | { 17 | storage_name = "" 18 | superseded = false # Only to be used for updates 19 | } 20 | ] 21 | } -------------------------------------------------------------------------------- /internal/examples/resources/citrix_ou_policy_filter/import.sh: -------------------------------------------------------------------------------- 1 | # Organizational Unit Policy Filter can be imported by specifying the Policy Filter GUID 2 | terraform import citrix_ou_policy_filter.example_ou_policy_filter 00000000-0000-0000-0000-000000000000 -------------------------------------------------------------------------------- /internal/examples/resources/citrix_ou_policy_filter/resource.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_ou_policy_filter" "example_ou_policy_filter" { 2 | policy_id = citrix_policy.example_policy.id 3 | enabled = true 4 | allowed = true 5 | ou = "{Path of the organizational unit to be filtered}" 6 | } -------------------------------------------------------------------------------- /internal/examples/resources/citrix_policy/import.sh: -------------------------------------------------------------------------------- 1 | # Policy can be imported by specifying the Policy GUID 2 | terraform import citrix_policy.example_policy 00000000-0000-0000-0000-000000000000 -------------------------------------------------------------------------------- /internal/examples/resources/citrix_policy/resource.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_policy" "example_policy" { 2 | policy_set_id = citrix_policy_set_v2.example_policy_set_v2.id 3 | name = "example_policy" 4 | description = "example policy description" 5 | enabled = true 6 | } -------------------------------------------------------------------------------- /internal/examples/resources/citrix_policy_priority/import.sh: -------------------------------------------------------------------------------- 1 | # Policy Priority can be imported by specifying the Policy Set GUID 2 | terraform import citrix_policy_priority.example 00000000-0000-0000-0000-000000000000 -------------------------------------------------------------------------------- /internal/examples/resources/citrix_policy_priority/resource.tf: -------------------------------------------------------------------------------- 1 | // Policy Priority manages the priorities of the policies in a policy set. 2 | resource "citrix_policy_priority" "example" { 3 | policy_set_id = citrix_policy_set_v2.example_policy_set_v2.id 4 | policy_priority = [ 5 | citrix_policy.example_policy_1.id, 6 | citrix_policy.example_policy_2.id, 7 | citrix_policy.example_policy_3.id 8 | ] 9 | } -------------------------------------------------------------------------------- /internal/examples/resources/citrix_policy_set/import.sh: -------------------------------------------------------------------------------- 1 | # Policy and Policy Set Association can be imported by specifying the Policy Set GUID 2 | terraform import citrix_policy_set.example 00000000-0000-0000-0000-000000000000 -------------------------------------------------------------------------------- /internal/examples/resources/citrix_policy_set_v2/import.sh: -------------------------------------------------------------------------------- 1 | # Policy Set can be imported by specifying the Policy Set GUID 2 | terraform import citrix_policy_set_v2.example 00000000-0000-0000-0000-000000000000 -------------------------------------------------------------------------------- /internal/examples/resources/citrix_policy_set_v2/resource.tf: -------------------------------------------------------------------------------- 1 | // Policy set is a collection of policies. You can use `citrix_policy_priority` resource to set the priority of the policies in the policy set. 2 | resource "citrix_policy_set_v2" "example_policy_set_v2" { 3 | name = "example_policy_set_v2" 4 | description = "example_policy_set_v2 description" 5 | scopes = [] 6 | delivery_groups = [ 7 | "00000000-0000-0000-0000-000000000000" 8 | ] 9 | } 10 | 11 | // The default policy set can also be managed by the `citrix_policy_set_v2` resource by import. However, it cannot be modified or deleted. 12 | resource "citrix_policy_set_v2" "default_site_policies" { 13 | name = "DefaultSitePolicies" 14 | delivery_groups = [] 15 | } -------------------------------------------------------------------------------- /internal/examples/resources/citrix_policy_setting/import.sh: -------------------------------------------------------------------------------- 1 | # Policy Setting can be imported by specifying the Policy Setting GUID 2 | terraform import citrix_policy_setting.example_policy_setting 00000000-0000-0000-0000-000000000000 -------------------------------------------------------------------------------- /internal/examples/resources/citrix_policy_setting/resource.tf: -------------------------------------------------------------------------------- 1 | // Policy Settings are associated with a policy 2 | resource "citrix_policy_setting" "example_policy_setting" { 3 | policy_id = citrix_policy.example_policy.id 4 | name = "AdvanceWarningPeriod" 5 | use_default = false 6 | value = "13:00:00" 7 | } 8 | 9 | // To use default value 10 | resource "citrix_policy_setting" "example_policy_setting" { 11 | policy_id = citrix_policy.example_policy.id 12 | name = "AdvanceWarningPeriod" 13 | use_default = true 14 | } -------------------------------------------------------------------------------- /internal/examples/resources/citrix_quickcreate_aws_workspaces_account/import.sh: -------------------------------------------------------------------------------- 1 | # Quick Deploy AWS WorkSpaces Account can be imported by specifying the Account GUID 2 | terraform import citrix_quickcreate_aws_workspaces_account.test_aws_workspaces_account 00000000-0000-0000-0000-000000000000 -------------------------------------------------------------------------------- /internal/examples/resources/citrix_quickcreate_aws_workspaces_account/resource.tf: -------------------------------------------------------------------------------- 1 | # Quick Deploy AWS WorkSpaces Account with AWS Role ARN 2 | resource "citrix_quickcreate_aws_workspaces_account" "example_aws_workspaces_account_role_arn" { 3 | name = "exampe-aws-workspaces-account-role-arn" 4 | aws_region = "us-east-1" 5 | aws_role_arn = "" 6 | } 7 | 8 | # Quick Deploy AWS WorkSpaces Account with AWS Access Key and Secret Access Key 9 | resource "citrix_quickcreate_aws_workspaces_account" "example_aws_workspaces_account_access_key" { 10 | name = "exampe-aws-workspaces-account-access-key" 11 | aws_region = "us-east-1" 12 | aws_access_key_id = var.aws_access_key_id # AWS Access Key ID from variable 13 | aws_secret_access_key = var.aws_secret_access_key # AWS Secret Access Key from variable 14 | } 15 | -------------------------------------------------------------------------------- /internal/examples/resources/citrix_quickcreate_aws_workspaces_deployment/import.sh: -------------------------------------------------------------------------------- 1 | # Quick Deploy AWS WorkSpaces Deployment can be imported by specifying the Deployment GUID. 2 | terraform import citrix_quickcreate_aws_workspaces_deployment.example_aws_workspaces_deployment 00000000-0000-0000-0000-000000000000 3 | -------------------------------------------------------------------------------- /internal/examples/resources/citrix_quickcreate_aws_workspaces_directory_connection/import.sh: -------------------------------------------------------------------------------- 1 | # Quick Deploy AWS WorkSpaces Directory Connection can be imported by specifying the Account GUID and Directory Connection GUID separated by a comma. 2 | terraform import citrix_quickcreate_aws_workspaces_directory_connection.example_aws_workspaces_directory_connection 00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000 3 | -------------------------------------------------------------------------------- /internal/examples/resources/citrix_quickcreate_aws_workspaces_image/import.sh: -------------------------------------------------------------------------------- 1 | # Quick Deploy AWS WorkSpaces Image can be imported by specifying the Account GUID and the Image GUID separated by a comma. 2 | terraform import citrix_quickcreate_aws_workspaces_image.example_aws_workspaces_image 00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000 3 | -------------------------------------------------------------------------------- /internal/examples/resources/citrix_quickcreate_aws_workspaces_image/resource.tf: -------------------------------------------------------------------------------- 1 | # Quick Deploy AWS WorkSpaces Image with AMI image 2 | resource "citrix_quickcreate_aws_workspaces_image" "example_aws_workspaces_image_ami" { 3 | name = "exampe-aws-workspaces-image" 4 | account_id = citrix_quickcreate_aws_workspaces_account.example_aws_workspaces_account.id 5 | aws_image_id = "ami-012345abcde" 6 | description = "Example AWS WorkSpaces image imported with AMI id" 7 | session_support = "SingleSession" 8 | operating_system = "WINDOWS" 9 | ingestion_process = "BYOL_REGULAR_BYOP" 10 | } 11 | 12 | # Quick Deploy AWS WorkSpaces Image with WSI image 13 | resource "citrix_quickcreate_aws_workspaces_image" "example_aws_workspaces_image_wsi" { 14 | name = "exampe-aws-workspaces-image" 15 | account_id = citrix_quickcreate_aws_workspaces_account.example_aws_workspaces_account.id 16 | aws_image_id = "wsi-012345abcde" 17 | description = "Example AWS WorkSpaces image imported with WSI id" 18 | session_support = "SingleSession" 19 | operating_system = "WINDOWS" 20 | ingestion_process = "BYOL_REGULAR_BYOP" 21 | } 22 | -------------------------------------------------------------------------------- /internal/examples/resources/citrix_quickdeploy_template_image/resource.tf: -------------------------------------------------------------------------------- 1 | # Quick Deploy Template Image with VHD URI 2 | resource citrix_quickdeploy_template_image test_image { 3 | name = "example-template-image" 4 | notes = "Example Windows Gen 1 template image imported to US East region in the Citrix Managed Azure Subscription via VHD URI" 5 | subscription_name = "Citrix Managed" 6 | region = "East US" 7 | vhd_uri = "" 8 | machine_generation = "V1" 9 | os_platform = "Windows" 10 | } 11 | 12 | # Quick Deploy Gen 2 Template Image with vTPM and Secure Boot enabled 13 | resource citrix_quickdeploy_template_image test_image { 14 | name = "example-template-image" 15 | notes = "Example Windows Gen 2 template image with vTPM and Secure Boot enabled" 16 | subscription_name = "Citrix Managed" 17 | region = "East US" 18 | vhd_uri = "" 19 | machine_generation = "V2" 20 | os_platform = "Windows" 21 | vtpm_enabled = true 22 | secure_boot_enabled = true 23 | guest_disk_uri = "" 24 | } -------------------------------------------------------------------------------- /internal/examples/resources/citrix_remote_pc_wake_on_lan_hypervisor/import.sh: -------------------------------------------------------------------------------- 1 | # Hypervisor can be imported by specifying the GUID 2 | terraform import citrix_remote_pc_wake_on_lan_hypervisor.example_remote_pc_wake_on_lan_hypervisor 00000000-0000-0000-0000-000000000000 3 | -------------------------------------------------------------------------------- /internal/examples/resources/citrix_remote_pc_wake_on_lan_hypervisor/resource.tf: -------------------------------------------------------------------------------- 1 | # Remote PC Wake on LAN Hypervisor 2 | resource "citrix_remote_pc_wake_on_lan_hypervisor" "example-remotepc-wakeonlan-hypervisor" { 3 | name = "example-remotepc-wakeonlan-hypervisor" 4 | zone = "" 5 | } 6 | -------------------------------------------------------------------------------- /internal/examples/resources/citrix_scvmm_hypervisor/import.sh: -------------------------------------------------------------------------------- 1 | # SCVMM Hypervisor can be imported by specifying the GUID 2 | terraform import citrix_scvmm_hypervisor.example-scvmm-hypervisor b2338edf-281b-436e-9c3a-54c546c3526e -------------------------------------------------------------------------------- /internal/examples/resources/citrix_scvmm_hypervisor/resource.tf: -------------------------------------------------------------------------------- 1 | # SCVMM Hypervisor 2 | resource "citrix_scvmm_hypervisor" "example-scvmm-hypervisor" { 3 | name = "example-scvmm-hypervisor" 4 | zone = "" 5 | username = "" 6 | password = "" 7 | password_format = "Plaintext" 8 | addresses = ["scvmm.example.com"] 9 | max_absolute_active_actions = 50 10 | } -------------------------------------------------------------------------------- /internal/examples/resources/citrix_scvmm_hypervisor_resource_pool/import.sh: -------------------------------------------------------------------------------- 1 | # Hypervisor Resource Pool can be imported with the format HypervisorId,HypervisorResourcePoolId 2 | terraform import citrix_scvmm_hypervisor_resource_pool.example-scvmm-hypervisor-resource-pool b2338edf-281b-436e-9c3a-54c546c3526e,ce571dd9-1a46-4b85-891c-484423322c53 3 | 4 | # Hypervisor Resource Pool can be imported by specifying the GUID 5 | terraform import citrix_scvmm_hypervisor_resource_pool.example-scvmm-hypervisor-resource-pool ce571dd9-1a46-4b85-891c-484423322c53 -------------------------------------------------------------------------------- /internal/examples/resources/citrix_scvmm_hypervisor_resource_pool/resource.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_scvmm_hypervisor_resource_pool" "example-scvmm-hypervisor-resource-pool" { 2 | name = "example-scvmm-hypervisor-resource-pool" 3 | hypervisor = citrix_scvmm_hypervisor.example-scvmm-hypervisor.id 4 | host = "" 5 | networks = [ 6 | "", 7 | "" 8 | ] 9 | storage = [ 10 | { 11 | storage_name = "" 12 | superseded = false # Only to be used for updates 13 | } 14 | ] 15 | temporary_storage = [ 16 | { 17 | storage_name = "" 18 | superseded = false # Only to be used for updates 19 | } 20 | ] 21 | use_local_storage_caching = false 22 | } -------------------------------------------------------------------------------- /internal/examples/resources/citrix_service_account/import.sh: -------------------------------------------------------------------------------- 1 | # Service account can be imported by specifying the ID 2 | terraform import citrix_service_account ce571dd9-1a46-4b85-891c-484423322c53 -------------------------------------------------------------------------------- /internal/examples/resources/citrix_service_account/resource.tf: -------------------------------------------------------------------------------- 1 | resource citrix_service_account "example-azuread-service-account" { 2 | display_name = "example-azuread-service-account" 3 | description = "created with terraform" 4 | identity_provider_type = "AzureAD" 5 | identity_provider_identifier = "" 6 | account_id = "" 7 | account_secret = "" 8 | account_secret_format = "PlainText" 9 | enable_intune_enrolled_device_management = true 10 | secret_expiry_time = "2099-12-31" 11 | } 12 | 13 | resource citrix_service_account "example-ad-service-account" { 14 | display_name = "example-ad-service-account" 15 | description = "created with terraform" 16 | identity_provider_type = "ActiveDirectory" 17 | identity_provider_identifier = "domain.com" # Domain name 18 | account_id = "domain\\admin" # Admin user name 19 | account_secret = "admin-secret" # Admin password 20 | account_secret_format = "PlainText" 21 | } -------------------------------------------------------------------------------- /internal/examples/resources/citrix_site_backup_schedule/import.sh: -------------------------------------------------------------------------------- 1 | terraform import citrix_site_backup_schedule.example-backup-schedule 1 -------------------------------------------------------------------------------- /internal/examples/resources/citrix_site_backup_schedule/resource.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_site_backup_schedule" "example_backup_schedule" { 2 | name = "ExampleBackupSchedule" 3 | start_time = "09:00:00" 4 | } -------------------------------------------------------------------------------- /internal/examples/resources/citrix_site_settings/resource.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_site_settings" "example" { 2 | web_ui_policy_set_enabled = false 3 | dns_resolution_enabled = false 4 | multiple_remote_pc_assignments = true 5 | trust_requests_sent_to_the_xml_service_port_enabled = false 6 | } 7 | -------------------------------------------------------------------------------- /internal/examples/resources/citrix_stf_authentication_service/import.sh: -------------------------------------------------------------------------------- 1 | # StoreFront Authentication Service can be imported with the IIS Site Id and Virtual Path 2 | terraform import citrix_stf_deployment.example-stf-deployment 1,"/Citrix/Auth" 3 | -------------------------------------------------------------------------------- /internal/examples/resources/citrix_stf_authentication_service/resource.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_stf_authentication_service" "example-stf-authentication-service" { 2 | site_id = citrix_stf_deployment.example-stf-deployment.site_id 3 | friendly_name = "Example STF Authentication Service" 4 | virtual_path = "/Citrix/Authentication" 5 | claims_factory_name = "ExampleClaimsFactoryName" 6 | 7 | // Add depends_on attribute to ensure the StoreFront Authentication Service is created after the Deployment 8 | depends_on = [ citrix_stf_deployment.example-stf-deployment ] 9 | } -------------------------------------------------------------------------------- /internal/examples/resources/citrix_stf_deployment/import.sh: -------------------------------------------------------------------------------- 1 | # StoreFront Deployment can be imported with the IIS Site ID 2 | terraform import citrix_stf_deployment.example-stf-deployment "1" -------------------------------------------------------------------------------- /internal/examples/resources/citrix_stf_deployment/resource.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_stf_deployment" "example-stf-deployment" { 2 | site_id = "1" 3 | host_base_url = "https://" 4 | roaming_gateway = [ 5 | { 6 | name = "Example Roaming Gateway Name" 7 | logon_type = "None" 8 | gateway_url = "https://example.gateway.url/" 9 | subnet_ip_address = "10.0.0.1" 10 | } 11 | ] 12 | roaming_beacon = { 13 | internal_address = "https://example.internalip.url/" 14 | external_addresses = ["https://example.externalip.url/"] 15 | } 16 | } -------------------------------------------------------------------------------- /internal/examples/resources/citrix_stf_store_service/import.sh: -------------------------------------------------------------------------------- 1 | # StoreFront Store Service can be imported with the IIS Site Id and Virtual Path 2 | terraform import citrix_stf_store_service.example-stf-store-service 1,"/Citrix/Store" -------------------------------------------------------------------------------- /internal/examples/resources/citrix_stf_user_farm_mapping/import.sh: -------------------------------------------------------------------------------- 1 | # StoreFront UserFarmMapping can be imported with the Store Virtual Path and UserFarmMapping Name 2 | terraform import citrix_stf_user_farm_mapping.example-stf-user-farm-mapping "/Citrix/Store","Example UserFarmMapping" 3 | -------------------------------------------------------------------------------- /internal/examples/resources/citrix_stf_user_farm_mapping/resource.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_stf_user_farm_mapping" "example-stf-user-farm-mapping" { 2 | name = "Example STFUserFarmMapping" 3 | store_virtual_path = citrix_stf_store_service.example-stf-store-service.virtual_path 4 | group_members = [ 5 | { 6 | group_name = "TestGroup1" 7 | account_sid = "{First Account Sid}" 8 | }, 9 | { 10 | group_name = "TestGroup2" 11 | account_sid = "{Second Account Sid}" 12 | } 13 | ] 14 | equivalent_farm_sets = [ 15 | { 16 | name = "EU1", 17 | aggregation_group_name = "EU1Users" 18 | primary_farms = [citrix_stf_store_service.example-stf-store-service.farms.0.farm_name] 19 | backup_farms = [citrix_stf_store_service.example-stf-store-service.farms.1.farm_name] 20 | load_balance_mode = "LoadBalanced" 21 | farms_are_identical = true 22 | }, 23 | { 24 | name = "EU2", 25 | aggregation_group_name = "EU2Users" 26 | primary_farms = [citrix_stf_store_service.example-stf-store-service.farms.1.farm_name] 27 | load_balance_mode = "Failover" 28 | farms_are_identical = false 29 | } 30 | ] 31 | 32 | 33 | } 34 | -------------------------------------------------------------------------------- /internal/examples/resources/citrix_stf_webreceiver_service/import.sh: -------------------------------------------------------------------------------- 1 | # StoreFront Webreceiver Service can be imported with the IIS Virtual Path 2 | terraform import citrix_stf_webreceiver_service.example-stf-webreceiver-service 1,"/Citrix/StoreWeb" -------------------------------------------------------------------------------- /internal/examples/resources/citrix_stf_xenapp_default_store/import.sh: -------------------------------------------------------------------------------- 1 | # StoreFront Default Store can be imported with the Store SiteId and Service path 2 | terraform import citrix_stf_xenapp_default_store.example-stf-xenapp-default-store 1,"/Citrix/Store" -------------------------------------------------------------------------------- /internal/examples/resources/citrix_stf_xenapp_default_store/resource.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_stf_xenapp_default_store" "example-stf-xenapp-default-store" { 2 | store_virtual_path = citrix_stf_store_service.example-stf-store-service.virtual_path 3 | store_site_id = citrix_stf_store_service.example-stf-store-service.site_id 4 | } 5 | 6 | -------------------------------------------------------------------------------- /internal/examples/resources/citrix_storefront_server/import.sh: -------------------------------------------------------------------------------- 1 | # StoreFront Server can be imported by specifying the GUID 2 | terraform import citrix_storefront_server.example-storefront-server f60476fd-360d-4d35-861d-da8404652b166 -------------------------------------------------------------------------------- /internal/examples/resources/citrix_storefront_server/resource.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_storefront_server" "example-storefront_server" { 2 | name = "example-storefront-server" 3 | description = "StoreFront server example" 4 | url = "https://storefront.example.com/citrix/store" 5 | enabled = true 6 | } -------------------------------------------------------------------------------- /internal/examples/resources/citrix_tag/import.sh: -------------------------------------------------------------------------------- 1 | # Tag can be imported by specifying the GUID 2 | terraform import citrix_tag.example_tag 00000000-0000-0000-0000-000000000000 3 | -------------------------------------------------------------------------------- /internal/examples/resources/citrix_tag/resource.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_tag" "example_tag" { 2 | name = "TagName" 3 | description = "Example description of the tag" 4 | scopes = [ 5 | citrix_admin_scope.example_admin_scope.id 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /internal/examples/resources/citrix_tag_policy_filter/import.sh: -------------------------------------------------------------------------------- 1 | # Tag Policy Filter can be imported by specifying the Policy Filter GUID 2 | terraform import citrix_tag_policy_filter.example_tag_policy_filter 00000000-0000-0000-0000-000000000000 -------------------------------------------------------------------------------- /internal/examples/resources/citrix_tag_policy_filter/resource.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_tag_policy_filter" "example_tag_policy_filter" { 2 | policy_id = citrix_policy.example_policy.id 3 | enabled = true 4 | allowed = true 5 | tag = "{ID of the tag to be filtered}" 6 | } -------------------------------------------------------------------------------- /internal/examples/resources/citrix_user_policy_filter/import.sh: -------------------------------------------------------------------------------- 1 | # User Policy Filter can be imported by specifying the Policy Filter GUID 2 | terraform import citrix_user_policy_filter.example_user_policy_filter 00000000-0000-0000-0000-000000000000 -------------------------------------------------------------------------------- /internal/examples/resources/citrix_user_policy_filter/resource.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_user_policy_filter" "example_user_policy_filter" { 2 | policy_id = citrix_policy.example_policy.id 3 | enabled = true 4 | allowed = true 5 | sid = "{SID of the user or user group to be filtered}" 6 | } -------------------------------------------------------------------------------- /internal/examples/resources/citrix_vsphere_hypervisor/import.sh: -------------------------------------------------------------------------------- 1 | # vSphere Hypervisor can be imported by specifying the GUID 2 | terraform import citrix_vsphere_hypervisor.example-vsphere-hypervisor b2339edf-7b00-436e-9c3a-54c987c3526e -------------------------------------------------------------------------------- /internal/examples/resources/citrix_vsphere_hypervisor/resource.tf: -------------------------------------------------------------------------------- 1 | # vSphere Hypervisor 2 | resource "citrix_vsphere_hypervisor" "example-vsphere-hypervisor" { 3 | name = "example-vsphere-hypervisor" 4 | zone = "" 5 | username = "" 6 | password = "" 7 | password_format = "Plaintext" 8 | addresses = ["https://10.36.122.45"] 9 | max_absolute_active_actions = 20 10 | } -------------------------------------------------------------------------------- /internal/examples/resources/citrix_vsphere_hypervisor_resource_pool/import.sh: -------------------------------------------------------------------------------- 1 | # Hypervisor Resource Pool can be imported with the format HypervisorId,HypervisorResourcePoolId 2 | terraform import citrix_vsphere_hypervisor_resource_pool.example-vsphere-hypervisor-resource-pool sbf0dc45-5c42-45a0-a15d-a3df4ff5da8c,ce571dd9-1a46-4b85-891c-484423322c53 3 | 4 | # Hypervisor Resource Pool can be imported by specifying the GUID 5 | terraform import citrix_vsphere_hypervisor_resource_pool.example-vsphere-hypervisor-resource-pool ce571dd9-1a46-4b85-891c-484423322c53 -------------------------------------------------------------------------------- /internal/examples/resources/citrix_vsphere_hypervisor_resource_pool/resource.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_vsphere_hypervisor_resource_pool" "example-vsphere-hypervisor-resource-pool" { 2 | name = "example-vsphere-hypervisor-resource-pool" 3 | hypervisor = citrix_vsphere_hypervisor.example-vsphere-hypervisor.id 4 | cluster = { 5 | datacenter = "" 6 | cluster_name = "" 7 | # host = "" // Use one of host or cluster 8 | } 9 | networks = [ 10 | "", 11 | "" 12 | ] 13 | storage = [ 14 | { 15 | storage_name = "" 16 | superseded = false # Only to be used for updates 17 | } 18 | ] 19 | temporary_storage = [ 20 | { 21 | storage_name = "" 22 | superseded = false # Only to be used for updates 23 | } 24 | ] 25 | use_local_storage_caching = false 26 | } -------------------------------------------------------------------------------- /internal/examples/resources/citrix_wem_configuration_set/import.sh: -------------------------------------------------------------------------------- 1 | # WEM Configuration Set can be imported by specifying the ID 2 | terraform import citrix_wem_configuration_set.example-config-set 1234 3 | -------------------------------------------------------------------------------- /internal/examples/resources/citrix_wem_configuration_set/resource.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_wem_configuration_set" "example-config-set"{ 2 | name = "example config set" 3 | description = "example WEM configuration set" 4 | } 5 | -------------------------------------------------------------------------------- /internal/examples/resources/citrix_wem_directory_object/import.sh: -------------------------------------------------------------------------------- 1 | # WEM Directory Object can be imported by specifying the ID 2 | terraform import citrix_wem_directory_object.example-directory-object 1234 3 | -------------------------------------------------------------------------------- /internal/examples/resources/citrix_wem_directory_object/resource.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_wem_directory_object" "example-directory-object" { 2 | configuration_set_id = citrix_wem_configuration_set.example-config-set.id 3 | machine_catalog_id = citrix_machine_catalog.example-machine-catalog.id 4 | enabled = true 5 | } 6 | -------------------------------------------------------------------------------- /internal/examples/resources/citrix_xenserver_hypervisor/import.sh: -------------------------------------------------------------------------------- 1 | # Hypervisor can be imported by specifying the GUID 2 | terraform import citrix_xenserver_hypervisor.example-xenserver-hypervisor b2339edf-7b00-436e-9c3a-54c987c3526e -------------------------------------------------------------------------------- /internal/examples/resources/citrix_xenserver_hypervisor/resource.tf: -------------------------------------------------------------------------------- 1 | # XenServer Hypervisor 2 | resource "citrix_xenserver_hypervisor" "example-xenserver-hypervisor" { 3 | name = "example-xenserver-hypervisor" 4 | zone = "" 5 | username = "" 6 | password = "" 7 | password_format = "PlainText" 8 | addresses = [ 9 | "http://" 10 | ] 11 | ssl_thumbprints = [ 12 | "" 13 | ] 14 | } -------------------------------------------------------------------------------- /internal/examples/resources/citrix_xenserver_hypervisor_resource_pool/import.sh: -------------------------------------------------------------------------------- 1 | # Hypervisor Resource Pool can be imported with the format HypervisorId,HypervisorResourcePoolId 2 | terraform import citrix_xenserver_hypervisor_resource_pool.example-xenserver-hypervisor-resource-pool sbf0dc45-5c42-45a0-a15d-a3df4ff5da8c,ce571dd9-1a46-4b85-891c-484423322c53 3 | 4 | # Hypervisor Resource Pool can be imported by specifying the GUID 5 | terraform import citrix_xenserver_hypervisor_resource_pool.example-xenserver-hypervisor-resource-pool ce571dd9-1a46-4b85-891c-484423322c53 -------------------------------------------------------------------------------- /internal/examples/resources/citrix_xenserver_hypervisor_resource_pool/resource.tf: -------------------------------------------------------------------------------- 1 | resource "citrix_xenserver_hypervisor_resource_pool" "example-xenserver-hypervisor-resource-pool" { 2 | name = "example-xenserver-hypervisor-resource-pool" 3 | hypervisor = citrix_xenserver_hypervisor.example-xenserver-hypervisor.id 4 | networks = [ 5 | "", 6 | "" 7 | ] 8 | storage = [ 9 | { 10 | storage_name = "" 11 | superseded = false # Only to be used for updates 12 | } 13 | ] 14 | temporary_storage = [ 15 | { 16 | storage_name = "" 17 | superseded = false # Only to be used for updates 18 | } 19 | ] 20 | use_local_storage_caching = false 21 | } -------------------------------------------------------------------------------- /internal/examples/resources/citrix_zone/import.sh: -------------------------------------------------------------------------------- 1 | # Zone can be imported by specifying the GUID 2 | terraform import citrix_zone.example-zone 06e5981e-dbaf-48db-b134-245fca2dc672 -------------------------------------------------------------------------------- /internal/examples/resources/citrix_zone/resource.tf: -------------------------------------------------------------------------------- 1 | # Example for On-Premises Zone 2 | resource "citrix_zone" "example-onpremises-zone" { 3 | name = "example-zone" 4 | description = "zone example" 5 | metadata = [ 6 | { 7 | name = "key1" 8 | value = "value1" 9 | } 10 | ] 11 | } 12 | 13 | # Example for Cloud Zone 14 | resource "citrix_cloud_resource_location" "example-resource-location" { 15 | name = "example-resource-location" 16 | } 17 | 18 | resource "citrix_zone" "example-cloud-zone" { 19 | resource_location_id = citrix_cloud_resource_location.example-resource-location.id 20 | } -------------------------------------------------------------------------------- /internal/test/admin_permissions_data_source_test.go: -------------------------------------------------------------------------------- 1 | // Copyright © 2024. Citrix Systems, Inc. 2 | package test 3 | 4 | import ( 5 | "fmt" 6 | "testing" 7 | 8 | "github.com/hashicorp/terraform-plugin-testing/helper/resource" 9 | ) 10 | 11 | func TestAdminPermissionsDataSource(t *testing.T) { 12 | resource.Test(t, resource.TestCase{ 13 | ProtoV6ProviderFactories: testAccProtoV6ProviderFactories, 14 | PreCheck: func() { 15 | TestProviderPreCheck(t) 16 | }, 17 | Steps: []resource.TestStep{ 18 | // Read testing 19 | { 20 | Config: BuildAdminPermissionsDataSource(t), 21 | Check: resource.ComposeAggregateTestCheckFunc( 22 | resource.TestCheckResourceAttrWith("data.citrix_admin_permissions.test_all_permissions", "permissions.#", func(val string) error { 23 | if val == "0" { 24 | return fmt.Errorf("expected at least one permission") 25 | } 26 | return nil 27 | }), 28 | ), 29 | }, 30 | }, 31 | }) 32 | } 33 | 34 | func BuildAdminPermissionsDataSource(t *testing.T) string { 35 | return adminPermissionsTestDataSource 36 | } 37 | 38 | var ( 39 | adminPermissionsTestDataSource = ` 40 | data "citrix_admin_permissions" "test_all_permissions" { } 41 | ` 42 | ) 43 | -------------------------------------------------------------------------------- /internal/test/aws_workspaces_cloudformation_template_test.go: -------------------------------------------------------------------------------- 1 | // Copyright © 2024. Citrix Systems, Inc. 2 | package test 3 | 4 | import ( 5 | "testing" 6 | 7 | "github.com/hashicorp/terraform-plugin-testing/helper/resource" 8 | ) 9 | 10 | func TestAWSWorkspacesCloudFormationTemplateDataSource(t *testing.T) { 11 | resource.Test(t, resource.TestCase{ 12 | ProtoV6ProviderFactories: testAccProtoV6ProviderFactories, 13 | PreCheck: func() { 14 | TestProviderPreCheck(t) 15 | }, 16 | Steps: []resource.TestStep{ 17 | // Read testing 18 | { 19 | Config: BuildAWSWorkspacesCloudFormationTemplateDataSource(t), 20 | Check: resource.ComposeAggregateTestCheckFunc( 21 | resource.TestCheckResourceAttrSet("data.citrix_quickcreate_aws_workspaces_cloudformation_template.test_cloudformation_template", "content"), 22 | ), 23 | }, 24 | }, 25 | }) 26 | } 27 | 28 | func BuildAWSWorkspacesCloudFormationTemplateDataSource(t *testing.T) string { 29 | return cloudFormationTemplateTestDataSource 30 | } 31 | 32 | var ( 33 | cloudFormationTemplateTestDataSource = ` 34 | data "citrix_quickcreate_aws_workspaces_cloudformation_template" "test_cloudformation_template" { } 35 | ` 36 | ) 37 | -------------------------------------------------------------------------------- /internal/test/bearer_token_data_source_test.go: -------------------------------------------------------------------------------- 1 | // Copyright © 2024. Citrix Systems, Inc. 2 | package test 3 | 4 | import ( 5 | "testing" 6 | 7 | "github.com/hashicorp/terraform-plugin-testing/helper/resource" 8 | ) 9 | 10 | func TestBearerTokenDataSource(t *testing.T) { 11 | resource.Test(t, resource.TestCase{ 12 | ProtoV6ProviderFactories: testAccProtoV6ProviderFactories, 13 | PreCheck: func() { 14 | TestProviderPreCheck(t) 15 | }, 16 | Steps: []resource.TestStep{ 17 | // Read testing 18 | { 19 | Config: BuildBearerTokenDataSource(t), 20 | Check: resource.ComposeAggregateTestCheckFunc( 21 | resource.TestCheckResourceAttrSet("data.citrix_bearer_token.test_bearer_token", "bearer_token"), 22 | ), 23 | }, 24 | }, 25 | }) 26 | } 27 | 28 | func BuildBearerTokenDataSource(t *testing.T) string { 29 | return bearer_token_test_data_source 30 | } 31 | 32 | var ( 33 | bearer_token_test_data_source = ` 34 | data "citrix_bearer_token" "test_bearer_token" { } 35 | ` 36 | ) 37 | -------------------------------------------------------------------------------- /internal/test/common.go: -------------------------------------------------------------------------------- 1 | // Copyright © 2024. Citrix Systems, Inc. 2 | 3 | package test 4 | 5 | import ( 6 | "os" 7 | "testing" 8 | ) 9 | 10 | // Used to skip a test case if environment is cloud 11 | func skipForCloud(isOnPremises bool) func() (bool, error) { 12 | return func() (bool, error) { 13 | if isOnPremises { 14 | return false, nil 15 | } 16 | 17 | return true, nil 18 | } 19 | } 20 | 21 | // Used to skip a test case if environment is cloud 22 | func skipForOnPrem(isOnPremises bool) func() (bool, error) { 23 | return func() (bool, error) { 24 | if isOnPremises { 25 | return true, nil 26 | } 27 | 28 | return false, nil 29 | } 30 | } 31 | 32 | // Used to skip a test case if go test is running in GitHub Actions 33 | func skipForGitHubAction(isGitHubAction bool) func() (bool, error) { 34 | return func() (bool, error) { 35 | if isGitHubAction { 36 | return true, nil 37 | } 38 | 39 | return false, nil 40 | } 41 | } 42 | 43 | // Used to aggregate arbitrary number of terraform resource blocks 44 | func composeTestResourceTf(resources ...string) string { 45 | var result = "" 46 | for _, resource := range resources { 47 | result += resource 48 | } 49 | return result 50 | } 51 | 52 | func checkTestEnvironmentVariables(t *testing.T, envVarNames []string) { 53 | for _, v := range envVarNames { 54 | if os.Getenv(v) == "" { 55 | t.Fatalf("%s must be set for acceptance tests", v) 56 | } 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /internal/util/policy_common.go: -------------------------------------------------------------------------------- 1 | // Copyright © 2024. Citrix Systems, Inc. 2 | 3 | package util 4 | 5 | type PolicyFilterUuidDataClientModel struct { 6 | Server string `json:"server,omitempty"` 7 | Uuid string `json:"uuid,omitempty"` 8 | } 9 | 10 | type PolicyFilterGatewayDataClientModel struct { 11 | Connection string `json:"Connection,omitempty"` 12 | Condition string `json:"Condition,omitempty"` 13 | Gateway string `json:"Gateway,omitempty"` 14 | } 15 | -------------------------------------------------------------------------------- /main.go: -------------------------------------------------------------------------------- 1 | // Copyright © 2024. Citrix Systems, Inc. 2 | 3 | package main 4 | 5 | import ( 6 | "context" 7 | "flag" 8 | "log" 9 | 10 | "github.com/citrix/terraform-provider-citrix/internal/provider" 11 | "github.com/hashicorp/terraform-plugin-framework/providerserver" 12 | ) 13 | 14 | // Provider documentation generation. 15 | //go:generate go run github.com/hashicorp/terraform-plugin-docs/cmd/tfplugindocs generate --provider-name citrix --examples-dir internal/examples 16 | 17 | var ( 18 | // these will be set by the goreleaser configuration 19 | // to appropriate values for the compiled binary. 20 | version string = "dev" 21 | 22 | // goreleaser can pass other information to the main package, such as the specific commit 23 | // https://goreleaser.com/cookbooks/using-main.version/ 24 | ) 25 | 26 | func main() { 27 | var debug bool 28 | 29 | flag.BoolVar(&debug, "debug", false, "set to true to run the provider with support for debuggers like delve") 30 | flag.Parse() 31 | 32 | err := providerserver.Serve(context.Background(), provider.New(version), providerserver.ServeOpts{ 33 | Address: "registry.terraform.io/citrix/citrix", 34 | Debug: debug, 35 | }) 36 | 37 | if err != nil { 38 | log.Fatal(err.Error()) 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /scripts/config-drift-notifier/README.md: -------------------------------------------------------------------------------- 1 | # Citrix Provider Config Drift Notification 2 | 3 | This script is designed to notify the customer the configuration drift, which occurs when the real-world state of your infrastructure differs from the state defined in your configuration. 4 | Please note that this onboarding script is a template for slack notification only. 5 | 6 | ## Environment Requirements 7 | 8 | - PowerShell version `5.0` or higher 9 | - Citrix Provider version `0.3.6` or higher 10 | 11 | ## Getting Started 12 | 13 | 1. Copy the `config-drift.ps1` script under `/config-drift-notifier` to the directory where the Citrix Terraform provider is located. 14 | 2. Test the script with the following command: 15 | ```powershell 16 | .\config-drift.ps1 -SlackWebhookUrl {SlackWebhookUrl} 17 | 3. An optional parameter FilterList is provided to notify the user about only the resources in the list. An example can be `-FilterList "citrix_machine_catalog.machine_catalog_0"` or just `-FilterList "citrix_machine_catalog"` 18 | -------------------------------------------------------------------------------- /scripts/onboarding-helper/images/Onboarding Automation Workflow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/citrix/terraform-provider-citrix/c1fbbfba7fa250b5f8b922d44adfd5aa39963c34/scripts/onboarding-helper/images/Onboarding Automation Workflow.png -------------------------------------------------------------------------------- /scripts/onboarding-helper/terraform.tf: -------------------------------------------------------------------------------- 1 | terraform { 2 | required_version = ">= 1.4.0" 3 | 4 | required_providers { 5 | citrix = { 6 | source = "citrix/citrix" 7 | version = "=1.0.18" 8 | } 9 | } 10 | 11 | backend "local" {} 12 | } 13 | -------------------------------------------------------------------------------- /scripts/storefront-onboarding-helper/terraform.tf: -------------------------------------------------------------------------------- 1 | terraform { 2 | required_version = ">= 1.4.0" 3 | 4 | required_providers { 5 | citrix = { 6 | source = "citrix/citrix" 7 | version = ">=0.6.3" 8 | } 9 | } 10 | 11 | backend "local" {} 12 | } 13 | -------------------------------------------------------------------------------- /templates/data-sources.md.tmpl: -------------------------------------------------------------------------------- 1 | --- 2 | # generated by https://github.com/hashicorp/terraform-plugin-docs 3 | page_title: "{{.Name}} {{.Type}} - {{.ProviderName}}" 4 | {{ if gt (len (split .Description " --- ")) 1 -}} 5 | subcategory: "{{ index (split .Description " --- ") 0 }}" 6 | {{- else -}} 7 | subcategory: "" 8 | {{- end }} 9 | description: |- 10 | {{ if gt (len (split .Description " --- ")) 1 -}} 11 | {{ index (split .Description " --- ") 1 | plainmarkdown | trimspace | prefixlines " " }} 12 | {{- else -}} 13 | {{ .Description | plainmarkdown | trimspace | prefixlines " " }} 14 | {{- end }} 15 | --- 16 | 17 | # {{.Name}} ({{.Type}}) 18 | 19 | {{ if gt (len (split .Description " --- ")) 1 -}} 20 | {{ index (split .Description " --- ") 1 | trimspace }} 21 | {{ else }} 22 | {{ .Description | trimspace }} 23 | {{- end }} 24 | {{ if .HasExample -}} 25 | ## Example Usage 26 | 27 | {{ tffile (printf "%s%s%s" "internal/examples/data-sources/" .Name "/data-source.tf") }} 28 | {{- end }} 29 | 30 | {{ .SchemaMarkdown | trimspace }} 31 | {{- if .HasImport }} 32 | 33 | ## Import 34 | 35 | Import is supported using the following syntax: 36 | 37 | {{ codefile "shell" (printf "%s%s%s" "internal/examples/data-sources/" .Name "/import.sh") }} 38 | {{- end }} -------------------------------------------------------------------------------- /templates/resources.md.tmpl: -------------------------------------------------------------------------------- 1 | --- 2 | # generated by https://github.com/hashicorp/terraform-plugin-docs 3 | page_title: "{{.Name}} {{.Type}} - {{.ProviderName}}" 4 | {{ if gt (len (split .Description " --- ")) 1 -}} 5 | subcategory: "{{ index (split .Description " --- ") 0 }}" 6 | {{- else -}} 7 | subcategory: "" 8 | {{- end }} 9 | description: |- 10 | {{ if gt (len (split .Description " --- ")) 1 -}} 11 | {{ index (split .Description " --- ") 1 | plainmarkdown | trimspace | prefixlines " " }} 12 | {{- else -}} 13 | {{ .Description | plainmarkdown | trimspace | prefixlines " " }} 14 | {{- end }} 15 | --- 16 | 17 | # {{.Name}} ({{.Type}}) 18 | 19 | {{ if gt (len (split .Description " --- ")) 1 -}} 20 | {{ index (split .Description " --- ") 1 | trimspace }} 21 | {{ else }} 22 | {{ .Description | trimspace }} 23 | {{- end }} 24 | {{ if .HasExample -}} 25 | ## Example Usage 26 | 27 | {{ tffile (printf "%s%s%s" "internal/examples/resources/" .Name "/resource.tf") }} 28 | {{- end }} 29 | 30 | {{ .SchemaMarkdown | trimspace }} 31 | {{- if .HasImport }} 32 | 33 | ## Import 34 | 35 | Import is supported using the following syntax: 36 | 37 | {{ codefile "shell" (printf "%s%s%s" "internal/examples/resources/" .Name "/import.sh") }} 38 | {{- end }} -------------------------------------------------------------------------------- /templates/resources/application_icon.md.tmpl: -------------------------------------------------------------------------------- 1 | --- 2 | # generated by https://github.com/hashicorp/terraform-plugin-docs 3 | page_title: "{{.Name}} {{.Type}} - {{.ProviderName}}" 4 | {{ if gt (len (split .Description " --- ")) 1 -}} 5 | subcategory: "{{ index (split .Description " --- ") 0 }}" 6 | {{- else -}} 7 | subcategory: "" 8 | {{- end }} 9 | description: |- 10 | {{ if gt (len (split .Description " --- ")) 1 -}} 11 | {{ index (split .Description " --- ") 1 | plainmarkdown | trimspace | prefixlines " " }} 12 | {{- else -}} 13 | {{ .Description | plainmarkdown | trimspace | prefixlines " " }} 14 | {{- end }} 15 | --- 16 | 17 | # {{.Name}} ({{.Type}}) 18 | 19 | {{ if gt (len (split .Description " --- ")) 1 -}} 20 | {{ index (split .Description " --- ") 1 | trimspace }} 21 | {{ else }} 22 | {{ .Description | trimspace }} 23 | {{- end }} 24 | {{ if .HasExample -}} 25 | 26 | ## Example Usage 27 | 28 | {{ tffile (printf "%s%s%s" "internal/examples/resources/" .Name "/resource.tf") }} 29 | {{- end }} 30 | 31 | {{ .SchemaMarkdown | trimspace }} 32 | {{- if .HasImport }} 33 | 34 | ## Import 35 | 36 | Import is supported using the following syntax: 37 | 38 | {{ codefile "shell" (printf "%s%s%s" "internal/examples/resources/" .Name "/import.sh") }} 39 | {{- end }} 40 | 41 | ## Generating Raw Data of an icon 42 | To generate in Linux/Mac terminal use the command: 43 | ``` 44 | base64 fileName.ico 45 | ``` 46 | To generate in Powershell: 47 | ``` 48 | [System.Convert]::ToBase64String(Get-Content fileName.ico -Encoding Byte) 49 | ``` -------------------------------------------------------------------------------- /templates/resources/desktop_icon.md.tmpl: -------------------------------------------------------------------------------- 1 | --- 2 | # generated by https://github.com/hashicorp/terraform-plugin-docs 3 | page_title: "{{.Name}} {{.Type}} - {{.ProviderName}}" 4 | {{ if gt (len (split .Description " --- ")) 1 -}} 5 | subcategory: "{{ index (split .Description " --- ") 0 }}" 6 | {{- else -}} 7 | subcategory: "" 8 | {{- end }} 9 | description: |- 10 | {{ if gt (len (split .Description " --- ")) 1 -}} 11 | {{ index (split .Description " --- ") 1 | plainmarkdown | trimspace | prefixlines " " }} 12 | {{- else -}} 13 | {{ .Description | plainmarkdown | trimspace | prefixlines " " }} 14 | {{- end }} 15 | --- 16 | 17 | # {{.Name}} ({{.Type}}) 18 | 19 | {{ if gt (len (split .Description " --- ")) 1 -}} 20 | {{ index (split .Description " --- ") 1 | trimspace }} 21 | {{ else }} 22 | {{ .Description | trimspace }} 23 | {{- end }} 24 | {{ if .HasExample -}} 25 | 26 | ## Example Usage 27 | 28 | {{ tffile (printf "%s%s%s" "internal/examples/resources/" .Name "/resource.tf") }} 29 | {{- end }} 30 | 31 | {{ .SchemaMarkdown | trimspace }} 32 | {{- if .HasImport }} 33 | 34 | ## Import 35 | 36 | Import is supported using the following syntax: 37 | 38 | {{ codefile "shell" (printf "%s%s%s" "internal/examples/resources/" .Name "/import.sh") }} 39 | {{- end }} 40 | 41 | ## Generating Raw Data of an icon 42 | To generate in Linux/Mac terminal use the command: 43 | ``` 44 | base64 fileName.ico 45 | ``` 46 | To generate in Powershell: 47 | ``` 48 | [System.Convert]::ToBase64String(Get-Content fileName.ico -Encoding Byte) 49 | ``` -------------------------------------------------------------------------------- /terraform-registry-manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 1, 3 | "metadata": { 4 | "protocol_versions": ["6.0"] 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /tools/tools.go: -------------------------------------------------------------------------------- 1 | // Copyright © 2024. Citrix Systems, Inc. 2 | 3 | //go:build tools 4 | 5 | package tools 6 | 7 | import ( 8 | // Ensure documentation generator is not removed from go.mod. 9 | _ "github.com/hashicorp/terraform-plugin-docs/cmd/tfplugindocs" 10 | ) 11 | --------------------------------------------------------------------------------