Описание структуры системы
Архитектура сервера приложения
Описание подписок на основе селекторов
Описание структуры типов Интегра-Планета-4D
Описание универсальных типов протокола передачи данных в интеграцию
Передача данных об источниках данных происходит по протоколу TCP/IP на транспортном уровне и по протоколу WAMP или SOAP на уровне приложения. В качестве контейнера передаваемой информации используется JSON (WAMP) и/или XML(SOAP).
Для защиты канала передачи информации должны использоваться аппаратные или программные средства, предоставляемые сетевой инфраструктурой или применяемыми операционными системами.
При передаче информации об источниках данных осуществляется передача следующих видов информации:
Нормализованные данные представляются в описании состояний устройств. Данный параметр каждого из типов представляет собой составную конструкцию вида: <комплексное состояние>.<текущее состояние>
Комплексное состояние представлено 5 видами:
- ok – нормальное состояние устройства
- error – ошибочное состояние устройства
- undefined – неизвестное состояние устройства
- alarm – тревожное состояние устройства
- none – неопределенное состояние устройства
Описание универсальных типов системы
Идентификатор устройства | id | type=text |
Название устройства (имя) | name | type=text |
Расположение(координаты) | geo_position | type=point |
Высота установки | geo_height | type=real |
Обслуживающая организация | organization | type=text |
Дополнительная информация | additional_info | type=text |
Контролируемое время отзыва(мс) | max_ping_time_ms | type=int |
Эхо-запрос,мс | ping_time | type=int |
IP адрес | ip | type=text |
Провайдер | provider | type=text |
Дата ввода в эксплуатацию | commisioning | type=text |
Дата последнего ТО/Номер акта | lastMaintence | type=text |
Запланированная дата ТО | plannedMaintence | type=text |
Период ТО | maintencePeriod | type=int |
Состояние устройства | state | type=enum |
Норма | ok.normal | |
Неисправность | error.defective | |
Тревога | alarm.alarm | |
Неизвестно | none.unknown | |
Статус неизвестен | none.stateUnknown | |
Текущие состояние | stateargs | type=Array(text) |
Распознано лицо | ok.recognizedFace |
Обнаружено лицо | ok.detectFace |
Пересечение линии в определенном направлении | alarm.intersectionLineInPredeterminedDirection |
Пересечение линии | alarm.intersectionLine |
Соединение с MSS разорвано | alarm.mssDisconnected |
DeviceManager подключен | ok.dmConnected |
Пожар | alarm.fire |
DeviceManager отключен | alarm.dmDisconnected |
Зафиксировано изменение фона | alarm.backgroundChanged |
Зафиксирована зона с пониженной активностью | alarm.lowActionInZone |
Высокая активность в зоне | alarm.highActionInZone |
Реверс барьер | alarm.reversBarrier |
Диверсия | alarm.sabotage |
Подмена камеры | alarm.cameraChange |
Вскрытие корпуса | alarm.openingTheCase |
Тревожный звонок | alarm.alarmCall |
Зафиксированный объект обнаружен | alarm.fixObjectOn |
Зафиксированный объект потерян | alarm.fixObjectLeft |
Объект обнаружен | alarm.objectOn |
Объект потерян | alarm.objectLeft |
Обнаружены люди | alarm.humansDetect |
Обнаружен человек | alarm.humanDetect |
Нестандартное движение в зоне | alarm.loitering |
Нарушение маршрута | alarm.breachRoute |
Движение с повышенной скоростью | alarm.aggressive |
Люди в запрещенном месте | alarm.prohibitedCrowd |
Толпа людей в запрещенном месте | alarm.crowdInProhibitedPlace |
Зона выход | alarm.zoneOut |
Зона вход | alarm.zoneIn |
Нарушение периметра | alarm.stile |
Движение в зоне путей | alarm.ways |
Обнаружено задымление | alarm.smokescreen |
Зафиксирован автомобиль | alarm.fixedDriveCar |
Движение в зоне | alarm.motionInZone |
Заслон камеры | alarm.barrier |
Неактивный Неисправный | error.inactiveDefective |
Неисправен | error.defectiveCam |
Включен красный сигнал светофора | ok.trafficLightRed |
Включен желтый сигнал светофора | ok.trafficLightYellow |
Включен зеленый сигнал светофора | ok.trafficLightGreen |
Толпа | ok.crowd |
Засвет камеры | ok.highlights |
Нестабильно | ok.notStabilized |
Смещение камеры с домашней позиции | ok.revers |
Расфокусировка камеры | ok.defocusing |
Затемнение камеры | ok.blackout |
Отправление поезда | ok.departureTrain |
Прибытие поезда | ok.arrivingTrain |
Нет движения в зоне | ok.noMovementInZone |
Поезд в зоне | ok.trainInZone |
Датчик движения включен | ok.motionDetectionOn |
Датчик движения выключен | ok.motionDetectionOff |
Зона выход | ok.zoneOut |
Зона вход | ok.zoneIn |
Статус архива: ОШИБКА | ok.archiveError |
Статус архива: НОРМА | ok.archiveNormal |
Вращение | ok.rotation |
Восстановление сигнала | error.flashing |
Не под охраной | ok.inactive |
Ночной режим | ok.grey |
Дневной режим | ok.color |
Объект удален | alarm.objectRemoved |
Цель зафиксирована | ok.targetFixed |
Под охраной | ok.active |
Нормально | ok.normalCam |
Обновление состояния | ok.stateUpdate |
URL | url |
Массив url камеры – основного потока -Команды command type=enum Варианты состояния: - Снять с охраны deactivate - Взять под охрану activate
-Угол обзора камеры fov type=real -Соотношение сторон aspectratio type=real -Глубина архива archieve_length type=real
ПО видеонаблюдения
-Состояние ПО state type=enum Варианты состояния: -Норма ok.normal -Неисправность error.defective - Тревога alarm.alarm - Неизвестно none.unknown
-Время опроса refreshdelay type=int -Порт port type=int -IP адрес ip type=text
Система оповещения
-Расположение(координаты) geo_position type=point -Высота установки geo_height type=real -Обслуживающая организация organization type=text -Дополнительная информация additional_info type=text -Текущие состояние stateargs type=enum -Состояние устройства state type=enum Варианты состояния: -Норма ok.normal -Неисправность error.defective - Тревога alarm.alarm - Неизвестно none.unknown -Тревога перевода alarm.translation -Тестовая тревога alarm.test -Тревога сирена alarm.siren
-Рабочий диапазон effective_range type=int -Приоритет highestPriority type=int -Период обновления refreshMs type=int -Идентификатор устройства id type=text -Название устройства (имя) name type=text -Команды command type=enum Варианты состояния: -Остановить stop -Сирена siren -Тест test -Файл для проигрывания fileToPlay type=text
Охранная сигнализация датчик объема/пожарный датчик
-Идентификатор устройства id type=text -Название устройства (имя) name type=text -Расположение(координаты) geo_position type=point -Высота установки geo_height type=real -Обслуживающая организация organization type=text -Дополнительная информация additional_info type=text -Идентификатор МСС mssGuid type=text -Провайдер provider type=text -Раздел part type=int -Дата последнего ТО/Номер акта control_param type=text -Состояние устройства state type=enum Варианты состояния: -Норма ok.normal -Неисправность error.defective - Тревога alarm.alarm - Неизвестно none.unknown - Статус неизвестен none.stateUnknown -Текущие состояние stateargs type=Array(text) Варианты состояния: - Внимание блокировка alarm.blocked - Выход за границы диапазона alarm.outOfRange - Не под охраной ok.inactive - Открыт ok.unlocked - Разблокировано ok.unblocked - Закрыт ok.locked - Под охраной ok.active -Тест ok.test
-Команды command type=enum Варианты состояния: - Снять с охраны deactivate - Взять под охрану activate
Система контроля доступом датчик
-Идентификатор устройства id type=text -Название устройства (имя) name type=text -Расположение(координаты) geo_position type=point -Высота установки geo_height type=real -Обслуживающая организация organization type=text -Дополнительная информация additional_info type=text -Идентификатор устройства devid type=text - COM-порт comPort type=text - URL url type=list - Идентификатор МСС mssGuid type=text - Минимальное альтернативное напряжение alt_voltage_min type=real - Максимальное альтернативное напряжение alt_voltage_max type=real - Минимальное напряжение voltage_min type=real - Максимальное напряжение voltage_max type=real - Минимально допустимая температура, для тревог, гр. temperature_min type=real - Максимально допустимая температура, для тревог, гр. temperature_max type=real - Альтернативное напряжение alt_voltage type=real - Напряжение voltage type=real - Температура temperature type=real - Дата изготовления manufacturing_date type=text - Тип считывателя reader_type type=text - Память, кб memory_kb type=int - Тип контроллера controller_type type=real - Серийный номер serial type=real - Параметр управления control_param type=text -Состояние устройства state type=enum Варианты состояния: -Норма ok.normal -Неисправность error.defective - Тревога alarm.alarm - Неизвестно none.unknown - Статус неизвестен none.stateUnknown -Текущие состояние stateargs type=Array(text) Варианты состояния: - Внимание блокировка alarm.blocked - Выход за границы диапазона alarm.outOfRange - Не под охраной ok.inactive - Открыт ok.unlocked - Разблокировано ok.unblocked - Закрыт ok.locked - Под охраной ok.active -Выход ok.openOut -Вход ok.openIn
-Команды command type=enum Варианты состояния: - Обновить refresh - Нормализовать normalize - Разблокировать unblock - Заблокировать block - Открыть выход open_out - Открыть вход open_in
Система автоматической пожарной сигнализации
-Идентификатор устройства id type=text -Название устройства (имя) name type=text -Расположение(координаты) geo_position type=point -Высота установки geo_height type=real -Обслуживающая организация organization type=text -Дополнительная информация additional_info type=text - Рабочий диапазон effective_range type=real - Комментарий comment type=text - Наивысший приоритет highestPriority type=int - Период обновления, мс refreshMs type=int -Состояние устройства state type=enum Варианты состояния: -Норма ok.normal -Неисправность error.defective - Тревога alarm.alarm - Неизвестно none.unknown - Статус неизвестен none.stateUnknown -Текущие состояние stateargs type=Array(text) Варианты состояния: - Пожар alarm.fire - Тест alarm.test - Внимание блокировка alarm.blocked - Выход за границы диапазона alarm.outOfRange - Не под охраной ok.inactive - Открыт ok.unlocked - Разблокировано ok.unblocked - Закрыт ok.locked - Под охраной ok.active
-Команды command type=enum Варианты состояния: - Снять с охраны deactivate - Взять под охрану activate - Тест test
Протокол работы с сервером приложения Интегра SOAP
Протокол работы с сервером приложения Интегра-Планета-4Д
Анотация Настоящий документ описывает порядок взаимодействия и формат информационно-технического обмена с системой Интегра-Планета-4Д. Документ включает: 1) Описание протокола API взаимодействия; 2) Описание сервиса обмена данными и структуру передаваемых сообщений. Взаимодействие между клиентом и сервером происходит по протоколу TCP/IP на транспортном уровне и по протоколу SOAP на уровне приложения, с использованием протокола HTTP для SOAP диалога. Отправитель SOAP-сообщения инициирует соединение на указанный владельцем противоположной стороны сервиса адрес, порт и URL, проходит авторизацию на центре авторизации, получая тикет, передает SOAP-сообщение и получает от противоположной стороны соответствующий SOAP-ответ с подтверждением получения или описанием ошибки (при сбое получения). Для защиты канала передачи информации должны использоваться аппаратные или программные средства, предоставляемые сетевой инфраструктурой или применяемыми операционными системами.
WSDL WSDL (Web Services Description Language) — это язык описания веб-сервисов, основанный на XML. На нем описываются методы, входные и результирующие структуры данных, типы данных, сетевые адреса для обращения к сервису и другое. Описание API сервера приложения Интегра-Планета-4Д на WSDL описано в приложении 1.
Запросы в формате SOAP Данные в формате SOAP передаются методом HTTP POST. Запросы отправляют на адрес API
Таблица 1 Описание методов Название метода Описание метода Обязательный getTypeDef Запрос на получение типов системы Интегра-Планета-4Д Да getServers Запрос на получение списка объектов Да getGraph Запрос на получение списка элементов объекта и параметров элементов Нет put Запрос на создание, изменение, удаление данный на конкретном объекте Нет getRuntimeChanges Запрос на получение изменений Нет
Порядок работы с сервером приложении.
1. Авторизация и получение тикета на сервере авторизации
Для подключения к сервисам Интегра-Планета-4Д необходимо авторизоваться на сервере авторизации и получить тикет. Данный тикет используется для дальнейшей работы с сервером приложения.
Формат запроса:
https://<ip_адрес>:<порт>/getticket?login=<логин>&password=<пароль>&alias=TestAuth
Результатом ответа будет тикет в формате UUID, либо ошибка.
2. Выход из приложения Для выхода из приложения и закрытия сессии необходимо выполнить выход из системы Формат запроса: https:// <ip_адрес>:<порт>/logout?ticket_id=<тикет>
3. Получение списка объектов Для получения списка объектов необходимо вызвать метод getServers Параметры метода: Нет входных параметров Результат:
<?xml version="1.0" encoding="utf-8"?> <ArrayOfKeyValueOfGuidServer xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://integra-s.com/firefly/soap"> <KeyValueOfGuidServer> <Key>7c8cb3e5-130a-4438-8c9c-2ce795c82939</Key> <Value> <name>Local server</name> <typedef_version>0.0.0.16</typedef_version> <is_local>true</is_local> </Value> </KeyValueOfGuidServer> <KeyValueOfGuidServer> <Key>76606d62-a514-11e4-8c37-a7064178f246</Key> <Value> <name>Office server</name> <typedef_version>0.0.0.16</typedef_version> <is_local>false</is_local> </Value> </KeyValueOfGuidServer> </ArrayOfKeyValueOfGuidServer> Таблица 2 Описание ключевых полей запроса (getServers) Поле Состав данных (значение) Формат Key Идентификатор объекта (сервера) Текст (UUID) name Название (имя) объекта Текст typedef_version Версия используемых типов Текст is_local Признак ретрансляции сервера Логический
4. Получение типов данных система Интегр-Планета-4Д
Для получения списка объектов необходимо вызвать метод getTypeDef
Параметры метода:
Version – версия с которой поставлять типы – берется из описания сервера(объекта)
Описание типов системы предоставляется отдельным документом.
Пример описания типа системы Интегра-Планета-4Д
Таблица 3 Описание полей, типа Ip_Видео_Камера(IpVideoCamera)
Код поля
Описание поля
name
Название устройства (имя)
id
Идентификатор устройства
geo_position
Расположение(координаты)
geo_height
Высота установки
organization
Обслуживающая организация
additional_info
Дополнительная информация
max_ping_time_ms
Контролируемое время отзыва(мс)
ping_time
Эхо-запрос,мс
ip
IP адрес
provider
Провайдер
commisioning
Дата ввода в эксплуатацию
lastMaintence
Дата последнего ТО/Номер акта
plannedMaintence
Запланированная дата ТО
maintencePeriod
Период ТО
state
Состояние устройства
stateargs
Текущие состояние
url
url
command
Команды
fov
Угол обзора камеры
aspectratio
Соотношение сторон
archieve_length
Глубина архива
5. Получение датчиков и их параметров
Для получения списка объектов необходимо вызвать метод.
Параметры метода:
serverId – идентификатор сервера
Результат:
<?xml version="1.0" encoding="utf-8"?>
<Graph xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://integra-s.com/firefly/soap">
<ServerId>7c8cb3e5-130a-4438-8c9c-2ce795c82939</ServerId>
<items>
<KeyValueOfStringItem>
<Key>c2fd1a94-3b54-4573-893f-6d4fefa2811c</Key>
<Value>
<types>
<string>Item</string>
<string>IncidentEvent</string>
<string>BaseObject</string>
<string>SpatialObject</string>
</types>
<params>
<KeyValueOfStringParam>
<Key>comment</Key>
<Value>
<value xsi:type="xsd:string">1231313</value>
<datetime>1493377308</datetime>
<version>17813</version>
</Value>
</KeyValueOfStringParam>
<KeyValueOfStringParam>
<Key>category</Key>
<Value>
<value xsi:type="xsd:string">falling</value>
<datetime>1493377308</datetime>
<version>17812</version>
</Value>
</KeyValueOfStringParam>
<KeyValueOfStringParam>
<Key>geo_height</Key>
<Value>
<datetime>1493377256</datetime>
<version>9464</version>
</Value>
</KeyValueOfStringParam>
<KeyValueOfStringParam>
<Key>geo_position</Key>
<Value>
<datetime>1493377256</datetime>
<version>9467</version>
</Value>
</KeyValueOfStringParam>
<KeyValueOfStringParam>
<Key>altitude</Key>
<Value>
<value xsi:type="xsd:long">-65535</value>
<datetime>1493377308</datetime>
<version>17811</version>
</Value>
</KeyValueOfStringParam>
<KeyValueOfStringParam>
<Key>stateargs</Key>
<Value>
<datetime>1493377256</datetime>
<version>9481</version>
</Value>
</KeyValueOfStringParam>
<KeyValueOfStringParam>
<Key>name</Key>
<Value>
<datetime>1493377256</datetime>
<version>9473</version>
</Value>
</KeyValueOfStringParam>
<KeyValueOfStringParam>
<Key>state</Key>
<Value>
<datetime>1493377256</datetime>
<version>9479</version>
</Value>
</KeyValueOfStringParam>
<KeyValueOfStringParam>
<Key>position</Key>
<Value>
<value xsi:type="xsd:string">POINT(50.227 53.2371)</value>
<datetime>1493377308</datetime>
<version>17819</version>
</Value>
</KeyValueOfStringParam>
<KeyValueOfStringParam>
<Key>organization</Key>
<Value>
<datetime>1493377256</datetime>
<version>9475</version>
</Value>
</KeyValueOfStringParam>
<KeyValueOfStringParam>
<Key>additional_info</Key>
<Value>
<datetime>1493377256</datetime>
<version>9454</version>
</Value>
</KeyValueOfStringParam>
<KeyValueOfStringParam>
<Key>icon</Key>
<Value>
<value xsi:type="xsd:string">falling.png</value>
<datetime>1493377308</datetime>
<version>17816</version>
</Value>
</KeyValueOfStringParam>
</params>
<pins>
<KeyValueOfStringPin>
<Key>gpsContent</Key>
<Value>
<types>
<string>Pin</string>
<string>GpsProviderIn</string>
</types>
<params />
</Value>
</KeyValueOfStringPin>
<KeyValueOfStringPin>
<Key>person_input</Key>
<Value>
<types>
<string>Pin</string>
<string>Person_input</string>
</types>
<params />
</Value>
</KeyValueOfStringPin>
<KeyValueOfStringPin>
<Key>positionContent</Key>
<Value>
<types>
<string>Pin</string>
<string>PositionContent</string>
</types>
<params>
<KeyValueOfStringParam>
<Key>location</Key>
<Value>
<datetime>1493377256</datetime>
<version>9499</version>
</Value>
</KeyValueOfStringParam>
</params>
</Value>
</KeyValueOfStringPin>
<KeyValueOfStringPin>
<Key>provoker_input</Key>
<Value>
<types>
<string>Pin</string>
<string>Provoker_input</string>
</types>
<params />
</Value>
</KeyValueOfStringPin>
</pins>
</Value>
</KeyValueOfStringItem>
</items>
</Graph>
6. Создание, изменение, удаление данных Для получения списка объектов необходимо вызвать метод. Формат параметров и результатов запроса приведены в отдельном документе
7. Получение изменений данных Для получения списка объектов необходимо вызвать метод. Параметры метода: serverId – идентификатор сервера version – версия с которой необходимо получать изменения
Приложение 1.
Описание сервиса обмена данными
<?xml version="1.0" encoding="utf-8"?>
<wsdl:definitions xmlns:s="http://www.w3.org/2001/XMLSchema"
xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
xmlns:tns="http://integra-s.com/firefly/soap" xmlns:s1="http://microsoft.com/wsdl/types/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
targetNamespace="http://integra-s.com/firefly/soap"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Fire Fly Soap Web
Service</wsdl:documentation>
<wsdl:types>
<s:schema elementFormDefault="qualified"
targetNamespace="http://integra-s.com/firefly/soap">
<s:import namespace="http://microsoft.com/wsdl/types/"/>
<s:import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
<s:import namespace="http://schemas.xmlsoap.org/wsdl/"/>
<s:element name="getServers">
<s:complexType/>
</s:element>
<s:element name="getServersResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="getServersResult"
type="tns:ArrayOfKeyValueOfGuidServer"/>
</s:sequence>
</s:complexType>
</s:element>
<s:complexType name="ArrayOfKeyValueOfGuidServer">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="KeyValueOfGuidServer"
nillable="true" type="tns:KeyValueOfGuidServer"/>
</s:sequence>
</s:complexType>
<s:complexType name="KeyValueOfGuidServer">
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="Key" type="s1:guid"/>
<s:element minOccurs="0" maxOccurs="1" name="Value" type="tns:Server"/>
</s:sequence>
</s:complexType>
<s:complexType name="Server">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="name" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="typedef_version" type="s:string"/>
<s:element minOccurs="1" maxOccurs="1" name="is_local" type="s:boolean"/>
</s:sequence>
</s:complexType>
<s:element name="CredentialsHeader" type="tns:CredentialsHeader"/>
<s:complexType name="CredentialsHeader">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="username" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="token" type="s:string"/>
</s:sequence>
<s:anyAttribute/>
</s:complexType>
<s:element name="getTypeDef">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="version" type="s:string"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="getTypeDefResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="getTypeDefResult">
<s:complexType mixed="true">
<s:sequence>
<s:any/>
</s:sequence>
</s:complexType>
</s:element>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="getGraph">
<s:complexType>
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="serverId" type="s1:guid"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="getGraphResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="getGraphResult" type="tns:Graph"/>
</s:sequence>
</s:complexType>
</s:element>
<s:complexType name="Graph">
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="ServerId" type="s1:guid"/>
<s:element minOccurs="0" maxOccurs="1" name="items"
type="tns:ArrayOfKeyValueOfStringItem"/>
<s:element minOccurs="0" maxOccurs="1" name="links"
type="tns:ArrayOfKeyValueOfStringLink"/>
</s:sequence>
</s:complexType>
<s:complexType name="ArrayOfKeyValueOfStringItem">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="KeyValueOfStringItem"
nillable="true" type="tns:KeyValueOfStringItem"/>
</s:sequence>
</s:complexType>
<s:complexType name="KeyValueOfStringItem">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Key" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="Value" type="tns:Item"/>
</s:sequence>
</s:complexType>
<s:complexType name="Item">
<s:complexContent mixed="false">
<s:extension base="tns:Object">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="pins"
type="tns:ArrayOfKeyValueOfStringPin"/>
</s:sequence>
</s:extension>
</s:complexContent>
</s:complexType>
<s:complexType name="Object">
<s:complexContent mixed="false">
<s:extension base="tns:AbstractObject"/>
</s:complexContent>
</s:complexType>
<s:complexType name="AbstractObject">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="types" type="tns:ArrayOfString"/>
<s:element minOccurs="0" maxOccurs="1" name="params"
type="tns:ArrayOfKeyValueOfStringParam"/>
</s:sequence>
</s:complexType>
<s:complexType name="ArrayOfString">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="string" nillable="true"
type="s:string"/>
</s:sequence>
</s:complexType>
<s:complexType name="ArrayOfKeyValueOfStringParam">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="KeyValueOfStringParam"
nillable="true" type="tns:KeyValueOfStringParam"/>
</s:sequence>
</s:complexType>
<s:complexType name="KeyValueOfStringParam">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Key" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="Value" type="tns:Param"/>
</s:sequence>
</s:complexType>
<s:complexType name="Param">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="value"/>
<s:element minOccurs="1" maxOccurs="1" name="datetime" type="s:int"/>
<s:element minOccurs="0" maxOccurs="1" name="status" type="s:string"/>
<s:element minOccurs="1" maxOccurs="1" name="version" type="s:long"/>
</s:sequence>
</s:complexType>
<s:complexType name="Pin">
<s:complexContent mixed="false">
<s:extension base="tns:AbstractObject"/>
</s:complexContent>
</s:complexType>
<s:complexType name="Link">
<s:complexContent mixed="false">
<s:extension base="tns:Object"/>
</s:complexContent>
</s:complexType>
<s:complexType name="ArrayOfKeyValueOfStringPin">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="KeyValueOfStringPin"
nillable="true" type="tns:KeyValueOfStringPin"/>
</s:sequence>
</s:complexType>
<s:complexType name="KeyValueOfStringPin">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Key" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="Value" type="tns:Pin"/>
</s:sequence>
</s:complexType>
<s:complexType name="ArrayOfKeyValueOfStringLink">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="KeyValueOfStringLink"
nillable="true" type="tns:KeyValueOfStringLink"/>
</s:sequence>
</s:complexType>
<s:complexType name="KeyValueOfStringLink">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Key" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="Value" type="tns:Link"/>
</s:sequence>
</s:complexType>
<s:element name="put">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="request" type="tns:ArrayOfPutRequest"/>
</s:sequence>
</s:complexType>
</s:element>
<s:complexType name="ArrayOfPutRequest">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="PutRequest" nillable="true"
type="tns:PutRequest"/>
</s:sequence>
</s:complexType>
<s:complexType name="PutRequest">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="server" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="owner" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="id" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="params"
type="tns:ArrayOfKeyValueOfStringParam"/>
<s:element minOccurs="1" maxOccurs="1" name="entity" type="tns:Entity"/>
<s:element minOccurs="1" maxOccurs="1" name="operation" type="tns:Operation"/>
</s:sequence>
</s:complexType>
<s:simpleType name="Entity">
<s:restriction base="s:string">
<s:enumeration value="none"/>
<s:enumeration value="server"/>
<s:enumeration value="router"/>
<s:enumeration value="item"/>
<s:enumeration value="link"/>
<s:enumeration value="pin"/>
<s:enumeration value="event"/>
</s:restriction>
</s:simpleType>
<s:simpleType name="Operation">
<s:restriction base="s:string">
<s:enumeration value="create"/>
<s:enumeration value="update"/>
<s:enumeration value="delete"/>
</s:restriction>
</s:simpleType>
<s:complexType name="ArrayOfPutResponse">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="PutResponse" nillable="true"
type="tns:PutResponse"/>
</s:sequence>
</s:complexType>
<s:complexType name="PutResponse">
<s:complexContent mixed="false">
<s:extension base="tns:Param">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="server" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="name" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="owner" type="s:string"/>
<s:element minOccurs="1" maxOccurs="1" name="operation" type="tns:Operation"/>
<s:element minOccurs="1" maxOccurs="1" name="entity" type="tns:Entity"/>
<s:element minOccurs="0" maxOccurs="1" name="type" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="id" type="s:string"/>
</s:sequence>
</s:extension>
</s:complexContent>
</s:complexType>
<s:element name="putResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="putResult"
type="tns:ArrayOfPutResponse"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="getRuntimeChanges">
<s:complexType>
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="serverId" type="s1:guid"/>
<s:element minOccurs="1" maxOccurs="1" name="version" type="s:long"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="getRuntimeChangesResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="getRuntimeChangesResult"
type="tns:ArrayOfPutResponse"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="getServersEx">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="username" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="token" type="s:string"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="getServersExResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="getServersExResult"
type="tns:ArrayOfKeyValueOfGuidServer"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="getTypeDefEx">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="username" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="token" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="version" type="s:string"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="getTypeDefExResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="getTypeDefExResult">
<s:complexType mixed="true">
<s:sequence>
<s:any/>
</s:sequence>
</s:complexType>
</s:element>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="getGraphEx">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="username" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="token" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="serverId" type="s:string"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="getGraphExResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="getGraphExResult" type="tns:Graph"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="putEx">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="username" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="token" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="request" type="tns:ArrayOfPutRequest"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="putExResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="putExResult"
type="tns:ArrayOfPutResponse"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="getRuntimeChangesEx">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="username" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="token" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="serverId" type="s:string"/>
<s:element minOccurs="1" maxOccurs="1" name="version" type="s:long"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="getRuntimeChangesExResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="getRuntimeChangesExResult"
type="tns:ArrayOfPutResponse"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="ArrayOfKeyValueOfGuidServer" nillable="true"
type="tns:ArrayOfKeyValueOfGuidServer"/>
<s:element name="Graph" nillable="true" type="tns:Graph"/>
<s:element name="ArrayOfPutResponse" nillable="true" type="tns:ArrayOfPutResponse"/>
</s:schema>
<s:schema elementFormDefault="qualified" targetNamespace="http://microsoft.com/wsdl/types/">
<s:import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
<s:import namespace="http://schemas.xmlsoap.org/wsdl/"/>
<s:simpleType name="guid">
<s:restriction base="s:string">
<s:pattern
value="[0-9a-fA-F]{8-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}"}/>
</s:restriction>
</s:simpleType>
</s:schema>
</wsdl:types>
<wsdl:message name="getServersSoapIn">
<wsdl:part name="parameters" element="tns:getServers"/>
</wsdl:message>
<wsdl:message name="getServersSoapOut">
<wsdl:part name="parameters" element="tns:getServersResponse"/>
</wsdl:message>
<wsdl:message name="getServersCredentialsHeader">
<wsdl:part name="CredentialsHeader" element="tns:CredentialsHeader"/>
</wsdl:message>
<wsdl:message name="getTypeDefSoapIn">
<wsdl:part name="parameters" element="tns:getTypeDef"/>
</wsdl:message>
<wsdl:message name="getTypeDefSoapOut">
<wsdl:part name="parameters" element="tns:getTypeDefResponse"/>
</wsdl:message>
<wsdl:message name="getTypeDefCredentialsHeader">
<wsdl:part name="CredentialsHeader" element="tns:CredentialsHeader"/>
</wsdl:message>
<wsdl:message name="getGraphSoapIn">
<wsdl:part name="parameters" element="tns:getGraph"/>
</wsdl:message>
<wsdl:message name="getGraphSoapOut">
<wsdl:part name="parameters" element="tns:getGraphResponse"/>
</wsdl:message>
<wsdl:message name="getGraphCredentialsHeader">
<wsdl:part name="CredentialsHeader" element="tns:CredentialsHeader"/>
</wsdl:message>
<wsdl:message name="putSoapIn">
<wsdl:part name="parameters" element="tns:put"/>
</wsdl:message>
<wsdl:message name="putSoapOut">
<wsdl:part name="parameters" element="tns:putResponse"/>
</wsdl:message>
<wsdl:message name="putCredentialsHeader">
<wsdl:part name="CredentialsHeader" element="tns:CredentialsHeader"/>
</wsdl:message>
<wsdl:message name="getRuntimeChangesSoapIn">
<wsdl:part name="parameters" element="tns:getRuntimeChanges"/>
</wsdl:message>
<wsdl:message name="getRuntimeChangesSoapOut">
<wsdl:part name="parameters" element="tns:getRuntimeChangesResponse"/>
</wsdl:message>
<wsdl:message name="getRuntimeChangesCredentialsHeader">
<wsdl:part name="CredentialsHeader" element="tns:CredentialsHeader"/>
</wsdl:message>
<wsdl:message name="getServersExSoapIn">
<wsdl:part name="parameters" element="tns:getServersEx"/>
</wsdl:message>
<wsdl:message name="getServersExSoapOut">
<wsdl:part name="parameters" element="tns:getServersExResponse"/>
</wsdl:message>
<wsdl:message name="getTypeDefExSoapIn">
<wsdl:part name="parameters" element="tns:getTypeDefEx"/>
</wsdl:message>
<wsdl:message name="getTypeDefExSoapOut">
<wsdl:part name="parameters" element="tns:getTypeDefExResponse"/>
</wsdl:message>
<wsdl:message name="getGraphExSoapIn">
<wsdl:part name="parameters" element="tns:getGraphEx"/>
</wsdl:message>
<wsdl:message name="getGraphExSoapOut">
<wsdl:part name="parameters" element="tns:getGraphExResponse"/>
</wsdl:message>
<wsdl:message name="putExSoapIn">
<wsdl:part name="parameters" element="tns:putEx"/>
</wsdl:message>
<wsdl:message name="putExSoapOut">
<wsdl:part name="parameters" element="tns:putExResponse"/>
</wsdl:message>
<wsdl:message name="getRuntimeChangesExSoapIn">
<wsdl:part name="parameters" element="tns:getRuntimeChangesEx"/>
</wsdl:message>
<wsdl:message name="getRuntimeChangesExSoapOut">
<wsdl:part name="parameters" element="tns:getRuntimeChangesExResponse"/>
</wsdl:message>
<wsdl:message name="getServersHttpGetIn"/>
<wsdl:message name="getServersHttpGetOut">
<wsdl:part name="Body" element="tns:ArrayOfKeyValueOfGuidServer"/>
</wsdl:message>
<wsdl:message name="getTypeDefHttpGetIn">
<wsdl:part name="version" type="s:string"/>
</wsdl:message>
<wsdl:message name="getTypeDefHttpGetOut">
<wsdl:part name="Body"/>
</wsdl:message>
<wsdl:message name="getServersExHttpGetIn">
<wsdl:part name="username" type="s:string"/>
<wsdl:part name="token" type="s:string"/>
</wsdl:message>
<wsdl:message name="getServersExHttpGetOut">
<wsdl:part name="Body" element="tns:ArrayOfKeyValueOfGuidServer"/>
</wsdl:message>
<wsdl:message name="getTypeDefExHttpGetIn">
<wsdl:part name="username" type="s:string"/>
<wsdl:part name="token" type="s:string"/>
<wsdl:part name="version" type="s:string"/>
</wsdl:message>
<wsdl:message name="getTypeDefExHttpGetOut">
<wsdl:part name="Body"/>
</wsdl:message>
<wsdl:message name="getGraphExHttpGetIn">
<wsdl:part name="username" type="s:string"/>
<wsdl:part name="token" type="s:string"/>
<wsdl:part name="serverId" type="s:string"/>
</wsdl:message>
<wsdl:message name="getGraphExHttpGetOut">
<wsdl:part name="Body" element="tns:Graph"/>
</wsdl:message>
<wsdl:message name="getRuntimeChangesExHttpGetIn">
<wsdl:part name="username" type="s:string"/>
<wsdl:part name="token" type="s:string"/>
<wsdl:part name="serverId" type="s:string"/>
<wsdl:part name="version" type="s:string"/>
</wsdl:message>
<wsdl:message name="getRuntimeChangesExHttpGetOut">
<wsdl:part name="Body" element="tns:ArrayOfPutResponse"/>
</wsdl:message>
<wsdl:message name="getServersHttpPostIn"/>
<wsdl:message name="getServersHttpPostOut">
<wsdl:part name="Body" element="tns:ArrayOfKeyValueOfGuidServer"/>
</wsdl:message>
<wsdl:message name="getTypeDefHttpPostIn">
<wsdl:part name="version" type="s:string"/>
</wsdl:message>
<wsdl:message name="getTypeDefHttpPostOut">
<wsdl:part name="Body"/>
</wsdl:message>
<wsdl:message name="getServersExHttpPostIn">
<wsdl:part name="username" type="s:string"/>
<wsdl:part name="token" type="s:string"/>
</wsdl:message>
<wsdl:message name="getServersExHttpPostOut">
<wsdl:part name="Body" element="tns:ArrayOfKeyValueOfGuidServer"/>
</wsdl:message>
<wsdl:message name="getTypeDefExHttpPostIn">
<wsdl:part name="username" type="s:string"/>
<wsdl:part name="token" type="s:string"/>
<wsdl:part name="version" type="s:string"/>
</wsdl:message>
<wsdl:message name="getTypeDefExHttpPostOut">
<wsdl:part name="Body"/>
</wsdl:message>
<wsdl:message name="getGraphExHttpPostIn">
<wsdl:part name="username" type="s:string"/>
<wsdl:part name="token" type="s:string"/>
<wsdl:part name="serverId" type="s:string"/>
</wsdl:message>
<wsdl:message name="getGraphExHttpPostOut">
<wsdl:part name="Body" element="tns:Graph"/>
</wsdl:message>
<wsdl:message name="getRuntimeChangesExHttpPostIn">
<wsdl:part name="username" type="s:string"/>
<wsdl:part name="token" type="s:string"/>
<wsdl:part name="serverId" type="s:string"/>
<wsdl:part name="version" type="s:string"/>
</wsdl:message>
<wsdl:message name="getRuntimeChangesExHttpPostOut">
<wsdl:part name="Body" element="tns:ArrayOfPutResponse"/>
</wsdl:message>
<wsdl:portType name="FireFlySoapSoap">
<wsdl:operation name="getServers">
<wsdl:input message="tns:getServersSoapIn"/>
<wsdl:output message="tns:getServersSoapOut"/>
</wsdl:operation>
<wsdl:operation name="getTypeDef">
<wsdl:input message="tns:getTypeDefSoapIn"/>
<wsdl:output message="tns:getTypeDefSoapOut"/>
</wsdl:operation>
<wsdl:operation name="getGraph">
<wsdl:input message="tns:getGraphSoapIn"/>
<wsdl:output message="tns:getGraphSoapOut"/>
</wsdl:operation>
<wsdl:operation name="put">
<wsdl:input message="tns:putSoapIn"/>
<wsdl:output message="tns:putSoapOut"/>
</wsdl:operation>
<wsdl:operation name="getRuntimeChanges">
<wsdl:input message="tns:getRuntimeChangesSoapIn"/>
<wsdl:output message="tns:getRuntimeChangesSoapOut"/>
</wsdl:operation>
<wsdl:operation name="getServersEx">
<wsdl:input message="tns:getServersExSoapIn"/>
<wsdl:output message="tns:getServersExSoapOut"/>
</wsdl:operation>
<wsdl:operation name="getTypeDefEx">
<wsdl:input message="tns:getTypeDefExSoapIn"/>
<wsdl:output message="tns:getTypeDefExSoapOut"/>
</wsdl:operation>
<wsdl:operation name="getGraphEx">
<wsdl:input message="tns:getGraphExSoapIn"/>
<wsdl:output message="tns:getGraphExSoapOut"/>
</wsdl:operation>
<wsdl:operation name="putEx">
<wsdl:input message="tns:putExSoapIn"/>
<wsdl:output message="tns:putExSoapOut"/>
</wsdl:operation>
<wsdl:operation name="getRuntimeChangesEx">
<wsdl:input message="tns:getRuntimeChangesExSoapIn"/>
<wsdl:output message="tns:getRuntimeChangesExSoapOut"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:portType name="FireFlySoapHttpGet">
<wsdl:operation name="getServers">
<wsdl:input message="tns:getServersHttpGetIn"/>
<wsdl:output message="tns:getServersHttpGetOut"/>
</wsdl:operation>
<wsdl:operation name="getTypeDef">
<wsdl:input message="tns:getTypeDefHttpGetIn"/>
<wsdl:output message="tns:getTypeDefHttpGetOut"/>
</wsdl:operation>
<wsdl:operation name="getServersEx">
<wsdl:input message="tns:getServersExHttpGetIn"/>
<wsdl:output message="tns:getServersExHttpGetOut"/>
</wsdl:operation>
<wsdl:operation name="getTypeDefEx">
<wsdl:input message="tns:getTypeDefExHttpGetIn"/>
<wsdl:output message="tns:getTypeDefExHttpGetOut"/>
</wsdl:operation>
<wsdl:operation name="getGraphEx">
<wsdl:input message="tns:getGraphExHttpGetIn"/>
<wsdl:output message="tns:getGraphExHttpGetOut"/>
</wsdl:operation>
<wsdl:operation name="getRuntimeChangesEx">
<wsdl:input message="tns:getRuntimeChangesExHttpGetIn"/>
<wsdl:output message="tns:getRuntimeChangesExHttpGetOut"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:portType name="FireFlySoapHttpPost">
<wsdl:operation name="getServers">
<wsdl:input message="tns:getServersHttpPostIn"/>
<wsdl:output message="tns:getServersHttpPostOut"/>
</wsdl:operation>
<wsdl:operation name="getTypeDef">
<wsdl:input message="tns:getTypeDefHttpPostIn"/>
<wsdl:output message="tns:getTypeDefHttpPostOut"/>
</wsdl:operation>
<wsdl:operation name="getServersEx">
<wsdl:input message="tns:getServersExHttpPostIn"/>
<wsdl:output message="tns:getServersExHttpPostOut"/>
</wsdl:operation>
<wsdl:operation name="getTypeDefEx">
<wsdl:input message="tns:getTypeDefExHttpPostIn"/>
<wsdl:output message="tns:getTypeDefExHttpPostOut"/>
</wsdl:operation>
<wsdl:operation name="getGraphEx">
<wsdl:input message="tns:getGraphExHttpPostIn"/>
<wsdl:output message="tns:getGraphExHttpPostOut"/>
</wsdl:operation>
<wsdl:operation name="getRuntimeChangesEx">
<wsdl:input message="tns:getRuntimeChangesExHttpPostIn"/>
<wsdl:output message="tns:getRuntimeChangesExHttpPostOut"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="FireFlySoapSoap" type="tns:FireFlySoapSoap">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="getServers">
<soap:operation soapAction="http://integra-s.com/firefly/soap/getServers"
style="document"/>
<wsdl:input>
<soap:body use="literal"/>
<soap:header message="tns:getServersCredentialsHeader" part="CredentialsHeader"
use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getTypeDef">
<soap:operation soapAction="http://integra-s.com/firefly/soap/getTypeDef"
style="document"/>
<wsdl:input>
<soap:body use="literal"/>
<soap:header message="tns:getTypeDefCredentialsHeader" part="CredentialsHeader"
use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getGraph">
<soap:operation soapAction="http://integra-s.com/firefly/soap/getGraph" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
<soap:header message="tns:getGraphCredentialsHeader" part="CredentialsHeader"
use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="put">
<soap:operation soapAction="http://integra-s.com/firefly/soap/put" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
<soap:header message="tns:putCredentialsHeader" part="CredentialsHeader" use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getRuntimeChanges">
<soap:operation soapAction="http://integra-s.com/firefly/soap/getRuntimeChanges"
style="document"/>
<wsdl:input>
<soap:body use="literal"/>
<soap:header message="tns:getRuntimeChangesCredentialsHeader" part="CredentialsHeader"
use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getServersEx">
<soap:operation soapAction="http://integra-s.com/firefly/soap/getServersEx"
style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getTypeDefEx">
<soap:operation soapAction="http://integra-s.com/firefly/soap/getTypeDefEx"
style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getGraphEx">
<soap:operation soapAction="http://integra-s.com/firefly/soap/getGraphEx"
style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="putEx">
<soap:operation soapAction="http://integra-s.com/firefly/soap/putEx" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getRuntimeChangesEx">
<soap:operation soapAction="http://integra-s.com/firefly/soap/getRuntimeChangesEx"
style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="FireFlySoapSoap12" type="tns:FireFlySoapSoap">
<soap12:binding transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="getServers">
<soap12:operation soapAction="http://integra-s.com/firefly/soap/getServers"
style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
<soap12:header message="tns:getServersCredentialsHeader" part="CredentialsHeader"
use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getTypeDef">
<soap12:operation soapAction="http://integra-s.com/firefly/soap/getTypeDef"
style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
<soap12:header message="tns:getTypeDefCredentialsHeader" part="CredentialsHeader"
use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getGraph">
<soap12:operation soapAction="http://integra-s.com/firefly/soap/getGraph"
style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
<soap12:header message="tns:getGraphCredentialsHeader" part="CredentialsHeader"
use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="put">
<soap12:operation soapAction="http://integra-s.com/firefly/soap/put" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
<soap12:header message="tns:putCredentialsHeader" part="CredentialsHeader"
use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getRuntimeChanges">
<soap12:operation soapAction="http://integra-s.com/firefly/soap/getRuntimeChanges"
style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
<soap12:header message="tns:getRuntimeChangesCredentialsHeader"
part="CredentialsHeader" use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getServersEx">
<soap12:operation soapAction="http://integra-s.com/firefly/soap/getServersEx"
style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getTypeDefEx">
<soap12:operation soapAction="http://integra-s.com/firefly/soap/getTypeDefEx"
style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getGraphEx">
<soap12:operation soapAction="http://integra-s.com/firefly/soap/getGraphEx"
style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="putEx">
<soap12:operation soapAction="http://integra-s.com/firefly/soap/putEx" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getRuntimeChangesEx">
<soap12:operation soapAction="http://integra-s.com/firefly/soap/getRuntimeChangesEx"
style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="FireFlySoapHttpGet" type="tns:FireFlySoapHttpGet">
<http:binding verb="GET"/>
<wsdl:operation name="getServers">
<http:operation location="/getServers"/>
<wsdl:input>
<http:urlEncoded/>
</wsdl:input>
<wsdl:output>
<mime:mimeXml part="Body"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getTypeDef">
<http:operation location="/getTypeDef"/>
<wsdl:input>
<http:urlEncoded/>
</wsdl:input>
<wsdl:output>
<mime:content part="Body" type="text/xml"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getServersEx">
<http:operation location="/getServersEx"/>
<wsdl:input>
<http:urlEncoded/>
</wsdl:input>
<wsdl:output>
<mime:mimeXml part="Body"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getTypeDefEx">
<http:operation location="/getTypeDefEx"/>
<wsdl:input>
<http:urlEncoded/>
</wsdl:input>
<wsdl:output>
<mime:content part="Body" type="text/xml"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getGraphEx">
<http:operation location="/getGraphEx"/>
<wsdl:input>
<http:urlEncoded/>
</wsdl:input>
<wsdl:output>
<mime:mimeXml part="Body"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getRuntimeChangesEx">
<http:operation location="/getRuntimeChangesEx"/>
<wsdl:input>
<http:urlEncoded/>
</wsdl:input>
<wsdl:output>
<mime:mimeXml part="Body"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="FireFlySoapHttpPost" type="tns:FireFlySoapHttpPost">
<http:binding verb="POST"/>
<wsdl:operation name="getServers">
<http:operation location="/getServers"/>
<wsdl:input>
<mime:content type="application/x-www-form-urlencoded"/>
</wsdl:input>
<wsdl:output>
<mime:mimeXml part="Body"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getTypeDef">
<http:operation location="/getTypeDef"/>
<wsdl:input>
<mime:content type="application/x-www-form-urlencoded"/>
</wsdl:input>
<wsdl:output>
<mime:content part="Body" type="text/xml"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getServersEx">
<http:operation location="/getServersEx"/>
<wsdl:input>
<mime:content type="application/x-www-form-urlencoded"/>
</wsdl:input>
<wsdl:output>
<mime:mimeXml part="Body"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getTypeDefEx">
<http:operation location="/getTypeDefEx"/>
<wsdl:input>
<mime:content type="application/x-www-form-urlencoded"/>
</wsdl:input>
<wsdl:output>
<mime:content part="Body" type="text/xml"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getGraphEx">
<http:operation location="/getGraphEx"/>
<wsdl:input>
<mime:content type="application/x-www-form-urlencoded"/>
</wsdl:input>
<wsdl:output>
<mime:mimeXml part="Body"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getRuntimeChangesEx">
<http:operation location="/getRuntimeChangesEx"/>
<wsdl:input>
<mime:content type="application/x-www-form-urlencoded"/>
</wsdl:input>
<wsdl:output>
<mime:mimeXml part="Body"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="FireFlySoap">
<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Fire Fly Soap Web
Service</wsdl:documentation>
<wsdl:port name="FireFlySoapSoap" binding="tns:FireFlySoapSoap">
<soap:address location="http://localhost:9000/FireFlySoap.asmx"/>
</wsdl:port>
<wsdl:port name="FireFlySoapSoap12" binding="tns:FireFlySoapSoap12">
<soap12:address location="http://localhost:9000/FireFlySoap.asmx"/>
</wsdl:port>
<wsdl:port name="FireFlySoapHttpGet" binding="tns:FireFlySoapHttpGet">
<http:address location="http://localhost:9000/FireFlySoap.asmx"/>
</wsdl:port>
<wsdl:port name="FireFlySoapHttpPost" binding="tns:FireFlySoapHttpPost">
<http:address location="http://localhost:9000/FireFlySoap.asmx"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>