A Sample SLA XML File

The following is a complete sample Service Level Agreement (SLA) XML file for the Parlay X 2.1 Short Messaging Communication service. It contains a <serviceContract>, a <serviceTypeContract>, and a <composedServiceContract>.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Sla applicationGroupID="default_app_group"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:noNamespaceSchemaLocation="app_sla_file.xsd">
    <serviceContract>
        <startDate>2005-07-22</startDate>
        <endDate>9999-12-31</endDate>
        <scs>com.bea.wlcp.wlng.px21.plugin.SendSmsPlugin</scs>
        <contract>
            <guarantee>
                <methodGuarantee>
                    <methodNameGuarantee>sendSmsLogo</methodNameGuarantee>
                    <reqLimitGuarantee>10000</reqLimitGuarantee>
                    <timePeriodGuarantee>80000</timePeriodGuarantee>
                </methodGuarantee>
            </guarantee>
            <methodRestrictions>
                <methodRestriction>
                    <methodName>sendSms</methodName>
                    <rate>
                        <reqLimit>9000</reqLimit>
                        <timePeriod>1000</timePeriod>
                    </rate>
                    <quota>
                        <qtaLimit>900000</qtaLimit>
                        <days>1</days>
                        <limitExceedOK>false</limitExceedOK>
                    </quota>
                </methodRestriction>
            </methodRestrictions>
            <params>
                <methodParameters>
                    <methodName>sendSms</methodName>
                    <parameterName>arg0.message</parameterName>
                    <parameterValues>foo</parameterValues>
                    <acceptValues>false</acceptValues>
                </methodParameters>
            </params>
            <methodAccess>
                <blacklistedMethod>
                    <methodName>sendSmsLogo</methodName>
                </blacklistedMethod>
            </methodAccess>
            <requestContext>
                <contextAttribute>
                    <attributeName>key1</attributeName>
                    <attributeValue>value1</attributeValue>
                </contextAttribute>
            </requestContext>
            <resultRestrictions>
                <resultRestriction>
                    <methodName>getSmsDeliveryStatus</methodName>
               <parameterRemovalName>arg0.requestIdentifier</parameterRemovalName>
                    <parameterMatch>
                        <parameterName>arg0.requestIdentifier</parameterName>
                        <parameterValues>
                            <parameterValue>demo</parameterValue>
                        </parameterValues>
                    </parameterMatch>
                    <filterMethod>BLACK_LIST</filterMethod>
                </resultRestriction>
            </resultRestrictions>
        </contract>
        <overrides>
            <override>
                <startDate>2010-11-30</startDate>
                <endDate>2012-11-30</endDate>
                <startDow>2</startDow>
                <endDow>6</endDow>
                <contract>
                    <guarantee>
                        <methodGuarantee>
                            <methodNameGuarantee>sendSms</methodNameGuarantee>
                            <reqLimitGuarantee>1000</reqLimitGuarantee>
                            <timePeriodGuarantee>40000</timePeriodGuarantee>
                        </methodGuarantee>
                    </guarantee>
                    <methodRestrictions>
                        <methodRestriction>
                            <methodName>sendSms</methodName>
                            <rate>
                                <reqLimit>500</reqLimit>
                                <timePeriod>1000</timePeriod>
                            </rate>
                            <quota>
                                <qtaLimit>10000</qtaLimit>
                                <days>1</days>
                                <limitExceedOK>false</limitExceedOK>
                            </quota>
                        </methodRestriction>
                    </methodRestrictions>
                    <params>
                        <methodParameters>
                            <methodName>sendSms</methodName>
                            <parameterName>arg0.message</parameterName>
                            <parameterValues>foo2</parameterValues>
                            <acceptValues>false</acceptValues>
                        </methodParameters>
                    </params>
                    <methodAccess>
                        <blacklistedMethod>
                            <methodName>sendSmsLogo</methodName>
                        </blacklistedMethod>
                        <blacklistedMethod>
                            <methodName>sendSmsRingtone</methodName>
                        </blacklistedMethod>
                    </methodAccess>
                    <requestContext>
                        <contextAttribute>
                            <attributeName>key2</attributeName>
                            <attributeValue>value2</attributeValue>
                        </contextAttribute>
                    </requestContext>
                    <resultRestrictions>
                        <resultRestriction>
                            <methodName>getSmsDeliveryStatus</methodName> 
                   <parameterRemovalName>arg0.requestIdentifier</parameterRemovalName>
                            <parameterMatch>
                                <parameterName/>
                                <parameterValues>
                                    <parameterValue>22</parameterValue>
                                    <parameterValue>33</parameterValue>
                                </parameterValues>
                            </parameterMatch>
                            <filterMethod>WHITE_LIST</filterMethod>
                        </resultRestriction>
                    </resultRestrictions>
                </contract>
            </override>
        </overrides>
    </serviceContract>
    <serviceTypeContract>
        <serviceTypeName>Sms</serviceTypeName>
        <startDate>2010-11-30</startDate>
        <endDate>2010-11-30</endDate>
        <rate>
            <reqLimit>1000</reqLimit>
            <timePeriod>1000</timePeriod>
        </rate>
        <quota>
            <qtaLimit>90000</qtaLimit>
            <days>1</days>
            <limitExceedOK>false</limitExceedOK>
        </quota>
    </serviceTypeContract>
    <composedServiceContract>
        <composedServiceName>Messaging</composedServiceName>
        <service>
            <serviceTypeName>Sms</serviceTypeName>
            <method>
                <scs>com.bea.wlcp.wlng.px21.plugin.SendSmsPlugin</scs>
                <methodName>sendSMS</methodName>
            </method>
         </service>
        <service>
            <serviceTypeName>MultiMediaMessage</serviceTypeName>
        </service>
        <startDate>2010-04-17</startDate>
        <endDate>2011-04-17</endDate>
        <rate>
            <reqLimit>50</reqLimit>
            <timePeriod>50</timePeriod>
        </rate>
        <quota>
            <qtaLimit>100</qtaLimit>
            <days>1</days>
            <limitExceedOK>false</limitExceedOK>
        </quota>
    </composedServiceContract>
</Sla>