|  additional_iam_policies | 
List of additional IAM policy ARNs to attach to the execution role | 
list(string) | 
[] | 
no | 
|  additional_security_group_ids | 
List of additional security group IDs to attach to the domain | 
list(string) | 
[] | 
no | 
|  app_network_access_type | 
Specifies the VPC used for non-EFS traffic. Valid values are PublicInternetOnly and VpcOnly | 
string | 
"PublicInternetOnly" | 
no | 
|  app_security_group_management | 
The entity that creates and manages the required security groups for inter-app communication in VPCOnly mode. Valid values are Service and Customer | 
string | 
"Service" | 
no | 
|  async_inference_config | 
(Optional) Configuration for asynchronous inference. | 
object({     output_config = object({       s3_output_path  = string       s3_failure_path = optional(string)       kms_key_id      = optional(string)       notification_config = optional(object({         include_inference_response_in = optional(string)         error_topic                   = optional(string)         success_topic                 = optional(string)       }))     })     client_config = optional(object({       max_concurrent_invocations_per_instance = optional(number)     }))   }) | 
null | 
no | 
|  auth_mode | 
The mode of authentication that members use to access the domain. Valid values are IAM and SSO | 
string | 
"IAM" | 
no | 
|  container | 
List of containers for inference pipeline (alternative to primary_container) | 
list(any) | 
null | 
no | 
|  create_domain | 
Whether to create the SageMaker domain | 
bool | 
false | 
no | 
|  create_endpoint | 
Whether to create the SageMaker endpoint | 
bool | 
false | 
no | 
|  create_endpoint_config | 
Whether to create the SageMaker endpoint configuration | 
bool | 
false | 
no | 
|  create_execution_role | 
Whether to create an execution role for SageMaker | 
bool | 
false | 
no | 
|  create_model | 
Whether to create the SageMaker model | 
bool | 
false | 
no | 
|  create_pipeline | 
Whether to create the SageMaker pipeline | 
bool | 
false | 
no | 
|  create_pipeline_role | 
Whether to create a separate role for pipelines | 
bool | 
false | 
no | 
|  create_sagemaker_execution_role | 
Whether to create an SageMaker execution role | 
bool | 
false | 
no | 
|  create_security_groups | 
Whether to create security groups for SageMaker Studio | 
bool | 
false | 
no | 
|  create_user_profile | 
Whether to create the SageMaker user profile | 
bool | 
false | 
no | 
|  data_capture_config | 
(Optional) Configuration for capturing input/output data. | 
object({     initial_sampling_percentage = number     destination_s3_uri          = string     kms_key_id                  = optional(string)     enable_capture              = optional(bool)     capture_options = list(object({       capture_mode = string     }))     capture_content_type_header = optional(object({       csv_content_types  = optional(list(string))       json_content_types = optional(list(string))     }))   }) | 
null | 
no | 
|  default_space_settings | 
The default space settings for the domain | 
object({     execution_role_arn = string     security_groups    = optional(list(string))
      jupyter_server_app_settings = optional(object({       default_resource_spec = optional(object({         instance_type                 = optional(string, "ml.t3.medium")         lifecycle_config_arn          = optional(string)         sagemaker_image_arn           = optional(string)         sagemaker_image_version_arn   = optional(string)         sagemaker_image_version_alias = optional(string)       }))     }))
      kernel_gateway_app_settings = optional(object({       default_resource_spec = optional(object({         instance_type                 = optional(string, "ml.t3.medium")         lifecycle_config_arn          = optional(string)         sagemaker_image_arn           = optional(string)         sagemaker_image_version_arn   = optional(string)         sagemaker_image_version_alias = optional(string)       }))     }))
      jupyter_lab_app_settings = optional(object({       default_resource_spec = optional(object({         instance_type                 = optional(string, "ml.t3.medium")         lifecycle_config_arn          = optional(string)         sagemaker_image_arn           = optional(string)         sagemaker_image_version_arn   = optional(string)         sagemaker_image_version_alias = optional(string)       }))     }))
      space_storage_settings = optional(object({       default_ebs_storage_settings = optional(object({         default_ebs_volume_size_in_gb = number         maximum_ebs_volume_size_in_gb = number       }))     }))
      custom_file_system_config = optional(object({       efs_file_system_config = optional(object({         file_system_id   = string         file_system_path = string       }))     }))
      custom_posix_user_config = optional(object({       gid = optional(number)       uid = optional(number)     }))   }) | 
null | 
no | 
|  default_user_settings | 
The default user settings for the domain | 
object({     execution_role_arn  = string     auto_mount_home_efs = optional(string, "Disabled")     default_landing_uri = optional(string)     studio_web_portal   = optional(string, "ENABLED")
      jupyter_lab_app_settings = optional(object({       default_resource_spec = optional(object({         instance_type                 = optional(string, "ml.t3.medium")         lifecycle_config_arn          = optional(string)         sagemaker_image_arn           = optional(string)         sagemaker_image_version_arn   = optional(string)         sagemaker_image_version_alias = optional(string)       }))
        app_lifecycle_management = optional(object({         idle_settings = optional(object({           lifecycle_management        = optional(string, "ENABLED")           idle_timeout_in_minutes     = optional(number, 60)           max_idle_timeout_in_minutes = optional(number, 480)           min_idle_timeout_in_minutes = optional(number, 60)         }))       }))
        custom_images = optional(list(object({         app_image_config_name = string         image_name            = string         image_version_number  = optional(number)       })))
        code_repositories = optional(list(object({         repository_url = string       })))
        lifecycle_config_arns         = optional(list(string))       built_in_lifecycle_config_arn = optional(string)
        emr_settings = optional(object({         assumable_role_arns = optional(list(string))         execution_role_arns = optional(list(string))       }))     }))
      code_editor_app_settings = optional(object({       default_resource_spec = optional(object({         instance_type                 = optional(string, "ml.t3.medium")         lifecycle_config_arn          = optional(string)         sagemaker_image_arn           = optional(string)         sagemaker_image_version_arn   = optional(string)         sagemaker_image_version_alias = optional(string)       }))
        app_lifecycle_management = optional(object({         idle_settings = optional(object({           lifecycle_management        = optional(string, "ENABLED")           idle_timeout_in_minutes     = optional(number, 60)           max_idle_timeout_in_minutes = optional(number, 480)           min_idle_timeout_in_minutes = optional(number, 60)         }))       }))
        custom_images = optional(list(object({         app_image_config_name = string         image_name            = string         image_version_number  = optional(number)       })))
        lifecycle_config_arns         = optional(list(string))       built_in_lifecycle_config_arn = optional(string)     }))
      jupyter_server_app_settings = optional(object({       default_resource_spec = optional(object({         instance_type                 = optional(string, "ml.t3.medium")         lifecycle_config_arn          = optional(string)         sagemaker_image_arn           = optional(string)         sagemaker_image_version_arn   = optional(string)         sagemaker_image_version_alias = optional(string)       }))
        code_repositories = optional(list(object({         repository_url = string       })))
        lifecycle_config_arns = optional(list(string))     }))
      kernel_gateway_app_settings = optional(object({       default_resource_spec = optional(object({         instance_type                 = optional(string, "ml.t3.medium")         lifecycle_config_arn          = optional(string)         sagemaker_image_arn           = optional(string)         sagemaker_image_version_arn   = optional(string)         sagemaker_image_version_alias = optional(string)       }))
        custom_images = optional(list(object({         app_image_config_name = string         image_name            = string         image_version_number  = optional(number)       })))
        lifecycle_config_arns = optional(list(string))     }))
      canvas_app_settings = optional(object({       time_series_forecasting_settings = optional(object({         status                   = optional(string, "DISABLED")         amazon_forecast_role_arn = optional(string)       }))
        model_register_settings = optional(object({         status                                = optional(string, "DISABLED")         cross_account_model_register_role_arn = optional(string)       }))
        workspace_settings = optional(object({         s3_artifact_path = optional(string)         s3_kms_key_id    = optional(string)       }))
        direct_deploy_settings = optional(object({         status = optional(string, "DISABLED")       }))
        kendra_settings = optional(object({         status = optional(string, "DISABLED")       }))
        identity_provider_oauth_settings = optional(list(object({         data_source_name = optional(string)         secret_arn       = optional(string)         status           = optional(string, "DISABLED")       })))
        emr_serverless_settings = optional(object({         execution_role_arn = optional(string)         status             = optional(string, "DISABLED")       }))     }))
      tensor_board_app_settings = optional(object({       default_resource_spec = optional(object({         instance_type                 = optional(string, "ml.t3.medium")         lifecycle_config_arn          = optional(string)         sagemaker_image_arn           = optional(string)         sagemaker_image_version_arn   = optional(string)         sagemaker_image_version_alias = optional(string)       }))     }))
      r_session_app_settings = optional(object({       default_resource_spec = optional(object({         instance_type                 = optional(string, "ml.t3.medium")         lifecycle_config_arn          = optional(string)         sagemaker_image_arn           = optional(string)         sagemaker_image_version_arn   = optional(string)         sagemaker_image_version_alias = optional(string)       }))
        custom_images = optional(list(object({         app_image_config_name = string         image_name            = string         image_version_number  = optional(number)       })))     }))
      r_studio_server_pro_app_settings = optional(object({       access_status = optional(string, "DISABLED")       user_group    = optional(string, "R_STUDIO_USER")     }))
      sharing_settings = optional(object({       notebook_output_option = optional(string, "Disabled")       s3_kms_key_id          = optional(string)       s3_output_path         = optional(string)     }))
      space_storage_settings = optional(object({       default_ebs_storage_settings = optional(object({         default_ebs_volume_size_in_gb = number         maximum_ebs_volume_size_in_gb = number       }))     }))
      custom_file_system_config = optional(object({       efs_file_system_config = optional(object({         file_system_id   = string         file_system_path = string       }))     }))
      custom_posix_user_config = optional(object({       gid = optional(number)       uid = optional(number)     }))
      studio_web_portal_settings = optional(object({       hidden_app_types      = optional(list(string))       hidden_instance_types = optional(list(string))       hidden_ml_tools       = optional(list(string))     }))   }) | 
null | 
no | 
|  deployment_config | 
Deployment configuration block | 
object({     blue_green_update_policy = optional(object({       traffic_routing_configuration = object({         type                     = string         wait_interval_in_seconds = number         canary_size = optional(object({           type  = string           value = number         }))         linear_step_size = optional(object({           type  = string           value = number         }))       })       maximum_execution_timeout_in_seconds = optional(number)       termination_wait_in_seconds          = optional(number)     }))     auto_rollback_configuration = optional(object({       alarms = list(object({         alarm_name = string       }))     }))     rolling_update_policy = optional(object({       wait_interval_in_seconds             = number       maximum_execution_timeout_in_seconds = optional(number)       maximum_batch_size = object({         type  = string         value = number       })       rollback_maximum_batch_size = optional(object({         type  = string         value = number       }))     }))   }) | 
null | 
no | 
|  domain_name | 
The name of the SageMaker domain | 
string | 
"arc-sagemaker-domain" | 
no | 
|  domain_settings | 
The domain settings | 
object({     execution_role_identity_config = optional(string, "USER_PROFILE_NAME")     security_group_ids             = optional(list(string))
      docker_settings = optional(object({       enable_docker_access      = optional(string, "ENABLED")       vpc_only_trusted_accounts = optional(list(string))     }))
      r_studio_server_pro_domain_settings = optional(object({       domain_execution_role_arn    = string       r_studio_connect_url         = optional(string)       r_studio_package_manager_url = optional(string)
        default_resource_spec = optional(object({         instance_type                 = optional(string, "ml.t3.medium")         lifecycle_config_arn          = optional(string)         sagemaker_image_arn           = optional(string)         sagemaker_image_version_arn   = optional(string)         sagemaker_image_version_alias = optional(string)       }))     }))   }) | 
null | 
no | 
|  enable_network_isolation | 
Isolate the model container from external network | 
bool | 
null | 
no | 
|  execution_role_name | 
Name of the execution role to create | 
string | 
"SageMakerStudioExecutionRole" | 
no | 
|  execution_role_path | 
Path for the execution role | 
string | 
"/" | 
no | 
|  inference_execution_config | 
Multi-container execution configuration | 
object({     mode = string   }) | 
null | 
no | 
|  kms_key_arn | 
(Optional) ARN of the KMS key to encrypt storage volume data. | 
string | 
null | 
no | 
|  kms_key_id | 
The AWS KMS customer managed CMK used to encrypt the EFS volume attached to the domain | 
string | 
null | 
no | 
|  name | 
The name of the SageMaker model. | 
string | 
"terraform-sg" | 
no | 
|  name_prefix | 
(Optional) Prefix for the endpoint configuration name. Conflicts with name. | 
string | 
null | 
no | 
|  pipeline_role_name | 
Name of the pipeline role to create | 
string | 
"SageMakerPipelineExecutionRole" | 
no | 
|  pipeline_role_path | 
Path for the pipeline role | 
string | 
"/" | 
no | 
|  pipelines | 
List of SageMaker pipelines to create | 
list(object({     name         = string     display_name = string     description  = optional(string)     definition   = optional(string)     role_arn     = optional(string)     tags         = optional(map(string))
      pipeline_definition_s3_location = optional(object({       bucket     = string       object_key = string       version_id = optional(string)     }))
      parallelism_configuration = optional(object({       max_parallel_execution_steps = number     }))   })) | 
[] | 
no | 
|  primary_container | 
Primary container block | 
object({     image              = string     mode               = optional(string)     model_data_url     = optional(string)     model_package_name = optional(string)     container_hostname = optional(string)     environment        = optional(map(string))     image_config = optional(object({       repository_access_mode = string       repository_auth_config = optional(object({         repository_credentials_provider_arn = string       }))     }))     inference_specification_name = optional(string)     multi_model_config = optional(object({       model_cache_setting = string     }))     model_data_source = optional(object({       s3_data_source = object({         compression_type = string         s3_data_type     = string         s3_uri           = string         model_access_config = optional(object({           accept_eula = bool         }))       })     }))   }) | 
{   "environment": {},   "image": "683313688378.dkr.ecr.us-east-1.amazonaws.com/sagemaker-scikit-learn:1.0-1-cpu-py3",   "model_data_url": "s3://your-sagemaker-model-bucket-21-05-25/model/model.tar.gz" } | 
no | 
|  production_variants | 
(Required) List of production variant configurations. | 
list(object({     variant_name                                      = optional(string)     model_name                                        = optional(string)     initial_instance_count                            = optional(number)     instance_type                                     = optional(string)     accelerator_type                                  = optional(string)     container_startup_health_check_timeout_in_seconds = optional(number)     core_dump_config = optional(object({       destination_s3_uri = string       kms_key_id         = string     }))     enable_ssm_access                      = optional(bool)     inference_ami_version                  = optional(string)     initial_variant_weight                 = optional(number)     model_data_download_timeout_in_seconds = optional(number)     routing_config = optional(object({       routing_strategy = string     }))     serverless_config = optional(object({       max_concurrency         = number       memory_size_in_mb       = number       provisioned_concurrency = optional(number)     }))     managed_instance_scaling = optional(object({       status             = optional(string)       min_instance_count = optional(number)       max_instance_count = optional(number)     }))     volume_size_in_gb = optional(number)   })) | 
[   {     "initial_instance_count": 1,     "initial_variant_weight": 1,     "instance_type": "ml.m5.large",     "variant_name": "AllTraffic"   } ]  | 
no | 
|  retention_policy | 
The retention policy for the domain | 
object({     home_efs_file_system = optional(string, "Retain")   }) | 
null | 
no | 
|  security_group_data | 
(optional) Security Group data | 
object({     security_group_ids_to_attach = optional(list(string), [])     create                       = optional(bool, true)     description                  = optional(string, null)     ingress_rules = optional(list(object({       description              = optional(string, null)       cidr_block               = optional(string, null)       source_security_group_id = optional(string, null)       from_port                = number       ip_protocol              = string       to_port                  = string       self                     = optional(bool, false)     })), [])     egress_rules = optional(list(object({       description                   = optional(string, null)       cidr_block                    = optional(string, null)       destination_security_group_id = optional(string, null)       from_port                     = number       ip_protocol                   = string       to_port                       = string       prefix_list_id                = optional(string, null)     })), [])   }) | 
{   "create": false } | 
no | 
|  security_group_name | 
sagemaker security group name | 
string | 
"sagemaker-sg" | 
no | 
|  shadow_production_variants | 
(Optional) List of shadow production variant configurations. | 
list(object({     variant_name           = optional(string)     model_name             = string     initial_instance_count = optional(number)     instance_type          = optional(string)     initial_variant_weight = optional(number)   })) | 
[] | 
no | 
|  subnet_ids | 
The VPC subnets that Studio uses for communication | 
list(string) | 
[] | 
no | 
|  tag_propagation | 
Indicates whether custom tag propagation is supported for the domain. Valid values are ENABLED and DISABLED | 
string | 
"DISABLED" | 
no | 
|  tags | 
Tags to assign to the SageMaker model | 
map(string) | 
{} | 
no | 
|  user_profiles | 
List of user profiles to create | 
list(object({     name                           = string     single_sign_on_user_identifier = optional(string)     single_sign_on_user_value      = optional(string)     tags                           = optional(map(string))
      user_settings = optional(object({       execution_role_arn  = optional(string)       auto_mount_home_efs = optional(string)       default_landing_uri = optional(string)       studio_web_portal   = optional(string)       security_groups     = optional(list(string))
        jupyter_lab_app_settings = optional(object({         default_resource_spec = optional(object({           instance_type                 = optional(string)           lifecycle_config_arn          = optional(string)           sagemaker_image_arn           = optional(string)           sagemaker_image_version_arn   = optional(string)           sagemaker_image_version_alias = optional(string)         }))
          app_lifecycle_management = optional(object({           idle_settings = optional(object({             lifecycle_management        = optional(string)             idle_timeout_in_minutes     = optional(number)             max_idle_timeout_in_minutes = optional(number)             min_idle_timeout_in_minutes = optional(number)           }))         }))
          custom_images = optional(list(object({           app_image_config_name = string           image_name            = string           image_version_number  = optional(number)         })))
          code_repositories = optional(list(object({           repository_url = string         })))
          lifecycle_config_arns         = optional(list(string))         built_in_lifecycle_config_arn = optional(string)
          emr_settings = optional(object({           assumable_role_arns = optional(list(string))           execution_role_arns = optional(list(string))         }))       }))
        code_editor_app_settings = optional(object({         default_resource_spec = optional(object({           instance_type                 = optional(string)           lifecycle_config_arn          = optional(string)           sagemaker_image_arn           = optional(string)           sagemaker_image_version_arn   = optional(string)           sagemaker_image_version_alias = optional(string)         }))
          app_lifecycle_management = optional(object({           idle_settings = optional(object({             lifecycle_management        = optional(string)             idle_timeout_in_minutes     = optional(number)             max_idle_timeout_in_minutes = optional(number)             min_idle_timeout_in_minutes = optional(number)           }))         }))
          custom_images = optional(list(object({           app_image_config_name = string           image_name            = string           image_version_number  = optional(number)         })))
          lifecycle_config_arns         = optional(list(string))         built_in_lifecycle_config_arn = optional(string)       }))
        jupyter_server_app_settings = optional(object({         default_resource_spec = optional(object({           instance_type                 = optional(string)           lifecycle_config_arn          = optional(string)           sagemaker_image_arn           = optional(string)           sagemaker_image_version_arn   = optional(string)           sagemaker_image_version_alias = optional(string)         }))
          code_repositories = optional(list(object({           repository_url = string         })))
          lifecycle_config_arns = optional(list(string))       }))
        kernel_gateway_app_settings = optional(object({         default_resource_spec = optional(object({           instance_type                 = optional(string)           lifecycle_config_arn          = optional(string)           sagemaker_image_arn           = optional(string)           sagemaker_image_version_arn   = optional(string)           sagemaker_image_version_alias = optional(string)         }))
          custom_images = optional(list(object({           app_image_config_name = string           image_name            = string           image_version_number  = optional(number)         })))
          lifecycle_config_arns = optional(list(string))       }))
        canvas_app_settings = optional(object({         time_series_forecasting_settings = optional(object({           status                   = optional(string)           amazon_forecast_role_arn = optional(string)         }))
          model_register_settings = optional(object({           status                                = optional(string)           cross_account_model_register_role_arn = optional(string)         }))
          workspace_settings = optional(object({           s3_artifact_path = optional(string)           s3_kms_key_id    = optional(string)         }))
          direct_deploy_settings = optional(object({           status = optional(string)         }))
          kendra_settings = optional(object({           status = optional(string)         }))
          identity_provider_oauth_settings = optional(list(object({           data_source_name = optional(string)           secret_arn       = optional(string)           status           = optional(string)         })))
          emr_serverless_settings = optional(object({           execution_role_arn = optional(string)           status             = optional(string)         }))       }))
        tensor_board_app_settings = optional(object({         default_resource_spec = optional(object({           instance_type                 = optional(string)           lifecycle_config_arn          = optional(string)           sagemaker_image_arn           = optional(string)           sagemaker_image_version_arn   = optional(string)           sagemaker_image_version_alias = optional(string)         }))       }))
        r_session_app_settings = optional(object({         default_resource_spec = optional(object({           instance_type                 = optional(string)           lifecycle_config_arn          = optional(string)           sagemaker_image_arn           = optional(string)           sagemaker_image_version_arn   = optional(string)           sagemaker_image_version_alias = optional(string)         }))
          custom_images = optional(list(object({           app_image_config_name = string           image_name            = string           image_version_number  = optional(number)         })))       }))
        r_studio_server_pro_app_settings = optional(object({         access_status = optional(string)         user_group    = optional(string)       }))
        sharing_settings = optional(object({         notebook_output_option = optional(string)         s3_kms_key_id          = optional(string)         s3_output_path         = optional(string)       }))
        space_storage_settings = optional(object({         default_ebs_storage_settings = optional(object({           default_ebs_volume_size_in_gb = number           maximum_ebs_volume_size_in_gb = number         }))       }))
        custom_file_system_config = optional(object({         efs_file_system_config = optional(object({           file_system_id   = string           file_system_path = string         }))       }))
        custom_posix_user_config = optional(object({         gid = optional(number)         uid = optional(number)       }))
        studio_web_portal_settings = optional(object({         hidden_app_types      = optional(list(string))         hidden_instance_types = optional(list(string))         hidden_ml_tools       = optional(list(string))       }))     }))   })) | 
[] | 
no | 
|  vpc_config | 
VPC configuration for the model | 
object({     security_group_ids = list(string)     subnets            = list(string)   }) | 
null | 
no | 
|  vpc_id | 
The ID of the VPC that Studio uses for communication | 
string | 
null | 
no |