in internal/services/azapi_update_resource.go [243:282]
func (r *AzapiUpdateResource) ValidateConfig(ctx context.Context, request resource.ValidateConfigRequest, response *resource.ValidateConfigResponse) {
var config *AzapiUpdateResourceModel
if response.Diagnostics.Append(request.Config.Get(ctx, &config)...); response.Diagnostics.HasError() {
return
}
if config == nil {
return
}
if config.Name.IsNull() && !config.ParentID.IsNull() {
response.Diagnostics.AddError("Invalid configuration", `The argument "name" is required when the argument "parent_id" is set`)
}
if !config.Name.IsNull() && config.ParentID.IsNull() {
response.Diagnostics.AddError("Invalid configuration", `The argument "parent_id" is required when the argument "name" is set`)
}
if config.Name.IsNull() && config.ResourceID.IsNull() {
response.Diagnostics.AddError("Invalid configuration", `One of the arguments "name" or "resource_id" must be set`)
}
if !config.Name.IsNull() && !config.ResourceID.IsNull() {
response.Diagnostics.AddError("Invalid configuration", `Only one of the arguments "name" or "resource_id" can be set`)
}
if response.Diagnostics.HasError() {
return
}
if name := config.Name.ValueString(); name != "" {
parentId := config.ParentID.ValueString()
resourceType := config.Type.ValueString()
// verify parent_id when it's known
if parentId != "" {
_, err := parse.NewResourceID(name, parentId, resourceType)
if err != nil {
response.Diagnostics.AddError("Invalid configuration", err.Error())
return
}
}
}
}