<?xml version=“1.0” ?> <!– Copyright © 1996-2016, F5 Networks, Inc., Seattle, Washington. All rights reserved.

F5, F5 Networks, the F5 logo, BIG-IP, 3-DNS, iControl, GLOBAL-SITE, SEE-IT, EDGE-FX, FireGuard, Internet Control Architecture, IP Application Switch, iRules, PACKET VELOCITY, SYN Check, CONTROL YOUR WORLD, OneConnect, ZoneRunner, uRoam, FirePass, and TrafficShield are registered trademarks or trademarks of F5 Networks, Inc., in the U.S. and certain other countries.

All other trademarks mentioned in this document are the property of their respective owners. F5 Networks' trademarks may not be used in connection with any product or service except as permitted in writing by F5.

–> <definitions name=“PEM.ServiceChainEndpoint”

targetNamespace="urn:iControl"
xmlns:tns="urn:iControl"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns="http://schemas.xmlsoap.org/wsdl/">

<!– types –>

<types>

<xsd:schema targetNamespace='urn:iControl'
        xmlns='http://www.w3.org/2001/XMLSchema'
        xmlns:SOAP-ENC='http://schemas.xmlsoap.org/soap/encoding/'
        xmlns:wsdl='http://schemas.xmlsoap.org/wsdl/'>
        <xsd:complexType name="Common.ULongSequenceSequence">
                <xsd:complexContent>
                        <xsd:restriction base='SOAP-ENC:Array'>
                                <xsd:attribute ref='SOAP-ENC:arrayType' wsdl:arrayType='tns:Common.ULongSequence[]'/>
                        </xsd:restriction>
                </xsd:complexContent>
        </xsd:complexType>
        <xsd:complexType name="Common.StringSequence">
                <xsd:complexContent>
                        <xsd:restriction base='SOAP-ENC:Array'>
                                <xsd:attribute ref='SOAP-ENC:arrayType' wsdl:arrayType='xsd:string[]'/>
                        </xsd:restriction>
                </xsd:complexContent>
        </xsd:complexType>
        <xsd:complexType name="Common.ULongSequence">
                <xsd:complexContent>
                        <xsd:restriction base='SOAP-ENC:Array'>
                                <xsd:attribute ref='SOAP-ENC:arrayType' wsdl:arrayType='xsd:long[]'/>
                        </xsd:restriction>
                </xsd:complexContent>
        </xsd:complexType>
        <xsd:complexType name="PEM.ServiceChainEndpoint.ServiceOptionTypeSequence">
                <xsd:complexContent>
                        <xsd:restriction base='SOAP-ENC:Array'>
                                <xsd:attribute ref='SOAP-ENC:arrayType' wsdl:arrayType='tns:PEM.ServiceChainEndpoint.ServiceOptionType[]'/>
                        </xsd:restriction>
                </xsd:complexContent>
        </xsd:complexType>
        <xsd:complexType name="Common.StringSequenceSequence">
                <xsd:complexContent>
                        <xsd:restriction base='SOAP-ENC:Array'>
                                <xsd:attribute ref='SOAP-ENC:arrayType' wsdl:arrayType='tns:Common.StringSequence[]'/>
                        </xsd:restriction>
                </xsd:complexContent>
        </xsd:complexType>
        <xsd:complexType name="PEM.ServiceChainEndpoint.ServiceOptionTypeSequenceSequence">
                <xsd:complexContent>
                        <xsd:restriction base='SOAP-ENC:Array'>
                                <xsd:attribute ref='SOAP-ENC:arrayType' wsdl:arrayType='tns:PEM.ServiceChainEndpoint.ServiceOptionTypeSequence[]'/>
                        </xsd:restriction>
                </xsd:complexContent>
        </xsd:complexType>
        <xsd:simpleType name="PEM.ServiceChainEndpoint.ServiceOptionType">
                <xsd:restriction base="xsd:string">
                        <xsd:enumeration value="SERVICE_OPTION_TYPE_UNKNOWN">
                                <xsd:annotation>
                                        <xsd:documentation>SERVICE_OPTION_TYPE_UNKNOWN</xsd:documentation>
                                </xsd:annotation>
                        </xsd:enumeration>
                        <xsd:enumeration value="SERVICE_OPTION_TYPE_OPTIONAL">
                                <xsd:annotation>
                                        <xsd:documentation>SERVICE_OPTION_TYPE_OPTIONAL</xsd:documentation>
                                </xsd:annotation>
                        </xsd:enumeration>
                        <xsd:enumeration value="SERVICE_OPTION_TYPE_MANDATORY">
                                <xsd:annotation>
                                        <xsd:documentation>SERVICE_OPTION_TYPE_MANDATORY</xsd:documentation>
                                </xsd:annotation>
                        </xsd:enumeration>
                </xsd:restriction>
        </xsd:simpleType>
</xsd:schema>

</types>

<!– message –>

<message name=“PEM.ServiceChainEndpoint.get_listRequest”> </message> <message name=“PEM.ServiceChainEndpoint.get_listResponse”>

<part name="return" type="tns:Common.StringSequence"/>

</message>

<message name=“PEM.ServiceChainEndpoint.createRequest”>

<part name="endpoints" type="tns:Common.StringSequence"/>

</message> <message name=“PEM.ServiceChainEndpoint.createResponse”> </message>

<message name=“PEM.ServiceChainEndpoint.delete_service_chain_endpointRequest”>

<part name="endpoints" type="tns:Common.StringSequence"/>

</message> <message name=“PEM.ServiceChainEndpoint.delete_service_chain_endpointResponse”> </message>

<message name=“PEM.ServiceChainEndpoint.delete_all_service_chain_endpointsRequest”> </message> <message name=“PEM.ServiceChainEndpoint.delete_all_service_chain_endpointsResponse”> </message>

<message name=“PEM.ServiceChainEndpoint.get_service_endpointRequest”>

<part name="endpoints" type="tns:Common.StringSequence"/>

</message> <message name=“PEM.ServiceChainEndpoint.get_service_endpointResponse”>

<part name="return" type="tns:Common.StringSequenceSequence"/>

</message>

<message name=“PEM.ServiceChainEndpoint.add_service_endpointRequest”>

<part name="endpoints" type="tns:Common.StringSequence"/>
<part name="service_endpoints" type="tns:Common.StringSequenceSequence"/>
<part name="vlans" type="tns:Common.StringSequenceSequence"/>
<part name="to_endpoints" type="tns:Common.StringSequenceSequence"/>
<part name="orders" type="tns:Common.ULongSequenceSequence"/>

</message> <message name=“PEM.ServiceChainEndpoint.add_service_endpointResponse”> </message>

<message name=“PEM.ServiceChainEndpoint.remove_service_endpointRequest”>

<part name="endpoints" type="tns:Common.StringSequence"/>
<part name="service_endpoints" type="tns:Common.StringSequenceSequence"/>

</message> <message name=“PEM.ServiceChainEndpoint.remove_service_endpointResponse”> </message>

<message name=“PEM.ServiceChainEndpoint.remove_all_service_endpointsRequest”>

<part name="endpoints" type="tns:Common.StringSequence"/>

</message> <message name=“PEM.ServiceChainEndpoint.remove_all_service_endpointsResponse”> </message>

<message name=“PEM.ServiceChainEndpoint.set_service_endpoint_option_typeRequest”>

<part name="endpoints" type="tns:Common.StringSequence"/>
<part name="service_endpoints" type="tns:Common.StringSequenceSequence"/>
<part name="types" type="tns:PEM.ServiceChainEndpoint.ServiceOptionTypeSequenceSequence"/>

</message> <message name=“PEM.ServiceChainEndpoint.set_service_endpoint_option_typeResponse”> </message>

<message name=“PEM.ServiceChainEndpoint.get_service_endpoint_option_typeRequest”>

<part name="endpoints" type="tns:Common.StringSequence"/>
<part name="service_endpoints" type="tns:Common.StringSequenceSequence"/>

</message> <message name=“PEM.ServiceChainEndpoint.get_service_endpoint_option_typeResponse”>

<part name="return" type="tns:PEM.ServiceChainEndpoint.ServiceOptionTypeSequenceSequence"/>

</message>

<message name=“PEM.ServiceChainEndpoint.set_service_endpoint_from_vlanRequest”>

<part name="endpoints" type="tns:Common.StringSequence"/>
<part name="service_endpoints" type="tns:Common.StringSequenceSequence"/>
<part name="vlans" type="tns:Common.StringSequenceSequence"/>

</message> <message name=“PEM.ServiceChainEndpoint.set_service_endpoint_from_vlanResponse”> </message>

<message name=“PEM.ServiceChainEndpoint.get_service_endpoint_from_vlanRequest”>

<part name="endpoints" type="tns:Common.StringSequence"/>
<part name="service_endpoints" type="tns:Common.StringSequenceSequence"/>

</message> <message name=“PEM.ServiceChainEndpoint.get_service_endpoint_from_vlanResponse”>

<part name="return" type="tns:Common.StringSequenceSequence"/>

</message>

<message name=“PEM.ServiceChainEndpoint.set_service_endpoint_to_endpointRequest”>

<part name="endpoints" type="tns:Common.StringSequence"/>
<part name="service_endpoints" type="tns:Common.StringSequenceSequence"/>
<part name="to_endpoints" type="tns:Common.StringSequenceSequence"/>

</message> <message name=“PEM.ServiceChainEndpoint.set_service_endpoint_to_endpointResponse”> </message>

<message name=“PEM.ServiceChainEndpoint.get_service_endpoint_to_endpointRequest”>

<part name="endpoints" type="tns:Common.StringSequence"/>
<part name="service_endpoints" type="tns:Common.StringSequenceSequence"/>

</message> <message name=“PEM.ServiceChainEndpoint.get_service_endpoint_to_endpointResponse”>

<part name="return" type="tns:Common.StringSequenceSequence"/>

</message>

<message name=“PEM.ServiceChainEndpoint.set_service_endpoint_orderRequest”>

<part name="endpoints" type="tns:Common.StringSequence"/>
<part name="service_endpoints" type="tns:Common.StringSequenceSequence"/>
<part name="orders" type="tns:Common.ULongSequenceSequence"/>

</message> <message name=“PEM.ServiceChainEndpoint.set_service_endpoint_orderResponse”> </message>

<message name=“PEM.ServiceChainEndpoint.get_service_endpoint_orderRequest”>

<part name="endpoints" type="tns:Common.StringSequence"/>
<part name="service_endpoints" type="tns:Common.StringSequenceSequence"/>

</message> <message name=“PEM.ServiceChainEndpoint.get_service_endpoint_orderResponse”>

<part name="return" type="tns:Common.ULongSequenceSequence"/>

</message>

<message name=“PEM.ServiceChainEndpoint.set_service_endpoint_steering_policyRequest”>

<part name="chains" type="tns:Common.StringSequence"/>
<part name="endpoints" type="tns:Common.StringSequenceSequence"/>
<part name="values" type="tns:Common.StringSequenceSequence"/>

</message> <message name=“PEM.ServiceChainEndpoint.set_service_endpoint_steering_policyResponse”> </message>

<message name=“PEM.ServiceChainEndpoint.get_service_endpoint_steering_policyRequest”>

<part name="chains" type="tns:Common.StringSequence"/>
<part name="endpoints" type="tns:Common.StringSequenceSequence"/>

</message> <message name=“PEM.ServiceChainEndpoint.get_service_endpoint_steering_policyResponse”>

<part name="return" type="tns:Common.StringSequenceSequence"/>

</message>

<message name=“PEM.ServiceChainEndpoint.set_service_endpoint_internal_virtual_serverRequest”>

<part name="chains" type="tns:Common.StringSequence"/>
<part name="endpoints" type="tns:Common.StringSequenceSequence"/>
<part name="virtual_servers" type="tns:Common.StringSequenceSequence"/>

</message> <message name=“PEM.ServiceChainEndpoint.set_service_endpoint_internal_virtual_serverResponse”> </message>

<message name=“PEM.ServiceChainEndpoint.get_service_endpoint_internal_virtual_serverRequest”>

<part name="chains" type="tns:Common.StringSequence"/>
<part name="endpoints" type="tns:Common.StringSequenceSequence"/>

</message> <message name=“PEM.ServiceChainEndpoint.get_service_endpoint_internal_virtual_serverResponse”>

<part name="return" type="tns:Common.StringSequenceSequence"/>

</message>

<message name=“PEM.ServiceChainEndpoint.get_versionRequest”> </message> <message name=“PEM.ServiceChainEndpoint.get_versionResponse”>

<part name="return" type="xsd:string"/>

</message>

<!– portType –>

<portType name=“PEM.ServiceChainEndpointPortType”>

       <operation name="get_list">
       <documentation>
Gets a list of all service chain endpoints.

               </documentation>
               <input message="tns:PEM.ServiceChainEndpoint.get_listRequest"/>
               <output message="tns:PEM.ServiceChainEndpoint.get_listResponse"/>
       </operation>
       <operation name="create">
       <documentation>
Creates a set of PEM service chain endpoints.

               </documentation>
               <input message="tns:PEM.ServiceChainEndpoint.createRequest"/>
               <output message="tns:PEM.ServiceChainEndpoint.createResponse"/>
       </operation>
       <operation name="delete_service_chain_endpoint">
       <documentation>
Deletes the specified service chain endpoints.

               </documentation>
               <input message="tns:PEM.ServiceChainEndpoint.delete_service_chain_endpointRequest"/>
               <output message="tns:PEM.ServiceChainEndpoint.delete_service_chain_endpointResponse"/>
       </operation>
       <operation name="delete_all_service_chain_endpoints">
       <documentation>
Deletes all user defined service chain endpoints.

               </documentation>
               <input message="tns:PEM.ServiceChainEndpoint.delete_all_service_chain_endpointsRequest"/>
               <output message="tns:PEM.ServiceChainEndpoint.delete_all_service_chain_endpointsResponse"/>
       </operation>
       <operation name="get_service_endpoint">
       <documentation>
Gets a set of service endpoints for the specified 
service chain endpoints.

               </documentation>
               <input message="tns:PEM.ServiceChainEndpoint.get_service_endpointRequest"/>
               <output message="tns:PEM.ServiceChainEndpoint.get_service_endpointResponse"/>
       </operation>
       <operation name="add_service_endpoint">
       <documentation>
Adds a set of service endpoints for the specified 
service chain endpoints. The orders need to be unique upon 
creation. An error is reported if two service endpoints are 
configured with the same order.

               </documentation>
               <input message="tns:PEM.ServiceChainEndpoint.add_service_endpointRequest"/>
               <output message="tns:PEM.ServiceChainEndpoint.add_service_endpointResponse"/>
       </operation>
       <operation name="remove_service_endpoint">
       <documentation>
Removes the specified service endpoints for the specified  
service chain endpoints.

               </documentation>
               <input message="tns:PEM.ServiceChainEndpoint.remove_service_endpointRequest"/>
               <output message="tns:PEM.ServiceChainEndpoint.remove_service_endpointResponse"/>
       </operation>
       <operation name="remove_all_service_endpoints">
       <documentation>
Removes all service endpoints for the specified 
service chain endpoints.

               </documentation>
               <input message="tns:PEM.ServiceChainEndpoint.remove_all_service_endpointsRequest"/>
               <output message="tns:PEM.ServiceChainEndpoint.remove_all_service_endpointsResponse"/>
       </operation>
       <operation name="set_service_endpoint_option_type">
       <documentation>
Sets the service option types for the specified 
service endpoints when a service endpoint is not available 
(i.e., is down). You can configure the following options: 
optional and mandatory. The default value is optional.

               </documentation>
               <input message="tns:PEM.ServiceChainEndpoint.set_service_endpoint_option_typeRequest"/>
               <output message="tns:PEM.ServiceChainEndpoint.set_service_endpoint_option_typeResponse"/>
       </operation>
       <operation name="get_service_endpoint_option_type">
       <documentation>
Gets the service option types for the specified 
service endpoints.

               </documentation>
               <input message="tns:PEM.ServiceChainEndpoint.get_service_endpoint_option_typeRequest"/>
               <output message="tns:PEM.ServiceChainEndpoint.get_service_endpoint_option_typeResponse"/>
       </operation>
       <operation name="set_service_endpoint_from_vlan">
       <documentation>
Sets the from-vlans for the specified service endpoints. 
A from-vlan specifies the vlan that the traffic comes from. 
Note: The vlan has to exist before you can set a from-vlan field.

               </documentation>
               <input message="tns:PEM.ServiceChainEndpoint.set_service_endpoint_from_vlanRequest"/>
               <output message="tns:PEM.ServiceChainEndpoint.set_service_endpoint_from_vlanResponse"/>
       </operation>
       <operation name="get_service_endpoint_from_vlan">
       <documentation>
Gets the from-vlans for the specified service endpoints.

               </documentation>
               <input message="tns:PEM.ServiceChainEndpoint.get_service_endpoint_from_vlanRequest"/>
               <output message="tns:PEM.ServiceChainEndpoint.get_service_endpoint_from_vlanResponse"/>
       </operation>
       <operation name="set_service_endpoint_to_endpoint">
       <documentation>
Sets the to-endpoints for the specified service endpoints. 
A to-endpoint is the actual forwarding-endpoint that the 
traffic goes to. Note: You have to create a valid PEM 
forwarding-endpoint before you can add to-endpoint to a 
service endpoint.

               </documentation>
               <input message="tns:PEM.ServiceChainEndpoint.set_service_endpoint_to_endpointRequest"/>
               <output message="tns:PEM.ServiceChainEndpoint.set_service_endpoint_to_endpointResponse"/>
       </operation>
       <operation name="get_service_endpoint_to_endpoint">
       <documentation>
Gets the to-endpoints for the specified service endpoints.

               </documentation>
               <input message="tns:PEM.ServiceChainEndpoint.get_service_endpoint_to_endpointRequest"/>
               <output message="tns:PEM.ServiceChainEndpoint.get_service_endpoint_to_endpointResponse"/>
       </operation>
       <operation name="set_service_endpoint_order">
       <documentation>
Sets the orders for the specified service endpoints. 
A service endpoint must have an order from 1 up to 2^32-1.
The lower the service endpoint order is, the higher its 
precedence is (i.e., traffic will pass though it before other 
higher order service endpoints).

               </documentation>
               <input message="tns:PEM.ServiceChainEndpoint.set_service_endpoint_orderRequest"/>
               <output message="tns:PEM.ServiceChainEndpoint.set_service_endpoint_orderResponse"/>
       </operation>
       <operation name="get_service_endpoint_order">
       <documentation>
Gets the orders for the specified service endpoints.

               </documentation>
               <input message="tns:PEM.ServiceChainEndpoint.get_service_endpoint_orderRequest"/>
               <output message="tns:PEM.ServiceChainEndpoint.get_service_endpoint_orderResponse"/>
       </operation>
       <operation name="set_service_endpoint_steering_policy">
       <documentation>
Sets the steering policies for the specified service endpoints.
Specifies the steering policy for the service endpoint. This 
refers to the existing object pem policy. If the policy rule 
matches, the actions are applied on the intermediate flows in 
the service chain. The forwarding action in the steering policy 
can overwrite any default forwarding action configured in the 
service endpoint. The service chain action in a steering policy 
is not allowed.

               </documentation>
               <input message="tns:PEM.ServiceChainEndpoint.set_service_endpoint_steering_policyRequest"/>
               <output message="tns:PEM.ServiceChainEndpoint.set_service_endpoint_steering_policyResponse"/>
       </operation>
       <operation name="get_service_endpoint_steering_policy">
       <documentation>
Gets the steering policies for the specified service endpoints.

               </documentation>
               <input message="tns:PEM.ServiceChainEndpoint.get_service_endpoint_steering_policyRequest"/>
               <output message="tns:PEM.ServiceChainEndpoint.get_service_endpoint_steering_policyResponse"/>
       </operation>
       <operation name="set_service_endpoint_internal_virtual_server">
       <documentation>
Sets the internal virtual servers for the specified service 
endpoints.
Specifies the internal virtual server attribute on which icap 
profile is enabled. If the action is to forward to icap then the 
flow is forwarded to the pool members in the virtual server.

               </documentation>
               <input message="tns:PEM.ServiceChainEndpoint.set_service_endpoint_internal_virtual_serverRequest"/>
               <output message="tns:PEM.ServiceChainEndpoint.set_service_endpoint_internal_virtual_serverResponse"/>
       </operation>
       <operation name="get_service_endpoint_internal_virtual_server">
       <documentation>
Gets the internal virtual servers for the specified service 
endpoints.

               </documentation>
               <input message="tns:PEM.ServiceChainEndpoint.get_service_endpoint_internal_virtual_serverRequest"/>
               <output message="tns:PEM.ServiceChainEndpoint.get_service_endpoint_internal_virtual_serverResponse"/>
       </operation>
       <operation name="get_version">
       <documentation>
Gets the version information for this interface.

               </documentation>
               <input message="tns:PEM.ServiceChainEndpoint.get_versionRequest"/>
               <output message="tns:PEM.ServiceChainEndpoint.get_versionResponse"/>
       </operation>

</portType>

<!– binding –>

<binding name=“PEM.ServiceChainEndpointBinding” type=“tns:PEM.ServiceChainEndpointPortType”>

       <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
       <operation name="get_list">
       <documentation>
Gets a list of all service chain endpoints.

               </documentation>
               <soap:operation soapAction="urn:iControl:PEM/ServiceChainEndpoint"/>
               <input>
                       <soap:body
                               use="encoded"
                               namespace="urn:iControl:PEM/ServiceChainEndpoint"
                               encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
               </input>
               <output>
                       <soap:body
                               use="encoded"
                               namespace="urn:iControl:PEM/ServiceChainEndpoint"
                               encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
               </output>
       </operation>

       <operation name="create">
       <documentation>
Creates a set of PEM service chain endpoints.

               </documentation>
               <soap:operation soapAction="urn:iControl:PEM/ServiceChainEndpoint"/>
               <input>
                       <soap:body
                               use="encoded"
                               namespace="urn:iControl:PEM/ServiceChainEndpoint"
                               encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
               </input>
               <output>
                       <soap:body
                               use="encoded"
                               namespace="urn:iControl:PEM/ServiceChainEndpoint"
                               encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
               </output>
       </operation>

       <operation name="delete_service_chain_endpoint">
       <documentation>
Deletes the specified service chain endpoints.

               </documentation>
               <soap:operation soapAction="urn:iControl:PEM/ServiceChainEndpoint"/>
               <input>
                       <soap:body
                               use="encoded"
                               namespace="urn:iControl:PEM/ServiceChainEndpoint"
                               encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
               </input>
               <output>
                       <soap:body
                               use="encoded"
                               namespace="urn:iControl:PEM/ServiceChainEndpoint"
                               encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
               </output>
       </operation>

       <operation name="delete_all_service_chain_endpoints">
       <documentation>
Deletes all user defined service chain endpoints.

               </documentation>
               <soap:operation soapAction="urn:iControl:PEM/ServiceChainEndpoint"/>
               <input>
                       <soap:body
                               use="encoded"
                               namespace="urn:iControl:PEM/ServiceChainEndpoint"
                               encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
               </input>
               <output>
                       <soap:body
                               use="encoded"
                               namespace="urn:iControl:PEM/ServiceChainEndpoint"
                               encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
               </output>
       </operation>

       <operation name="get_service_endpoint">
       <documentation>
Gets a set of service endpoints for the specified 
service chain endpoints.

               </documentation>
               <soap:operation soapAction="urn:iControl:PEM/ServiceChainEndpoint"/>
               <input>
                       <soap:body
                               use="encoded"
                               namespace="urn:iControl:PEM/ServiceChainEndpoint"
                               encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
               </input>
               <output>
                       <soap:body
                               use="encoded"
                               namespace="urn:iControl:PEM/ServiceChainEndpoint"
                               encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
               </output>
       </operation>

       <operation name="add_service_endpoint">
       <documentation>
Adds a set of service endpoints for the specified 
service chain endpoints. The orders need to be unique upon 
creation. An error is reported if two service endpoints are 
configured with the same order.

               </documentation>
               <soap:operation soapAction="urn:iControl:PEM/ServiceChainEndpoint"/>
               <input>
                       <soap:body
                               use="encoded"
                               namespace="urn:iControl:PEM/ServiceChainEndpoint"
                               encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
               </input>
               <output>
                       <soap:body
                               use="encoded"
                               namespace="urn:iControl:PEM/ServiceChainEndpoint"
                               encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
               </output>
       </operation>

       <operation name="remove_service_endpoint">
       <documentation>
Removes the specified service endpoints for the specified  
service chain endpoints.

               </documentation>
               <soap:operation soapAction="urn:iControl:PEM/ServiceChainEndpoint"/>
               <input>
                       <soap:body
                               use="encoded"
                               namespace="urn:iControl:PEM/ServiceChainEndpoint"
                               encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
               </input>
               <output>
                       <soap:body
                               use="encoded"
                               namespace="urn:iControl:PEM/ServiceChainEndpoint"
                               encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
               </output>
       </operation>

       <operation name="remove_all_service_endpoints">
       <documentation>
Removes all service endpoints for the specified 
service chain endpoints.

               </documentation>
               <soap:operation soapAction="urn:iControl:PEM/ServiceChainEndpoint"/>
               <input>
                       <soap:body
                               use="encoded"
                               namespace="urn:iControl:PEM/ServiceChainEndpoint"
                               encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
               </input>
               <output>
                       <soap:body
                               use="encoded"
                               namespace="urn:iControl:PEM/ServiceChainEndpoint"
                               encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
               </output>
       </operation>

       <operation name="set_service_endpoint_option_type">
       <documentation>
Sets the service option types for the specified 
service endpoints when a service endpoint is not available 
(i.e., is down). You can configure the following options: 
optional and mandatory. The default value is optional.

               </documentation>
               <soap:operation soapAction="urn:iControl:PEM/ServiceChainEndpoint"/>
               <input>
                       <soap:body
                               use="encoded"
                               namespace="urn:iControl:PEM/ServiceChainEndpoint"
                               encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
               </input>
               <output>
                       <soap:body
                               use="encoded"
                               namespace="urn:iControl:PEM/ServiceChainEndpoint"
                               encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
               </output>
       </operation>

       <operation name="get_service_endpoint_option_type">
       <documentation>
Gets the service option types for the specified 
service endpoints.

               </documentation>
               <soap:operation soapAction="urn:iControl:PEM/ServiceChainEndpoint"/>
               <input>
                       <soap:body
                               use="encoded"
                               namespace="urn:iControl:PEM/ServiceChainEndpoint"
                               encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
               </input>
               <output>
                       <soap:body
                               use="encoded"
                               namespace="urn:iControl:PEM/ServiceChainEndpoint"
                               encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
               </output>
       </operation>

       <operation name="set_service_endpoint_from_vlan">
       <documentation>
Sets the from-vlans for the specified service endpoints. 
A from-vlan specifies the vlan that the traffic comes from. 
Note: The vlan has to exist before you can set a from-vlan field.

               </documentation>
               <soap:operation soapAction="urn:iControl:PEM/ServiceChainEndpoint"/>
               <input>
                       <soap:body
                               use="encoded"
                               namespace="urn:iControl:PEM/ServiceChainEndpoint"
                               encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
               </input>
               <output>
                       <soap:body
                               use="encoded"
                               namespace="urn:iControl:PEM/ServiceChainEndpoint"
                               encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
               </output>
       </operation>

       <operation name="get_service_endpoint_from_vlan">
       <documentation>
Gets the from-vlans for the specified service endpoints.

               </documentation>
               <soap:operation soapAction="urn:iControl:PEM/ServiceChainEndpoint"/>
               <input>
                       <soap:body
                               use="encoded"
                               namespace="urn:iControl:PEM/ServiceChainEndpoint"
                               encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
               </input>
               <output>
                       <soap:body
                               use="encoded"
                               namespace="urn:iControl:PEM/ServiceChainEndpoint"
                               encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
               </output>
       </operation>

       <operation name="set_service_endpoint_to_endpoint">
       <documentation>
Sets the to-endpoints for the specified service endpoints. 
A to-endpoint is the actual forwarding-endpoint that the 
traffic goes to. Note: You have to create a valid PEM 
forwarding-endpoint before you can add to-endpoint to a 
service endpoint.

               </documentation>
               <soap:operation soapAction="urn:iControl:PEM/ServiceChainEndpoint"/>
               <input>
                       <soap:body
                               use="encoded"
                               namespace="urn:iControl:PEM/ServiceChainEndpoint"
                               encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
               </input>
               <output>
                       <soap:body
                               use="encoded"
                               namespace="urn:iControl:PEM/ServiceChainEndpoint"
                               encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
               </output>
       </operation>

       <operation name="get_service_endpoint_to_endpoint">
       <documentation>
Gets the to-endpoints for the specified service endpoints.

               </documentation>
               <soap:operation soapAction="urn:iControl:PEM/ServiceChainEndpoint"/>
               <input>
                       <soap:body
                               use="encoded"
                               namespace="urn:iControl:PEM/ServiceChainEndpoint"
                               encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
               </input>
               <output>
                       <soap:body
                               use="encoded"
                               namespace="urn:iControl:PEM/ServiceChainEndpoint"
                               encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
               </output>
       </operation>

       <operation name="set_service_endpoint_order">
       <documentation>
Sets the orders for the specified service endpoints. 
A service endpoint must have an order from 1 up to 2^32-1.
The lower the service endpoint order is, the higher its 
precedence is (i.e., traffic will pass though it before other 
higher order service endpoints).

               </documentation>
               <soap:operation soapAction="urn:iControl:PEM/ServiceChainEndpoint"/>
               <input>
                       <soap:body
                               use="encoded"
                               namespace="urn:iControl:PEM/ServiceChainEndpoint"
                               encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
               </input>
               <output>
                       <soap:body
                               use="encoded"
                               namespace="urn:iControl:PEM/ServiceChainEndpoint"
                               encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
               </output>
       </operation>

       <operation name="get_service_endpoint_order">
       <documentation>
Gets the orders for the specified service endpoints.

               </documentation>
               <soap:operation soapAction="urn:iControl:PEM/ServiceChainEndpoint"/>
               <input>
                       <soap:body
                               use="encoded"
                               namespace="urn:iControl:PEM/ServiceChainEndpoint"
                               encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
               </input>
               <output>
                       <soap:body
                               use="encoded"
                               namespace="urn:iControl:PEM/ServiceChainEndpoint"
                               encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
               </output>
       </operation>

       <operation name="set_service_endpoint_steering_policy">
       <documentation>
Sets the steering policies for the specified service endpoints.
Specifies the steering policy for the service endpoint. This 
refers to the existing object pem policy. If the policy rule 
matches, the actions are applied on the intermediate flows in 
the service chain. The forwarding action in the steering policy 
can overwrite any default forwarding action configured in the 
service endpoint. The service chain action in a steering policy 
is not allowed.

               </documentation>
               <soap:operation soapAction="urn:iControl:PEM/ServiceChainEndpoint"/>
               <input>
                       <soap:body
                               use="encoded"
                               namespace="urn:iControl:PEM/ServiceChainEndpoint"
                               encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
               </input>
               <output>
                       <soap:body
                               use="encoded"
                               namespace="urn:iControl:PEM/ServiceChainEndpoint"
                               encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
               </output>
       </operation>

       <operation name="get_service_endpoint_steering_policy">
       <documentation>
Gets the steering policies for the specified service endpoints.

               </documentation>
               <soap:operation soapAction="urn:iControl:PEM/ServiceChainEndpoint"/>
               <input>
                       <soap:body
                               use="encoded"
                               namespace="urn:iControl:PEM/ServiceChainEndpoint"
                               encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
               </input>
               <output>
                       <soap:body
                               use="encoded"
                               namespace="urn:iControl:PEM/ServiceChainEndpoint"
                               encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
               </output>
       </operation>

       <operation name="set_service_endpoint_internal_virtual_server">
       <documentation>
Sets the internal virtual servers for the specified service 
endpoints.
Specifies the internal virtual server attribute on which icap 
profile is enabled. If the action is to forward to icap then the 
flow is forwarded to the pool members in the virtual server.

               </documentation>
               <soap:operation soapAction="urn:iControl:PEM/ServiceChainEndpoint"/>
               <input>
                       <soap:body
                               use="encoded"
                               namespace="urn:iControl:PEM/ServiceChainEndpoint"
                               encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
               </input>
               <output>
                       <soap:body
                               use="encoded"
                               namespace="urn:iControl:PEM/ServiceChainEndpoint"
                               encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
               </output>
       </operation>

       <operation name="get_service_endpoint_internal_virtual_server">
       <documentation>
Gets the internal virtual servers for the specified service 
endpoints.

               </documentation>
               <soap:operation soapAction="urn:iControl:PEM/ServiceChainEndpoint"/>
               <input>
                       <soap:body
                               use="encoded"
                               namespace="urn:iControl:PEM/ServiceChainEndpoint"
                               encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
               </input>
               <output>
                       <soap:body
                               use="encoded"
                               namespace="urn:iControl:PEM/ServiceChainEndpoint"
                               encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
               </output>
       </operation>

       <operation name="get_version">
       <documentation>
Gets the version information for this interface.

               </documentation>
               <soap:operation soapAction="urn:iControl:PEM/ServiceChainEndpoint"/>
               <input>
                       <soap:body
                               use="encoded"
                               namespace="urn:iControl:PEM/ServiceChainEndpoint"
                               encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
               </input>
               <output>
                       <soap:body
                               use="encoded"
                               namespace="urn:iControl:PEM/ServiceChainEndpoint"
                               encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
               </output>
       </operation>

</binding>

<!– service –>

<service name=“PEM.ServiceChainEndpoint”>

       <documentation>
You can use the service chain endpoint component to configure 
service chain endpoint definitions for the Policy Enforcement 
Manager (PEM). Each service chain endpoint consists of one or 
more service endpoints, where a service endpoint consists of a 
non-zero integer order, a valid PEM forwarding-endpoint 
(to-endpoint) and an existing vlan (from-vlan). When you configure 
a BIG-IP that has a service chain endpoint with multiple 
service endpoints, then the traffic will pass through these  
service endpoints in their given order (from low to high) before 
leaving the BIG-IP.
Note: You must create a valid forwarding-endpoint and a valid vlan 
before you can create a service endpoint. You must also give each 
service endpoint an order from 1 up to 2^32-1.

               </documentation>
       <port name="PEM.ServiceChainEndpointPort" binding="tns:PEM.ServiceChainEndpointBinding">
               <soap:address location="https://url_to_service"/>
       </port>

</service> </definitions>