func validateAlertManagerState()

in aws-aps-workspace/cmd/resource/resource.go [447:485]


func validateAlertManagerState(client internal.APSService, currentModel *Model, targetState string, successMessage string) (handler.ProgressEvent, error) {
	_, err := readWorkspace(client, currentModel)
	if err != nil {
		return handler.ProgressEvent{}, err
	}

	state, err := readAlertManagerDefinition(client, currentModel)
	if err != nil {
		return handler.ProgressEvent{
			ResourceModel:   currentModel,
			OperationStatus: handler.Failed,
			Message:         "AlertManagerDefinition was deleted out-of-band",
		}, err
	}

	if _, ok := alertManagerFailedStates[aws.StringValue(state.StatusCode)]; ok {
		return handler.ProgressEvent{
			ResourceModel:   currentModel,
			OperationStatus: handler.Failed,
			Message:         fmt.Sprintf("AlertManagerDefinition status: %s", aws.StringValue(state.StatusCode)),
		}, err
	}

	if aws.StringValue(state.StatusCode) != targetState {
		return handler.ProgressEvent{
			ResourceModel:        currentModel,
			OperationStatus:      handler.InProgress,
			Message:              messageInProgress,
			CallbackDelaySeconds: defaultCallbackSeconds,
			CallbackContext:      buildWaitForAlertManagerStatusCallbackContext(currentModel, waitForAlertManagerStatusActiveKey),
		}, nil
	}

	return handler.ProgressEvent{
		ResourceModel:   currentModel,
		OperationStatus: handler.Success,
		Message:         successMessage,
	}, nil
}