diff --git a/internal/services/machinelearning/machine_learning_compute_instance_resource.go b/internal/services/machinelearning/machine_learning_compute_instance_resource.go index 88b77788d55e..b75333553c12 100644 --- a/internal/services/machinelearning/machine_learning_compute_instance_resource.go +++ b/internal/services/machinelearning/machine_learning_compute_instance_resource.go @@ -153,6 +153,12 @@ func resourceComputeInstance() *pluginsdk.Resource { ForceNew: true, }, + "root_access_enabled": { + Type: schema.TypeBool, + Optional: true, + Default: false, + }, + "tags": commonschema.TagsForceNew(), }, } @@ -247,6 +253,10 @@ func resourceComputeInstanceCreate(d *pluginsdk.ResourceData, meta interface{}) props.Properties.ComputeInstanceAuthorizationType = pointer.To(machinelearningcomputes.ComputeInstanceAuthorizationType(v.(string))) } + if v, ok := d.GetOk("root_access_enabled"); ok { + props.Properties.EnableRootAccess = pointer.To(v.(bool)) + } + parameters.Properties = props future, err := client.ComputeCreateOrUpdate(ctx, id, parameters) @@ -328,6 +338,10 @@ func resourceComputeInstanceRead(d *pluginsdk.ResourceData, meta interface{}) er d.Set("node_public_ip_enabled", enableNodePublicIP) } + if v, ok := resp.Properties["enableRootAccess"].(bool); ok { + d.Set("root_access_enabled", v) + } + return tags.FlattenAndSet(d, resp.Model.Tags) } diff --git a/internal/services/machinelearning/machine_learning_compute_instance_resource_test.go b/internal/services/machinelearning/machine_learning_compute_instance_resource_test.go index 6ab065378fd7..c2576b9d9940 100644 --- a/internal/services/machinelearning/machine_learning_compute_instance_resource_test.go +++ b/internal/services/machinelearning/machine_learning_compute_instance_resource_test.go @@ -106,6 +106,32 @@ func TestAccComputeInstance_identity(t *testing.T) { }) } +func TestAccAzureRMMachineLearningComputeInstance_rootAccessEnabled(t *testing.T) { + resource.Test(t, resource.TestCase{ + PreCheck: func() { testAccPreCheck(t) }, + Providers: testAccProviders, + CheckDestroy: testCheckAzureRMMachineLearningComputeInstanceDestroy, + Steps: []resource.TestStep{ + { + Config: testAccAzureRMMachineLearningComputeInstance_rootAccessEnabled, + Check: resource.ComposeTestCheckFunc( + testCheckAzureRMMachineLearningComputeInstanceExists("azurerm_machine_learning_compute_instance.test"), + resource.TestCheckResourceAttr("azurerm_machine_learning_compute_instance.test", "root_access_enabled", "true"), + ), + }, + }, + }) +} + +const testAccAzureRMMachineLearningComputeInstance_rootAccessEnabled = ` +resource "azurerm_machine_learning_compute_instance" "test" { + name = "acctestmlci-%d" + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name + root_access_enabled = true +} +` + func (r ComputeInstanceResource) Exists(ctx context.Context, client *clients.Client, state *pluginsdk.InstanceState) (*bool, error) { computeClient := client.MachineLearning.MachineLearningComputes id, err := machinelearningcomputes.ParseComputeID(state.ID) diff --git a/website/docs/r/machine_learning_compute_instance.html.markdown b/website/docs/r/machine_learning_compute_instance.html.markdown index ce8f89dc1a4d..11a4cda72c43 100644 --- a/website/docs/r/machine_learning_compute_instance.html.markdown +++ b/website/docs/r/machine_learning_compute_instance.html.markdown @@ -122,6 +122,8 @@ The following arguments are supported: * `tags` - (Optional) A mapping of tags which should be assigned to the Machine Learning Compute Instance. Changing this forces a new Machine Learning Compute Instance to be created. +* `root_access_enabled` - (Optional) Specifies whether root access is enabled for the compute instance. Defaults to `false`. + --- An `identity` block supports the following: