diff --git a/datadog/fwprovider/resource_datadog_team_permission_setting.go b/datadog/fwprovider/resource_datadog_team_permission_setting.go index 96f7868909..0172182f16 100644 --- a/datadog/fwprovider/resource_datadog_team_permission_setting.go +++ b/datadog/fwprovider/resource_datadog_team_permission_setting.go @@ -3,8 +3,10 @@ package fwprovider import ( "context" "fmt" + "strings" "github.com/DataDog/datadog-api-client-go/v2/api/datadogV2" + "github.com/hashicorp/terraform-plugin-framework/path" "github.com/hashicorp/terraform-plugin-framework/resource" "github.com/hashicorp/terraform-plugin-framework/resource/schema" "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" @@ -17,7 +19,8 @@ import ( ) var ( - _ resource.ResourceWithConfigure = &teamPermissionSettingResource{} + _ resource.ResourceWithConfigure = &teamPermissionSettingResource{} + _ resource.ResourceWithImportState = &teamPermissionSettingResource{} ) type teamPermissionSettingResource struct { @@ -80,6 +83,17 @@ func (r *teamPermissionSettingResource) Schema(_ context.Context, _ resource.Sch } } +func (r *teamPermissionSettingResource) ImportState(ctx context.Context, request resource.ImportStateRequest, response *resource.ImportStateResponse) { + result := strings.SplitN(request.ID, ":", 2) + if len(result) != 2 { + response.Diagnostics.AddError("error retrieving team_id or action from given ID", "") + return + } + + response.Diagnostics.Append(response.State.SetAttribute(ctx, path.Root("team_id"), result[0])...) + response.Diagnostics.Append(response.State.SetAttribute(ctx, path.Root("action"), result[1])...) +} + func (r *teamPermissionSettingResource) Read(ctx context.Context, request resource.ReadRequest, response *resource.ReadResponse) { var state teamPermissionSettingModel response.Diagnostics.Append(request.State.Get(ctx, &state)...) diff --git a/docs/resources/team_permission_setting.md b/docs/resources/team_permission_setting.md index 158b845cca..7554a5b577 100644 --- a/docs/resources/team_permission_setting.md +++ b/docs/resources/team_permission_setting.md @@ -38,3 +38,12 @@ resource "datadog_team_permission_setting" "foo" { ### Read-Only - `id` (String) The ID of this resource. + +## Import + +This resource can be imported using the [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import). For example: + +```shell +# This resource is imported using team_id and action separated by `:`. +terraform import datadog_team_permission_setting.example "${team_id}:${action}" +``` diff --git a/examples/resources/datadog_team_permission_setting/import.sh b/examples/resources/datadog_team_permission_setting/import.sh new file mode 100644 index 0000000000..79151b5da3 --- /dev/null +++ b/examples/resources/datadog_team_permission_setting/import.sh @@ -0,0 +1,2 @@ +# This resource is imported using team_id and action separated by `:`. +terraform import datadog_team_permission_setting.example "${team_id}:${action}" \ No newline at end of file