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
}