{"id":29943227,"url":"https://github.com/sourcefuse/terraform-aws-arc-workspace","last_synced_at":"2025-08-10T04:05:43.314Z","repository":{"id":195905668,"uuid":"691112795","full_name":"sourcefuse/terraform-aws-arc-workspace","owner":"sourcefuse","description":"Repo for managing the Workspace Terraform Module.","archived":false,"fork":false,"pushed_at":"2024-07-15T17:20:38.000Z","size":4596,"stargazers_count":2,"open_issues_count":1,"forks_count":2,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-08-01T05:55:59.171Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sourcefuse.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-09-13T14:21:27.000Z","updated_at":"2024-08-21T07:50:39.000Z","dependencies_parsed_at":"2024-04-13T00:34:23.680Z","dependency_job_id":"e935cc4f-a136-4bfc-974b-6633cad00d03","html_url":"https://github.com/sourcefuse/terraform-aws-arc-workspace","commit_stats":null,"previous_names":["sourcefuse/arc-terraform-workspace","sourcefuse/terraform-aws-arc-workspace"],"tags_count":18,"template":false,"template_full_name":null,"purl":"pkg:github/sourcefuse/terraform-aws-arc-workspace","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcefuse%2Fterraform-aws-arc-workspace","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcefuse%2Fterraform-aws-arc-workspace/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcefuse%2Fterraform-aws-arc-workspace/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcefuse%2Fterraform-aws-arc-workspace/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sourcefuse","download_url":"https://codeload.github.com/sourcefuse/terraform-aws-arc-workspace/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sourcefuse%2Fterraform-aws-arc-workspace/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269673625,"owners_count":24457165,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-10T02:00:08.965Z","response_time":71,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-08-03T02:14:38.342Z","updated_at":"2025-08-10T04:05:43.302Z","avatar_url":"https://github.com/sourcefuse.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Module Structure](./static/banner.png)\n\n# [terraform-aws-arc-workspace](https://github.com/sourcefuse/terraform-aws-arc-workspace)\n\n\u003ca href=\"https://github.com/sourcefuse/terraform-aws-arc-workspace/releases/latest\"\u003e\u003cimg src=\"https://img.shields.io/github/release/sourcefuse/terraform-aws-arc-workspace.svg?style=for-the-badge\" alt=\"Latest Release\"/\u003e\u003c/a\u003e \u003ca href=\"https://github.com/sourcefuse/terraform-aws-arc-workspace/commits\"\u003e\u003cimg src=\"https://img.shields.io/github/last-commit/sourcefuse/terraform-aws-arc-workspace.svg?style=for-the-badge\" alt=\"Last Updated\"/\u003e\u003c/a\u003e ![Terraform](https://img.shields.io/badge/terraform-%235835CC.svg?style=for-the-badge\u0026logo=terraform\u0026logoColor=white) ![GitHub Actions](https://img.shields.io/badge/github%20actions-%232671E5.svg?style=for-the-badge\u0026logo=githubactions\u0026logoColor=white)\n\n[![Quality gate](https://sonarcloud.io/api/project_badges/quality_gate?project=sourcefuse_terraform-aws-arc-workspace)](https://sonarcloud.io/summary/new_code?id=sourcefuse_terraform-aws-arc-workspace)\n\n[![Known Vulnerabilities](https://github.com/sourcefuse/terraform-aws-arc-workspace/actions/workflows/snyk.yaml/badge.svg)](https://github.com/sourcefuse/terraform-aws-arc-workspace/actions/workflows/snyk.yaml)\n\n## Overview\n\nSourceFuse AWS Reference Architecture (ARC) Terraform module for managing Workspaces.\n\n## Usage\n\nTo see a Microsoft AD example, check out the [main.tf](https://github.com/sourcefuse/terraform-aws-arc-workspace/blob/main/examples/Microsoft-AD/main.tf) file in the example folder.  \n\n```hcl\nmodule \"microsoft-ad-workspace\" {\n  source                             = \"sourcefuse/arc-workspace/aws\"\n  version                            = \"1.0.9\"\n  region                             = var.region\n  vpc_id                             = data.aws_vpc.vpc.id\n  subnet_ids                         = data.aws_subnets.private.ids\n  directory_type                     = var.directory_type\n  directory_name                     = var.directory_name\n  directory_size                     = var.directory_size\n  self_service_permissions           = var.self_service_permissions\n  workspace_access_properties        = var.workspace_access_properties\n  workspace_creation_properties      = var.workspace_creation_properties\n  workspaces_service_access_arn      = data.aws_iam_policy.workspaces_service_access.arn\n  workspaces_self_service_access_arn = data.aws_iam_policy.workspaces_self_service_access.arn\n  user_names                         = var.user_names\n  workspace_properties               = var.workspace_properties\n  volume_encryption_key              = var.volume_encryption_key\n  ip_rules                           = var.ip_rules // change it according to your requirement\n  tags                               = module.tags.tags\n}\n```\n\nTo see a AD Connector example, check out the [main.tf](https://github.com/sourcefuse/terraform-aws-arc-workspace/blob/main/examples/AD-Connector/main.tf) file in the example folder.\n\n```hcl\nmodule \"ad-connector-workspace\" {\n  source                             = \"sourcefuse/arc-workspace/aws\"\n  version                            = \"1.0.9\"\n  region                             = var.region\n  vpc_id                             = data.aws_vpc.vpc.id\n  subnet_ids                         = data.aws_subnets.private.ids\n  directory_type                     = var.directory_type\n  directory_name                     = var.directory_name\n  directory_size                     = var.directory_size\n  self_service_permissions           = var.self_service_permissions\n  workspace_access_properties        = var.workspace_access_properties\n  workspace_creation_properties      = var.workspace_creation_properties\n  workspaces_service_access_arn      = data.aws_iam_policy.workspaces_service_access.arn\n  workspaces_self_service_access_arn = data.aws_iam_policy.workspaces_self_service_access.arn\n  user_names                         = var.user_names\n  customer_dns_ips                   = var.customer_dns_ips\n  customer_username                  = var.customer_username\n  workspace_properties               = var.workspace_properties\n  volume_encryption_key              = var.volume_encryption_key\n  ip_rules                           = var.ip_rules // change it according to your requirement\n  tags                               = module.tags.tags\n}\n```\nBoth Examples look similar but the difference between them is ```customer_dns_ips``` and ```customer_username``` which is required for ADConnector but not required for AWS Managed Microsoft-AD\n## IMPORTANT NOTE\n\nFor user_names attribute which is shown in example. There are two approaches you can follow\n1. If you want to create custom user_names so you have to first run terraform apply and then create custom user names in workspace manually and specify here that username and re-run tf apply so that workspace with custom-username gets created with appropriate configuration.\n\n2. By default you can specify Administrators , Admins here which are default in directory and that will create workspace\n\n3. if you specify custom user_names which can be any number make sure if you specify, lets say 5 custom user_names then terraform will create 5 workspaces for each user.\n\n4. custom user_names need to be created manually as mentioned in 1st point as there is no functionality in terraform to achieve this as of now.\n\n5. if you leave user_names attribute empty then no workspace will get created , only directory will get created and iam-roles etc.\n\n6. example to specify custom user_names\n```\nvariable \"user_names\" {\n  description = \"List of usernames to create workspaces for\"\n  type        = map(string)\n  default     = {\n     \"mayank.sharma\" = null\n     \"james.crowley\" = null\n     \"travis.saucier\" = null\n  }\n}\n```\nAs we specified three custom user_names that means three workspaces for each user will get created\n\n7. Last thing but not the least and this is very important that if you are trying to deploy in us-east-1 then below AZs are supported. When you are creating a virtual private cloud (VPC) for use with Amazon WorkSpaces, your VPC's subnets must reside in different Availability Zones in the Region where you're launching WorkSpaces. Availability Zones are distinct locations that are engineered to be isolated from failures in other Availability Zones. By launching instances in separate Availability Zones, you can protect your applications from the failure of a single location. Each subnet must reside entirely within one Availability Zone and cannot span zones. Here is the picture of supported Availability Zones For Workspaces.\n\n![availability zones](./static/az.png)\n\n\u003c!-- BEGINNING OF PRE-COMMIT-TERRAFORM DOCS HOOK --\u003e\n## Requirements\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"requirement_terraform\"\u003e\u003c/a\u003e [terraform](#requirement\\_terraform) | \u003e= 1.5, \u003c 2.0.0 |\n| \u003ca name=\"requirement_aws\"\u003e\u003c/a\u003e [aws](#requirement\\_aws) | \u003e= 4.0, \u003c 6.0 |\n| \u003ca name=\"requirement_random\"\u003e\u003c/a\u003e [random](#requirement\\_random) | ~\u003e 3.0 |\n\n## Providers\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"provider_aws\"\u003e\u003c/a\u003e [aws](#provider\\_aws) | 5.17.0 |\n| \u003ca name=\"provider_random\"\u003e\u003c/a\u003e [random](#provider\\_random) | 3.5.1 |\n\n## Modules\n\nNo modules.\n\n## Resources\n\n| Name | Type |\n|------|------|\n| [aws_directory_service_directory.ADConnector](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/directory_service_directory) | resource |\n| [aws_directory_service_directory.microsoftAD](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/directory_service_directory) | resource |\n| [aws_iam_role.workspaces_default](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role) | resource |\n| [aws_iam_role_policy_attachment.workspaces_default_self_service_access](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy_attachment) | resource |\n| [aws_iam_role_policy_attachment.workspaces_default_service_access](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy_attachment) | resource |\n| [aws_security_group.workspace](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/security_group) | resource |\n| [aws_ssm_parameter.ad_connector_password](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/ssm_parameter) | resource |\n| [aws_ssm_parameter.ad_password](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/ssm_parameter) | resource |\n| [aws_workspaces_directory.directory_ADConnector](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/workspaces_directory) | resource |\n| [aws_workspaces_directory.directory_microsoftAD](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/workspaces_directory) | resource |\n| [aws_workspaces_ip_group.nat](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/workspaces_ip_group) | resource |\n| [aws_workspaces_workspace.workspace](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/workspaces_workspace) | resource |\n| [random_password.ad_connector_password](https://registry.terraform.io/providers/hashicorp/random/latest/docs/resources/password) | resource |\n| [random_password.ad_password](https://registry.terraform.io/providers/hashicorp/random/latest/docs/resources/password) | resource |\n| [aws_iam_policy_document.workspaces](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_policy_document) | data source |\n| [aws_workspaces_bundle.bundle](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/workspaces_bundle) | data source |\n\n## Inputs\n\n| Name | Description | Type | Default | Required |\n|------|-------------|------|---------|:--------:|\n| \u003ca name=\"input_bundle_id\"\u003e\u003c/a\u003e [bundle\\_id](#input\\_bundle\\_id) | The ID of the bundle to use for the workspaces. | `string` | `null` | no |\n| \u003ca name=\"input_customer_dns_ips\"\u003e\u003c/a\u003e [customer\\_dns\\_ips](#input\\_customer\\_dns\\_ips) | Connect settings for ADConnector. | `list(string)` | `[]` | no |\n| \u003ca name=\"input_customer_username\"\u003e\u003c/a\u003e [customer\\_username](#input\\_customer\\_username) | Connect settings for ADConnector. | `string` | `\"\"` | no |\n| \u003ca name=\"input_directory_name\"\u003e\u003c/a\u003e [directory\\_name](#input\\_directory\\_name) | must be a fully qualified domain name and cannot end with a trailing period | `string` | `\"poc.woebothealth.com\"` | no |\n| \u003ca name=\"input_directory_size\"\u003e\u003c/a\u003e [directory\\_size](#input\\_directory\\_size) | The size of the directory (Small or Large are accepted values). Large by default. | `string` | `\"Small\"` | no |\n| \u003ca name=\"input_directory_type\"\u003e\u003c/a\u003e [directory\\_type](#input\\_directory\\_type) | Type of the directory service (MicrosoftAD or ADConnector). | `string` | `\"MicrosoftAD\"` | no |\n| \u003ca name=\"input_egress_rules\"\u003e\u003c/a\u003e [egress\\_rules](#input\\_egress\\_rules) | List of egress rules | \u003cpre\u003elist(object({\u003cbr\u003e    from_port   = number\u003cbr\u003e    to_port     = number\u003cbr\u003e    protocol    = any\u003cbr\u003e    cidr_blocks = optional(list(string), [])\u003cbr\u003e  }))\u003c/pre\u003e | \u003cpre\u003e[\u003cbr\u003e  {\u003cbr\u003e    \"cidr_blocks\": [\u003cbr\u003e      \"0.0.0.0/0\"\u003cbr\u003e    ],\u003cbr\u003e    \"from_port\": 0,\u003cbr\u003e    \"protocol\": -1,\u003cbr\u003e    \"to_port\": 0\u003cbr\u003e  }\u003cbr\u003e]\u003c/pre\u003e | no |\n| \u003ca name=\"input_iam_role_name\"\u003e\u003c/a\u003e [iam\\_role\\_name](#input\\_iam\\_role\\_name) | workspace iam-role-name | `string` | `\"workspaces_DefaultRole\"` | no |\n| \u003ca name=\"input_ingress_rules\"\u003e\u003c/a\u003e [ingress\\_rules](#input\\_ingress\\_rules) | List of ingress rules | \u003cpre\u003elist(object({\u003cbr\u003e    from_port   = number\u003cbr\u003e    to_port     = number\u003cbr\u003e    protocol    = string\u003cbr\u003e    cidr_blocks = optional(list(string), [])\u003cbr\u003e  }))\u003c/pre\u003e | \u003cpre\u003e[\u003cbr\u003e  {\u003cbr\u003e    \"cidr_blocks\": [\u003cbr\u003e      \"0.0.0.0/0\"\u003cbr\u003e    ],\u003cbr\u003e    \"from_port\": 443,\u003cbr\u003e    \"protocol\": \"tcp\",\u003cbr\u003e    \"to_port\": 443\u003cbr\u003e  }\u003cbr\u003e]\u003c/pre\u003e | no |\n| \u003ca name=\"input_ip_group_description\"\u003e\u003c/a\u003e [ip\\_group\\_description](#input\\_ip\\_group\\_description) | Description of the IP access control group | `string` | `\"nat-gateway-ip-list control group\"` | no |\n| \u003ca name=\"input_ip_group_name\"\u003e\u003c/a\u003e [ip\\_group\\_name](#input\\_ip\\_group\\_name) | Name of the IP access control group | `string` | `\"nat-gateway-ip-list\"` | no |\n| \u003ca name=\"input_ip_rules\"\u003e\u003c/a\u003e [ip\\_rules](#input\\_ip\\_rules) | List of IP rules | \u003cpre\u003elist(object({\u003cbr\u003e    source      = string\u003cbr\u003e    description = string\u003cbr\u003e  }))\u003c/pre\u003e | `[]` | no |\n| \u003ca name=\"input_region\"\u003e\u003c/a\u003e [region](#input\\_region) | AWS region | `string` | `\"us-west-2\"` | no |\n| \u003ca name=\"input_security_group_description\"\u003e\u003c/a\u003e [security\\_group\\_description](#input\\_security\\_group\\_description) | Description of the security group | `string` | `\"My security group description\"` | no |\n| \u003ca name=\"input_security_group_name\"\u003e\u003c/a\u003e [security\\_group\\_name](#input\\_security\\_group\\_name) | Name of the security group | `string` | `\"workspace-SG\"` | no |\n| \u003ca name=\"input_self_service_permissions\"\u003e\u003c/a\u003e [self\\_service\\_permissions](#input\\_self\\_service\\_permissions) | Self-service permissions configuration. | \u003cpre\u003eobject({\u003cbr\u003e    change_compute_type  = bool\u003cbr\u003e    increase_volume_size = bool\u003cbr\u003e    rebuild_workspace    = bool\u003cbr\u003e    restart_workspace    = bool\u003cbr\u003e    switch_running_mode  = bool\u003cbr\u003e  })\u003c/pre\u003e | \u003cpre\u003e{\u003cbr\u003e  \"change_compute_type\": false,\u003cbr\u003e  \"increase_volume_size\": false,\u003cbr\u003e  \"rebuild_workspace\": false,\u003cbr\u003e  \"restart_workspace\": true,\u003cbr\u003e  \"switch_running_mode\": false\u003cbr\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_ssm_ad_connector_parameter_name\"\u003e\u003c/a\u003e [ssm\\_ad\\_connector\\_parameter\\_name](#input\\_ssm\\_ad\\_connector\\_parameter\\_name) | ssm parameter name for microsoft AD | `string` | `\"/workspace/Connector/password\"` | no |\n| \u003ca name=\"input_ssm_parameter_name\"\u003e\u003c/a\u003e [ssm\\_parameter\\_name](#input\\_ssm\\_parameter\\_name) | ssm parameter name for microsoft AD | `string` | `\"/workspace/microsoft-ad/password\"` | no |\n| \u003ca name=\"input_subnet_ids\"\u003e\u003c/a\u003e [subnet\\_ids](#input\\_subnet\\_ids) | private subnet\\_ids | `list(string)` | n/a | yes |\n| \u003ca name=\"input_tags\"\u003e\u003c/a\u003e [tags](#input\\_tags) | tags to add to your resources | `map(string)` | n/a | yes |\n| \u003ca name=\"input_user_names\"\u003e\u003c/a\u003e [user\\_names](#input\\_user\\_names) | List of usernames to create workspaces for | `map(string)` | `{}` | no |\n| \u003ca name=\"input_volume_encryption_key\"\u003e\u003c/a\u003e [volume\\_encryption\\_key](#input\\_volume\\_encryption\\_key) | encryption key | `string` | `\"\"` | no |\n| \u003ca name=\"input_vpc_id\"\u003e\u003c/a\u003e [vpc\\_id](#input\\_vpc\\_id) | default vpc | `string` | n/a | yes |\n| \u003ca name=\"input_workspace_access_properties\"\u003e\u003c/a\u003e [workspace\\_access\\_properties](#input\\_workspace\\_access\\_properties) | Workspace access properties configuration. | \u003cpre\u003eobject({\u003cbr\u003e    device_type_android    = string\u003cbr\u003e    device_type_chromeos   = string\u003cbr\u003e    device_type_ios        = string\u003cbr\u003e    device_type_linux      = string\u003cbr\u003e    device_type_osx        = string\u003cbr\u003e    device_type_web        = string\u003cbr\u003e    device_type_windows    = string\u003cbr\u003e    device_type_zeroclient = string\u003cbr\u003e  })\u003c/pre\u003e | \u003cpre\u003e{\u003cbr\u003e  \"device_type_android\": \"ALLOW\",\u003cbr\u003e  \"device_type_chromeos\": \"ALLOW\",\u003cbr\u003e  \"device_type_ios\": \"ALLOW\",\u003cbr\u003e  \"device_type_linux\": \"ALLOW\",\u003cbr\u003e  \"device_type_osx\": \"ALLOW\",\u003cbr\u003e  \"device_type_web\": \"DENY\",\u003cbr\u003e  \"device_type_windows\": \"ALLOW\",\u003cbr\u003e  \"device_type_zeroclient\": \"ALLOW\"\u003cbr\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_workspace_creation_properties\"\u003e\u003c/a\u003e [workspace\\_creation\\_properties](#input\\_workspace\\_creation\\_properties) | Workspace creation properties configuration. | \u003cpre\u003eobject({\u003cbr\u003e    custom_security_group_id            = string\u003cbr\u003e    default_ou                          = string\u003cbr\u003e    enable_internet_access              = bool\u003cbr\u003e    enable_maintenance_mode             = bool\u003cbr\u003e    user_enabled_as_local_administrator = bool\u003cbr\u003e  })\u003c/pre\u003e | \u003cpre\u003e{\u003cbr\u003e  \"custom_security_group_id\": \"\",\u003cbr\u003e  \"default_ou\": \"\",\u003cbr\u003e  \"enable_internet_access\": false,\u003cbr\u003e  \"enable_maintenance_mode\": true,\u003cbr\u003e  \"user_enabled_as_local_administrator\": true\u003cbr\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_workspace_properties\"\u003e\u003c/a\u003e [workspace\\_properties](#input\\_workspace\\_properties) | Workspace properties configuration. | \u003cpre\u003eobject({\u003cbr\u003e    compute_type_name                         = string\u003cbr\u003e    user_volume_size_gib                      = number\u003cbr\u003e    root_volume_size_gib                      = number\u003cbr\u003e    running_mode                              = string\u003cbr\u003e    running_mode_auto_stop_timeout_in_minutes = number\u003cbr\u003e  })\u003c/pre\u003e | \u003cpre\u003e{\u003cbr\u003e  \"compute_type_name\": \"VALUE\",\u003cbr\u003e  \"root_volume_size_gib\": 80,\u003cbr\u003e  \"running_mode\": \"ALWAYS_ON\",\u003cbr\u003e  \"running_mode_auto_stop_timeout_in_minutes\": 60,\u003cbr\u003e  \"user_volume_size_gib\": 10\u003cbr\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_workspaces_self_service_access_arn\"\u003e\u003c/a\u003e [workspaces\\_self\\_service\\_access\\_arn](#input\\_workspaces\\_self\\_service\\_access\\_arn) | workspaces self service access from aws | `string` | n/a | yes |\n| \u003ca name=\"input_workspaces_service_access_arn\"\u003e\u003c/a\u003e [workspaces\\_service\\_access\\_arn](#input\\_workspaces\\_service\\_access\\_arn) | workspaces service access from aws | `string` | n/a | yes |\n\n## Outputs\n\n| Name | Description |\n|------|-------------|\n| \u003ca name=\"output_workspace_bundle_id\"\u003e\u003c/a\u003e [workspace\\_bundle\\_id](#output\\_workspace\\_bundle\\_id) | The ID of the AWS Workspaces bundle. |\n| \u003ca name=\"output_workspace_directory_id\"\u003e\u003c/a\u003e [workspace\\_directory\\_id](#output\\_workspace\\_directory\\_id) | The ID of the AWS Workspaces directory. |\n| \u003ca name=\"output_workspace_properties\"\u003e\u003c/a\u003e [workspace\\_properties](#output\\_workspace\\_properties) | The properties of the AWS Workspaces. |\n| \u003ca name=\"output_workspace_root_volume_encryption_enabled\"\u003e\u003c/a\u003e [workspace\\_root\\_volume\\_encryption\\_enabled](#output\\_workspace\\_root\\_volume\\_encryption\\_enabled) | Whether root volume encryption is enabled for the AWS Workspaces. |\n| \u003ca name=\"output_workspace_user_name\"\u003e\u003c/a\u003e [workspace\\_user\\_name](#output\\_workspace\\_user\\_name) | The username of the AWS Workspaces user. |\n| \u003ca name=\"output_workspace_user_volume_encryption_enabled\"\u003e\u003c/a\u003e [workspace\\_user\\_volume\\_encryption\\_enabled](#output\\_workspace\\_user\\_volume\\_encryption\\_enabled) | Whether user volume encryption is enabled for the AWS Workspaces. |\n| \u003ca name=\"output_workspace_volume_encryption_key\"\u003e\u003c/a\u003e [workspace\\_volume\\_encryption\\_key](#output\\_workspace\\_volume\\_encryption\\_key) | The encryption key used for AWS Workspaces volumes. |\n\u003c!-- END OF PRE-COMMIT-TERRAFORM DOCS HOOK --\u003e\n\n### Git commits\n\nwhile Contributing or doing git commit please specify the breaking change in your commit message whether its major,minor or patch\n\nFor Example\n\n```sh\ngit commit -m \"your commit message #major\"\n```\nBy specifying this , it will bump the version and if you don't specify this in your commit message then by default it will consider patch and will bump that accordingly  \n\n## Development\n\n### Prerequisites\n\n- [terraform](https://learn.hashicorp.com/terraform/getting-started/install#installing-terraform)\n- [terraform-docs](https://github.com/segmentio/terraform-docs)\n- [pre-commit](https://pre-commit.com/#install)\n- [golang](https://golang.org/doc/install#install)\n- [golint](https://github.com/golang/lint#installation)\n\n### Configurations\n\n- Configure pre-commit hooks\n  ```sh\n  pre-commit install\n  ```\n\n### Tests\n- Tests are available in `test` directory\n- Configure the dependencies\n  ```sh\n  cd test/\n  go mod init github.com/sourcefuse/arc-terraform-workspace\n  go get github.com/gruntwork-io/terratest/modules/terraform\n  ```\n- Now execute the test  \n  ```sh\n  cd test\n  go test\n  ```\n\n## Authors\n\nThis project is authored by:\n- SourceFuse ARC Team\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsourcefuse%2Fterraform-aws-arc-workspace","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsourcefuse%2Fterraform-aws-arc-workspace","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsourcefuse%2Fterraform-aws-arc-workspace/lists"}