/**
 * Get Service Status Action Sample
 * Gets the status of the service.
 * Status is one of GREEN, RED representing:
 * GREEN: This API section of the service is operating normally.
 * RED: The service is disrupted.
 *   
 * @param FBAInventoryServiceMWS_Interface $service instance of FBAInventoryServiceMWS_Interface
 * @param mixed $request FBAInventoryServiceMWS_Model_GetServiceStatus or array of parameters
 */
function invokeGetServiceStatus(FBAInventoryServiceMWS_Interface $service, $request)
{
    try {
        $response = $service->getServiceStatus($request);
        echo "Service Response\n";
        echo "=============================================================================\n";
        echo "        GetServiceStatusResponse\n";
        if ($response->isSetGetServiceStatusResult()) {
            echo "            GetServiceStatusResult\n";
            $getServiceStatusResult = $response->getGetServiceStatusResult();
            if ($getServiceStatusResult->isSetStatus()) {
                echo "                Status\n";
                echo "                    " . $getServiceStatusResult->getStatus() . "\n";
            }
            if ($getServiceStatusResult->isSetTimestamp()) {
                echo "                Timestamp\n";
                echo "                    " . $getServiceStatusResult->getTimestamp() . "\n";
            }
        }
        if ($response->isSetResponseMetadata()) {
            echo "            ResponseMetadata\n";
            $responseMetadata = $response->getResponseMetadata();
            if ($responseMetadata->isSetRequestId()) {
                echo "                RequestId\n";
                echo "                    " . $responseMetadata->getRequestId() . "\n";
            }
        }
    } catch (FBAInventoryServiceMWS_Exception $ex) {
        echo "Caught Exception: " . $ex->getMessage() . "\n";
        echo "Response Status Code: " . $ex->getStatusCode() . "\n";
        echo "Error Code: " . $ex->getErrorCode() . "\n";
        echo "Error Type: " . $ex->getErrorType() . "\n";
        echo "Request ID: " . $ex->getRequestId() . "\n";
        echo "XML: " . $ex->getXML() . "\n";
    }
}
function invokeGetServiceStatusInventory(FBAInventoryServiceMWS_Interface $service, $request)
{
    try {
        $response = $service->getServiceStatus($request);
        if ($response->isSetGetServiceStatusResult()) {
            $getServiceStatusResult = $response->getGetServiceStatusResult();
            if ($getServiceStatusResult->isSetStatus()) {
                $theResult = $getServiceStatusResult->getStatus();
                if ($theResult == "GREEN") {
                    $level = "Neutral";
                } else {
                    $level = "Bad";
                }
                $category = "Service Status";
                $title = "Inventory Service Status";
                AmzFBA_Woo_Log($level, $category, $title, $theResult);
            }
        }
    } catch (FBAInventoryServiceMWS_Exception $ex) {
        // echo("XML: " . $ex->getXML() . "\n");
        $level = "Bad";
        $category = "Service Status";
        $title = "Inventory Service Error";
        $info = "Caught Exception: " . $ex->getMessage() . " | Response Status Code: " . $ex->getStatusCode() . " | Error Code: " . $ex->getErrorCode() . " | Error Type: " . $ex->getErrorType() . " | Request ID: " . $ex->getRequestId();
        AmzFBA_Woo_Log($level, $category, $title, $info);
        $badResult = "Error getting service status - please see logs. ";
        SendErrorEmail($category, $info);
    } catch (Exception $e) {
        HandleGenericException("Service Status", $e);
    }
    if (isset($theResult)) {
        $returnmessage = "Current service status: " . $theResult;
    } elseif (isset($badResult)) {
        $returnmessage = $badResult;
    } else {
        $returnmessage = "Could not initiate 'GetServiceStatus'";
    }
    return $returnmessage;
}