func Read()

in aws-aps-workspace/cmd/resource/resource.go [106:135]


func Read(req handler.Request, prevModel *Model, currentModel *Model) (handler.ProgressEvent, error) {
	// contract test: contract_read_without_create
	if currentModel.Arn == nil {
		return handler.ProgressEvent{
			OperationStatus:  handler.Failed,
			Message:          "Invalid Read: workspace Arn cannot be empty",
			HandlerErrorCode: cloudformation.HandlerErrorCodeNotFound,
		}, nil
	}

	client := internal.NewAPS(req.Session)
	if _, err := readWorkspace(client, currentModel); err != nil {
		return internal.NewFailedEvent(err)
	}
	if _, err := readAlertManagerDefinition(client, currentModel); err != nil {
		if awsErr, ok := err.(awserr.Error); ok {
			if awsErr.Code() != prometheusservice.ErrCodeResourceNotFoundException {
				return internal.NewFailedEvent(err)
			}
		} else {
			return internal.NewFailedEvent(err)
		}
	}

	return handler.ProgressEvent{
		OperationStatus: handler.Success,
		Message:         "Read Complete",
		ResourceModel:   currentModel,
	}, nil
}