in aws-aps-rulegroupsnamespace/cmd/resource/resource.go [161:206]
func Delete(req handler.Request, prevModel *Model, currentModel *Model) (handler.ProgressEvent, error) {
if currentModel.Arn == nil {
return handler.ProgressEvent{
OperationStatus: handler.Failed,
Message: "Invalid Delete: Arn cannot be empty",
HandlerErrorCode: cloudformation.HandlerErrorCodeNotFound,
ResourceModel: currentModel,
}, nil
}
client := internal.NewAPS(req.Session)
if _, ok := req.CallbackContext["Arn"]; ok {
currentModel.Arn = aws.String(req.CallbackContext["Arn"].(string))
return validateRuleGroupsNamespaceDeleted(
client,
currentModel,
"Delete Complete")
}
_, workspaceID, err := internal.ParseARN(*currentModel.Arn)
if err != nil {
return handler.ProgressEvent{
OperationStatus: handler.Failed,
Message: "Invalid Read: invalid ARN format",
HandlerErrorCode: cloudformation.HandlerErrorCodeNotFound,
ResourceModel: currentModel,
}, nil
}
_, err = client.
DeleteRuleGroupsNamespace(&prometheusservice.DeleteRuleGroupsNamespaceInput{
WorkspaceId: aws.String(workspaceID),
Name: currentModel.Name,
})
if err != nil {
return internal.NewFailedEvent(err)
}
return handler.ProgressEvent{
OperationStatus: handler.InProgress,
Message: "In Progress",
ResourceModel: currentModel,
CallbackDelaySeconds: defaultCallbackSeconds,
CallbackContext: buildCallbackContext(currentModel),
}, nil
}