func Delete()

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
}