Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 258 Next »



All production endpoints have their version on sandbox with changed domain names:



NB: APIs might be a bit raw, but we’d like to give you a chance to try using them ASAP.

You have to pass API credentials to all methods via SOAP AuthHeader.


We have following services in our public Web API


NB. * means new or  "coming soon" feature


Following is a archive with a straight forward usage example on C# (.Net Framework 2.0) with autogenerated by Visual Studio proxy

https://infrascale.atlassian.net/wiki/download/attachments/10747944/AccountManagementService.Example.zip?api=v2

We don't recommend to use autogenerated by Visual Studio proxy classes. It's here only for sake of fast start and learning purposes.


All our web methods return standard Result object (lines 5-9).


<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
	<soap:Body> 
		<CreateAdditionalAdminResponse xmlns="sosonlinebackup.com"> 
			<CreateAdditionalAdminResult> 
				<Result> 
					<Result>52</Result> 
					<Code>AlreadyExists</Code> 
					<Message>Err-5e24e99f-071a-4463-84eb-b42fc24e1de3;</Message> 
				</Result> 
			</CreateAdditionalAdminResult> 
		</CreateAdditionalAdminResponse> 
	</soap:Body>
</soap:Envelope>


Following are the most common result codes.

Result.Result

Result.Code

Description (not returned in the response)

0

Success

Everything is OK. Web method has been executed without errors.

3
InvalidSoapCredentials

Invalid auth header, i.e. invalid username or password

53
ObjectEntityMismatch

Attempt to use inactive entity or entity not from your hierarchy

2
InvalidInputParameters
One of the fields in request is invalid. Check Result.Message for more details.
1
UnexpectedError
Unexpected error had appeared on our site. Try again later. If it's not gone contact support team.




We encourage you to use native for your programming  language libraries and frameworks those allow easily call soap web methods using wsdl file provided by us.

Below we show how requests to our API should look like. Usually this will be generated automaticaly by soap framework choosed by you.

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:sos="sosonlinebackup.com">
   <soap:Header>
      <sos:AuthHeader>
         <sos:UserName>your web api user name (ask support or account manager)</sos:UserName>
		 <sos:Password>your web api password (ask support or account manager)</sos:Password>
      </sos:AuthHeader>
   </soap:Header>
   <soap:Body>
      <sos:CreateAdditionalAdmin>
         <sos:request>
            <sos:TargetEntityID>0</sos:TargetEntityID>
            <sos:UserName>MyNewUser</sos:UserName>
			<sos:Password>MyNewPassword</sos:Password>
         </sos:request>
      </sos:CreateAdditionalAdmin>
   </soap:Body>
</soap:Envelope>

Http headers will be generated similar to following

POST https://secure-dev.sosonlinebackup.com/WebApi/AccountManagementService/PartnerManagementService.asmx HTTP/1.1
Accept-Encoding: gzip,deflate
Content-Type: application/soap+xml;charset=UTF-8;action="sosonlinebackup.com/CreateAdditionalAdmin"
User-Agent: Jakarta Commons-HttpClient/3.1
Host: secure-dev.sosonlinebackup.com
Content-Length: 730


Account Management

 

 =Plenty of old web methods=

Sandbox:    http://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/AccountManagementService.asmx

Productionhttp://secure.sosonlinebackup.com/WebApi/AccountManagementService/AccountManagementService.asmx

Check links above. There are plenty of old web methods not covered by this page yet. 


Operation: UncancelAccount (added on November 2019)

Sandbox:    https://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/AccountManagementService.asmx?op=UncancelAccount

Productionhttps://secure.sosonlinebackup.com/WebApi/AccountManagementService/AccountManagementService.asmx?op=UncancelAccount

Activates cancelled backup account.

Important notes:

System cleanups data hold by cancelled account after some grace period. For instance, backed up files are automatically deleted in about 3 month, licences usually get deactivated in about 7 days and so on.  Uncancel operation won't  revert any of those,  or similar,  purge actions when they are already partially or fully completed by the date of uncancel. It only marks account as active and allows you to reuse it again.

Input request fields:

Parameter

Description

Validation

UsernameUsername, aka AccountName. It's globally uniqueString
UncanelReasonReason for uncancel backup account.String, Optional
SendEmailToCustomer

When set true backup account will get email notification on successful uncancel.


BEFORE set it to true, go to Dashboard and check your email templates. Ensure you have one with the code 'UMSUNCANCEL'. If you don't have it try to load parents'/Infrascale ones using button 'Add missing email templates' 

Bool

Request example:

Request
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sos="sosonlinebackup.com">
   <soapenv:Header>
      <sos:AuthHeader>
        <sos:UserName>****WS</sos:UserName>
         <sos:Password>j****</sos:Password>
      </sos:AuthHeader>
   </soapenv:Header>
   <soapenv:Body>
      <sos:UncancelAccount>
         <sos:request>
            <sos:Username>petertest-2019-10-30@dbg.sossync.com</sos:Username>
            <sos:UncancelReason>Payment received at 2019-10-30 and he wants his old account back</sos:UncancelReason>
            <sos:SendEmailToCustomer>false</sos:SendEmailToCustomer>
         </sos:request>
      </sos:UncancelAccount>
   </soapenv:Body>
</soapenv:Envelope>

Output result fields:

Returns only result code.

Important custom result codes.

Result.Result

Result.Code

Description (not returned in the response)

53
ObjectEntityMismatch

Attempt to use account not from your hierarchy. 

OR Attempt to use account from unmanaged entity hierarchy

OR Attempt to use account from cancelled entity

502
InvalidParameterUserName

Username format is not valid

OR Attempt to use unknown Username

1060
AccountIsNotCanceled
Backup account is already NOT cancelled
5020CannotSendEmail

Account has been uncancelled, but we could not send email to backup account.

Response example:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <soap:Body>
      <UncancelAccountResponse xmlns="sosonlinebackup.com">
         <UncancelAccountResult>
            <Result>
               <Result>0</Result>
               <Code>Success</Code>
            </Result>
         </UncancelAccountResult>
      </UncancelAccountResponse>
   </soap:Body>
</soap:Envelope>

Entity Management

 

Operation: GetEntityHierarchy 

Sandbox:    https://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/EntityManagementService.asmx?op=GetEntityHierarchy

Productionhttps://secure.sosonlinebackup.com/WebApi/AccountManagementService/EntityManagementService.asmx?op=GetEntityHierarchy

it will provide sufficient info to build an entity tree on the client side

Input request fields

Parameter

Description

Validation

TargetEntityID

ID of the Partner/Distributor, i.e. the root of the hierarchy thee.

Int, >=0. Use 0 for yourself.

IncludeInactiveWhen true the output will include canceled, suspended and other types of not active entitiesBool
ConnectwiseIntegratorEntityIDEntityID for which Connectwise is configured. If not set, then TargetEntityID used insteadInt, Optional

Returns an array of the rows.  Each output row has following format.

Output Value

Description

Validation

EntityIDID of the EntityInt, >0.
EntityNameInternal name of the entityString
ParentEntityIDParent for the entityInt, >0.

DistributorEntityID

ID of the Distributor

Int, >0.

PartnerEntityID

ID of the Partner

Int, >=0. 0 means direct Company of the Distributor or Distributor itself.

CompanyEntityID

ID of the Company

Int, >=0. 0 means Partner of the Distributor.

EntityTypeEntity typeInfrascale, Distributor, Partner, Company, Unknown
IsActiveTrue, when entity is activeBool
ConnectWiseTicketingCompanyIdConnectwise company identifierString

Example of the output  when  target entity is distributor.

EntityIDEntityNameParentEntityID

DistributorEntityID

PartnerEntityID

CompanyEntityID

EntityTypeIsActive
888SomeDistributor1

888

0

0

Distributortrue
111SomeDistrCompany888

888

0

111

Companytrue
112OtherDistrCompany8888880112Companyfalse
221SomePartner18888882210Partnertrue
311Company1OfPartner1221888221311Companytrue
312Company2OfPartner1221888221312Companytrue
225SomePartner28888882250Partnerfalse
226SomePartner38888882260Partnertrue
321Company1OfPartner3226888226321Companyfalse

The  distributor in the example has

  • ID = 888 and it's root node for the request (TargetEntityID =0 or TargetEntityID =888 ).
  • Two direct companies (111, 112)
  • Three partners  (221, 225, 226)
  • Partner 221 with two companies (311, 312 )
  • Partner 225 with no companies
  • Partner 226 with one company (321 )


Example  of the output when target  entity is partner

EntityIDEntityNameParentEntityID

DistributorEntityID

PartnerEntityID

CompanyEntityID

EntityTypeIsActive
221SomePartner18888882210Partnertrue
311Company1OfPartner1221888221311Companytrue
312Company2OfPartner1221888221312Companytrue

The  partner in the example has 

  • ID = 221 and it's root node for the request.
  • Two companies (311, 312 )

 Example  of the output when target  entity is company 

EntityIDEntityNameParentEntityID

DistributorEntityID

PartnerEntityID

CompanyEntityID

EntityTypeIsActive
312Company2OfPartner1221888221312Companytrue

 

Operation: GetEntityDirectAccounts

 Sandbox:   https://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/EntityManagementService.asmx?op=GetEntityDirectAccounts

 Productionhttps://secure.sosonlinebackup.com/WebApi/AccountManagementService/EntityManagementService.asmx?op=GetEntityDirectAccounts

Provides a list of direct entity accounts

 Input request fields 

Parameter

Description

Validation

TargetEntityID

ID of the Partner/Distributor, i.e. the root of the hierarchy thee.

Int, >=0. Use 0 for yourself.

IncludeInactive

When true the output will include canceled, suspended and other types of not active accounts

Bool
PageSizeNumber of rows per page.int <= 5000
PageIndexIdentifies 1-based index of data frame. Data are sorted by Username.Int, >=1.

Returns following object

Output Value

Description

Validation

TotalRecords

Total accounts in the entity

int, >=0

Accounts

Array of the rows with account info

AccountInfo[]

 Each output row in the Accounts field  has following format. 

Output Value

Description

Validation

Username

Username, aka AccountName. It's globally unique

String

IsActive

True, when user is active

Bool

IsEntityAdminTrue, when user is entity admin of the target entityBool
SignupDateAccount sign up dateDateTime
EmailAccount emailString
IsMonitoredTrue, when user backup activity is monitored in our databases.Bool
IsEndGuardEnabledTrue, when user has EndGuard enabled.Bool


Operation: GetEntityAccounts

 Sandbox:   https://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/EntityManagementService.asmx?op=GetEntityAccounts

 Productionhttps://secure.sosonlinebackup.com/WebApi/AccountManagementService/EntityManagementService.asmx?op=GetEntityAccounts

Provides a list of all active accounts in the entity tree. For each account it counts number of active devices on each OS "protected"* with our software.

Device can be deactivated on the dashboard. It's re-activated automatically with each login (interactive or non-interactive) of user  on the device.


 Input request fields 

Parameter

Description

Validation

TargetEntityID

ID of the Partner/Distributor, i.e. the root of the hierarchy thee.

Int, >=0. Use 0 for yourself.

PageSizeNumber of rows per page.int <= 10000
PageIndexIdentifies 1-based index of data frame. Data are sorted by ParentEntityID, EntityID, Username.Int, >=1.

Returns following object

Output Value

Description

Validation

TotalRecords

Total accounts in the entity

int, >=0

Accounts

Array of the rows with account info

AccountDevicesInfo[]

Request
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  <s:Header>
    <Action s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none">sosonlinebackup.com/GetEntityAccounts</Action>
    <h:AuthHeader xmlns="sosonlinebackup.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:h="sosonlinebackup.com">
      <UserName>AacmeES</UserName>
      <Password>*****</Password>
    </h:AuthHeader>
  </s:Header>
  <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <GetEntityAccounts xmlns="sosonlinebackup.com">
      <request>
        <TargetEntityID>849</TargetEntityID>
        <PageSize>5</PageSize>
        <PageIndex>1</PageIndex>
      </request>
    </GetEntityAccounts>
  </s:Body>
</s:Envelope>

 Each output row in the Accounts field  has following format. 

Output Value

Description

Validation

ParentEntityIDID of the Entity who owns entity that owns this account.Int, >0.
EntityIDID of the Entity who owns this account.Int, >0.

Username

Username, aka AccountName. It's globally unique

String

IsEntityAdminTrue, when user is entity admin of the entity indicated by EntityIDBool
SignupDateAccount's sign up dateDateTime
EmailAccount's emailString
FullNameAccount's full nameBool
WindowsDevicesTotalTotal number of "protected"* devices with Windows OS.Int, >=0.
AndroidDevicesTotalTotal number of "protected"* devices with Android OS.Int, >=0
MacDevicesTotalTotal number of "protected"* devices with Mac OS.Int, >=0
UsedSpaceKBSpace utilization by accountlong, >=0
AccountSizeMBStorage quota for accountlong, >0

 * "Protected" here only means that device had our software installed and successfully authorized on it at least once.

Response
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <s:Header xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" />
  <soap:Body>
    <GetEntityAccountsResponse xmlns="sosonlinebackup.com">
      <GetEntityAccountsResult>
        <Result>
          <Result>0</Result>
          <Code>Success</Code>
        </Result>
        <AccountsTotal>828</AccountsTotal>
        <Accounts>
          <AccountDevicesInfo>
            <ParentEntityID>1</ParentEntityID>
            <EntityID>849</EntityID>
            <Username>1123test</Username>
            <IsEntityAdmin>false</IsEntityAdmin>
            <SignupDate>2016-05-19T12:44:31.087</SignupDate>
            <Email>fdsfsdfsd@fdsfsdfsd.fsd</Email>
            <FullName>fdsfsdfsd</FullName>
            <WindowsDevicesTotal>1</WindowsDevicesTotal>
            <AndroidDevicesTotal>0</AndroidDevicesTotal>
            <MacDevicesTotal>0</MacDevicesTotal>
            <UsedSpaceKB>20314121</UsedSpaceKB>
            <AccountSizeMB>51200</AccountSizeMB>
          </AccountDevicesInfo>
          <AccountDevicesInfo>
            <ParentEntityID>1</ParentEntityID>
            <EntityID>849</EntityID>
            <Username>3test278@sosonlinebackup.com</Username>
            <IsEntityAdmin>false</IsEntityAdmin>
            <SignupDate>2014-02-04T08:41:12.633</SignupDate>
            <Email>3test278@sosonlinebackup.com</Email>
            <FullName>fdgdfgd</FullName>
            <WindowsDevicesTotal>3</WindowsDevicesTotal>
            <AndroidDevicesTotal>0</AndroidDevicesTotal>
            <MacDevicesTotal>2</MacDevicesTotal>
            <UsedSpaceKB>50668</UsedSpaceKB>
            <AccountSizeMB>51200</AccountSizeMB>
          </AccountDevicesInfo>
          <AccountDevicesInfo>
            <ParentEntityID>1</ParentEntityID>
            <EntityID>849</EntityID>
            <Username>3test280@sosonlinebackup.com</Username>
            <IsEntityAdmin>false</IsEntityAdmin>
            <SignupDate>2014-02-05T05:18:11.8</SignupDate>
            <Email>3test280@sosonlinebackup.com</Email>
            <FullName>sdsdsdsd</FullName>
            <WindowsDevicesTotal>1</WindowsDevicesTotal>
            <AndroidDevicesTotal>0</AndroidDevicesTotal>
            <MacDevicesTotal>2</MacDevicesTotal>
            <UsedSpaceKB>1261241</UsedSpaceKB>
            <AccountSizeMB>206848</AccountSizeMB>
          </AccountDevicesInfo>
          <AccountDevicesInfo>
            <ParentEntityID>1</ParentEntityID>
            <EntityID>849</EntityID>
            <Username>5578_us_1</Username>
            <IsEntityAdmin>false</IsEntityAdmin>
            <SignupDate>2014-05-22T07:48:45.12</SignupDate>
            <Email>qwe@qwe.qwe</Email>
            <FullName>qweqwe</FullName>
            <WindowsDevicesTotal>0</WindowsDevicesTotal>
            <AndroidDevicesTotal>0</AndroidDevicesTotal>
            <MacDevicesTotal>0</MacDevicesTotal>
            <UsedSpaceKB>0</UsedSpaceKB>
            <AccountSizeMB>58368</AccountSizeMB>
          </AccountDevicesInfo>
          <AccountDevicesInfo>
            <ParentEntityID>1</ParentEntityID>
            <EntityID>849</EntityID>
            <Username>6_7_2_Sasha@WIN-LD0K5MSGVSR</Username>
            <IsEntityAdmin>false</IsEntityAdmin>
            <SignupDate>2017-01-18T04:47:21.807</SignupDate>
            <Email>6_7_2_Sasha@WIN-LD0K5MSGVSR.local</Email>
            <FullName>Not set</FullName>
            <WindowsDevicesTotal>1</WindowsDevicesTotal>
            <AndroidDevicesTotal>0</AndroidDevicesTotal>
            <MacDevicesTotal>0</MacDevicesTotal>
            <UsedSpaceKB>0</UsedSpaceKB>
            <AccountSizeMB>51200</AccountSizeMB>
          </AccountDevicesInfo>


Operation: GetAccountEntities

  Sandbox:     https://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/EntityManagementService.asmx?op=GetAccountEntities

  Production: https://secure.sosonlinebackup.com/WebApi/AccountManagementService/EntityManagementService.asmx?op=GetAccountEntities

 will provide info about account's place  in the entity hierarchy, i.e his distributor, partner, company and direct parent

  Input request fields  

Parameter

Description

Validation

TargetEntityID

ID of the Partner/Distributor, i.e. the root of the hierarchy thee.

Int, >=0. Use 0 for yourself.

UsernameBackup account unique ID, aka Username (AccountName)String, "^[^<>]{0,100}$"

Returns following object 

Output Value

Description

Validation

DistributorEntityID

ID of the Distributor

Int, >0.

PartnerEntityID

ID of the Partner

Int, >=0. 0 means direct Company of the Distributor or Distributor itself.

CompanyEntityID

ID of the Company

Int, >=0. 0 means Partner of the Distributor or Distributor itself.

ParentEntityTypeEntity typeInfrascale, Distributor, Partner, Company, Unknown
ParentEntityID

ID of the direct account Entity.

It either DistributorEntityID, PartnerEntityID or CompanyEntityID.

Int, >0.
IsAccountActiveTrue, when entity is activeBool
IsEntityAdminTrue, when user is entity admin of the parent entityBool
DistributorNameInternal name of the DistributorString.
PartnerNameInternal name of the PartnerString. Empty string means direct Company of the Distributor or Distributor itself.
CompanyNameInternal name of the CompanyString. Empty string means Partner of the Distributor or Distributor itself.
ParentNameInternal name of the ParentString
SignupDateAccount sign up dateDateTime
EmailAccount emailString
IsMonitoredTrue, when user backup activity is monitored in our databasesBool
IsEndGuardEnabledTrue, when user has EndGuard enabled.Bool
IsParentEntityActiveTrue, when account entity is activeBool


Operation: CancelEntity

Sandboxhttps://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/EntityManagementService.asmx?op=CancelEntity

Productionhttps://secure.sosonlinebackup.com/WebApi/AccountManagementService/EntityManagementService.asmx?op=CancelEntity

Permanently removes entity (Partner, Company or Partner's Company) and all descendant accounts/companies in target entity hierarchy :

  • All active accounts will be cancelled permanently.
  • All active sub-companies will be cancelled permanently.
  • All Shadow Protect v5 licenses will be transferred to caller's entity.

Warning: Accidentally cancelled entity cannot be activated again by API call. are hard and tedious to reactivate again (see Uncancel operation for details).

Infrascale Customer Support team can do it, but it will take some time (days).

CancelEntity (unlike SuspendEntity) is NOT fully revertible operation because it DOES release resource (disk space, licenses  & so on) held by entity.


Request:

Parameter

Description

Validation

TargetEntityId

ID of the Partner/Company to cancel

Int > 0 , Caller cannot cancel itself. Parent only can cancel it's child entities

Request example:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  <s:Header>
    <Action s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none">sosonlinebackup.com/CancelEntity</Action>
    <h:AuthHeader xmlns="sosonlinebackup.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:h="sosonlinebackup.com">
      <UserName>User***</UserName>
      <Password>P***</Password>
    </h:AuthHeader>
  </s:Header>
  <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <CancelEntity xmlns="sosonlinebackup.com">
      <request>
        <TargetEntityId>89214</TargetEntityId>
      </request>
    </CancelEntity>
  </s:Body>
</s:Envelope>

Response:

Output Value

Description

Type

AlreadyCanceled

Re-enterability flag. It is set if attempt is taken to cancel already canceled entity

bool

Response example:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <s:Header xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" />
  <soap:Body>
    <CancelEntityResponse xmlns="sosonlinebackup.com">
      <CancelEntityResult>
        <Result>
          <Result>0</Result>
          <Code>Success</Code>
        </Result>
        <AlreadyCanceled>false</AlreadyCanceled>
      </CancelEntityResult>
    </CancelEntityResponse>
  </soap:Body>
</soap:Envelope>
Operation: UncancelEntity  (added on November 2019)

Sandboxhttps://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/EntityManagementService.asmx?op=UncancelEntity

Productionhttps://secure.sosonlinebackup.com/WebApi/AccountManagementService/EntityManagementService.asmx?op=CancelEntity

Marks entity as active again. If entity is company and it has backup account administrator of this entity it'll un-cancelled automatically. 

Important notes:  

It's not full rollback operation to CancelEntity because it doesn't:

  • uncancel  entities in hierarchy 
  • uncancel  direct backup accounts
  • uncancel  backup accounts  in hierarchy 
  • return revoked licences 
  • so on

Also take note that system cleanups data hold by cancelled accounts & entities after some grace period. For instance, backed up files are automatically deleted in about 3 month, used licences usually get deactivated in about 7 days,  unused licences get transferred to parent entity immediately  and so on.  Uncancel operation won't  revert any of those  or similar  purge actions those already partially or fully completed by the date of uncancel. It only marks entity as active and allows you to reuse it again.

Input request fields:

Parameter

Description

Validation

TargetEntityId

ID of the Partner/Company to uncancel

Int > 0 , Caller cannot uncancel himself.

Request example:

Request
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sos="sosonlinebackup.com">
   <soapenv:Header>
      <sos:AuthHeader>
        <sos:UserName>****WS</sos:UserName>
         <sos:Password>j****</sos:Password>
      </sos:AuthHeader>
   </soapenv:Header>
   <soapenv:Body>
      <sos:UncancelEntity>
         <sos:request>
            <sos:TargetEntityId>221847</sos:TargetEntityId>
         </sos:request>
      </sos:UncancelEntity>
   </soapenv:Body>
</soapenv:Envelope>

Output response fields:

Returns only result code.

Important custom result codes.

Result.Result

Result.Code

Description (not returned in the response)

53
ObjectEntityMismatch

Attempt to use entity not from your hierarchy. 

OR Attempt to use entity from unmanaged entity hierarchy

OR Attempt to use not existing entity

3309
EntityExpired

Entity is not Cancelled but Expired, i.e. trial period has ended.

3351
EntityStatusFlowTransitionViolation
Backup account is already NOT cancelled

Response example:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <soap:Body>
      <UncancelEntityResponse xmlns="sosonlinebackup.com">
         <UncancelEntityResult>
            <Result>
               <Result>0</Result>
               <Code>Success</Code>
            </Result>
         </UncancelEntityResult>
      </UncancelEntityResponse>
   </soap:Body>
</soap:Envelope>


Operation: SuspendEntity

Sandboxhttps://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/EntityManagementService.asmx?op=SuspendEntity

Productionhttps://secure.sosonlinebackup.com/WebApi/AccountManagementService/EntityManagementService.asmx?op=SuspendEntity

Suspends entity (Partner, Company or Partner's Company).

SuspendEntity (unlike CancelEntity) is fully revertible operation because it doesn't release any resource (disk space, licenses  & so on) held by entity . 

Suspended entities can be activated again by API call (see ActivateEntity).  

Request:

Parameter

Description

Validation

TargetEntityId

ID of the Partner/Company to cancel

Int > 0 , Caller cannot cancel itself. Parent only can cancel it's child entities

Request example:


<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  <s:Header>
    <Action s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none">sosonlinebackup.com/SuspendEntity</Action>
    <h:AuthHeader xmlns="sosonlinebackup.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:h="sosonlinebackup.com">
      <UserName>User***</UserName>
      <Password>P***</Password>
    </h:AuthHeader>
  </s:Header>
  <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <SuspendEntity xmlns="sosonlinebackup.com">
      <request>
        <TargetEntityId>89214</TargetEntityId>
      </request>
    </SuspendEntity>
  </s:Body>
</s:Envelope>

Response:

Output Value

Description

Type

AlreadySuspended

Re-enterability flag. It is set if attempt is taken to suspend already suspended entity

bool
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <s:Header xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" />
  <soap:Body>
    <SuspendEntityResponse xmlns="sosonlinebackup.com">
      <SuspendEntityResult>
        <Result>
          <Result>0</Result>
          <Code>Success</Code>
        </Result>
        <AlreadySuspended>false</AlreadySuspended>
      </SuspendEntityResult>
    </SuspendEntityResponse>
  </soap:Body>
</soap:Envelope>
Operation: ActivateEntity

Sandboxhttps://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/EntityManagementService.asmx?op=ActivateEntity

Productionhttps://secure.sosonlinebackup.com/WebApi/AccountManagementService/EntityManagementService.asmx?op=ActivateEntity

Activates suspended entities (Partner, Company or Partner's Company) 

Request:

Parameter

Description

Validation

TargetEntityId

ID of the Partner/Company to cancel

Int > 0 , Caller cannot cancel itself. Parent only can cancel it's child entities

Request example:


<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  <s:Header>
    <Action s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none">sosonlinebackup.com/ActivateEntity</Action>
    <h:AuthHeader xmlns="sosonlinebackup.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:h="sosonlinebackup.com">
      <UserName>User***</UserName>
      <Password>P***</Password>
    </h:AuthHeader>
  </s:Header>
  <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <ActivateEntity xmlns="sosonlinebackup.com">
      <request>
        <TargetEntityId>89214</TargetEntityId>
      </request>
    </ActivateEntity>
  </s:Body>
</s:Envelope>


Response:

Output Value

Description

Type

AlreadyActivated

Re-enterability flag. It is set if attempt is taken to activate already active entity

bool

Request example:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <s:Header xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" />
  <soap:Body>
    <ActivateEntityResponse xmlns="sosonlinebackup.com">
      <ActivateEntityResult>
        <Result>
          <Result>0</Result>
          <Code>Success</Code>
        </Result>
        <AlreadyActive>false</AlreadyActive>
      </ActivateEntityResult>
    </ActivateEntityResponse>
  </soap:Body>
</soap:Envelope>


Operation: AuthenticateDashboardUser (added on July 2019)

Sandboxhttps://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/EntityManagementService.asmx?op=AuthenticateDashboardUser

Productionhttps://secure.sosonlinebackup.com/WebApi/AccountManagementService/EntityManagementService.asmx?op=AuthenticateDashboardUser

Authenticates Dashboard user from your hierarchy. Returns information about it and his temporary security token. 

Request:


Parameter

Description

Validation

UserName

Login name for dashboard user. 

Required, "^(?!^\d+(WS|Ws|wS|ws|FL|Fl|fL|fl)$)(?!^(U|u)\d+$)[a-zA-Z0-9@\._-]{3,50}$"

Password

Password of the dashboard user

Required, "^[a-zA-Z0-9!@#$%^&*()]{6,20}$"


Request example:


<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:sos="sosonlinebackup.com">
   <soap:Header>
      <sos:AuthHeader>
         <sos:UserName>A****</sos:UserName>
         <sos:Password>V*****</sos:Password>
      </sos:AuthHeader>
   </soap:Header>
   <soap:Body>
      <sos:AuthenticateDashboardUser>
         <sos:request>
            <sos:UserName>Dan*****</sos:UserName>
            <sos:Password>tf****</sos:Password>
         </sos:request>
      </sos:AuthenticateDashboardUser>
   </soap:Body>
</soap:Envelope>


Response:

Output Value

Description

Type

EntityId

Entity ID of given dashboard user.  It unique identifies dashboard company/partner/distributor

int, >0 when set
ParentEntityIdEntity ID of the parent company for given dashboard user.  It unique identifies dashboard company/partner/distributorint, >0 when set
LocaleId

Preferable language for UI for this user.  Following is a list of supported languages as on now

  • 1 en_US
  • 4 nl_NL
  • 5 de_DE
  • 6 es_ES
  • 7 fr_FR
  • 11 pt_BR
  • 12 da_DK
  • 13 sv_SE

More details

int, >0 when set
IsManaged

Are you able to modify parameters and objects controlled by this entity.

E.g. backup accounts, ICAB accounts, appliances and so on.

When it's false you have read-only access.

bool
AuthenticationTokenInternal temporarily security token. Might be useful for some new web methods.string, null-able
ValidTillUtcDateExpiration date in UTC for AuthenticationToken.datetime, null-able




Following are important result codes (in addition to listed at the top of the page).

Result.Result

Result.Code

Description (not returned in the response)

150
InvalidUserNameOrPassword

Provided dashboard username is not found or provided password is not valid.

3070
AccountIsNotActive

Either provided dashboard user is not active or his entity (aka dashboard company)  is not active 

or his entity trial period is ended

53ObjectEntityMismatch

This account is not from your hierarchy, i.e. it's not your partner.

You won't be able to manage it using you Web API credential.

You don't have even read access to his data.


Response example:

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <soap:Body>
      <AuthenticateDashboardUserResponse xmlns="sosonlinebackup.com">
         <AuthenticateDashboardUserResult>
            <Result>
               <Result>0</Result>
               <Code>Success</Code>
            </Result>
            <EntityId>50647</EntityId>
            <ParentEntityId>849</ParentEntityId>
            <LocaleId>11</LocaleId>
            <IsManaged>false</IsManaged>
            <AuthenticationToken>01e36927e63746eb873c8e68fc159e3b</AuthenticationToken>
            <ValidTillUtcDate>2019-08-01T07:25:01.4035602Z</ValidTillUtcDate>
         </AuthenticateDashboardUserResult>
      </AuthenticateDashboardUserResponse>
   </soap:Body>
</soap:Envelope>


Partner Management

 

Operation: CreatePartner  

 

Sandbox:    https://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/PartnerManagementService.asmx?op=CreatePartner

Production:  https://secure.sosonlinebackup.com/WebApi/AccountManagementService/PartnerManagementService.asmx?op=CreatePartner

*Can break compatibility even in a case of unbreakable changes.  Requires special notification*


Parameter

Description

Validation

PartnerName

Non-unique identifier of partner. Max 50 characters according to the regular expression provided.

Required,"^[a-zA-Z0-9]([a-zA-Z0-9\.-_\s&]){0,48}([a-zA-Z0-9\.]){1}$"

GeneralContactPerson

Name of contact person

Required, "^[a-zA-Z]([a-zA-Z\.-]|\s){1,49}$"

GeneralContactEmail

Email

Required, "^[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9_-]+)*\.([a-zA-Z]{2,}){1,49}$"

DiskQuotaGB

Storage quota for partner

Integer >= 1

AllowUploadOverAccountSize


Bool

AutoUpgradeClientAppIndicates if all accounts of new partner will use automatic update of client softwarebool , Optional, false if missed
SendResetPasswordEmail

 If true, email with reset password link is sent to user.

See details about reset password link in SendResetPasswordLink method description

bool , Optional, false if missed

 

Return ID of created partner and dashboard user name.


  

Sandbox:    https://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/PartnerManagementService.asmx?op=SendResetPasswordLink

Production:  https://secure.sosonlinebackup.com/WebApi/AccountManagementService/PartnerManagementService.asmx?op=SendResetPasswordLink


Parameter

Description

Validation

TargetEntityID

ID of the Partner/Company/Distributor where you want to reset password for admin

Int, >=0. Use 0 for yourself.

Returns dashboard user which will get reset password link .

Email is sent to GeneralContactEmail provided on partner creation.

The look and content of reset password email you can configure in the dashboard

https://dashboard.managedoffsitebackup.net/EmailTemplate/Edit?code=EntityResetPwd&localeID=1

https://dashboard.managedoffsitebackup.net/EmailTemplate (template with code "EntityResetPwd")

By default, for security sake, dashboard user name is not sent in email.

It means user must already know his user name, or you should inform him using other channels (e.g. phone, skype and so on).

Also, if you wish,  you can add user name into email  using place-holder "#?UserName?#" (check image above)

Reset password link valid

  • until next one is generated 
  • until it's  is used 
  • no longer then one day

Current password of user is valid and not changed until someone will follow the link and provide new password (there is a web form with button).


Operation: CreateAdditionalAdmin

  

Sandbox:    https://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/PartnerManagementService.asmx?op=CreateAdditionalAdmin

Production:  https://secure.sosonlinebackup.com/WebApi/AccountManagementService/PartnerManagementService.asmx?op=CreateAdditionalAdmin


Parameter

Description

Validation

TargetEntityID

ID of the Partner/Company/Distributor where new administrator is needed

Int, >=0. Use 0 for yourself.

UserName

Login name for dashboard. Names like 2222WS, 2222FL and U2222 are forbidden here.

Required, "^(?!^\d+(WS|Ws|wS|ws|FL|Fl|fL|fl)$)(?!^(U|u)\d+$)[a-zA-Z0-9@\._-]{3,50}$"

Password

Password, leave it empty if you want system to generate it

Optional, "^[a-zA-Z0-9!@#$%^&*()]{6,20}$"

Returns generated password and standard Result object. Can return following custom result codes.

Result.Result

Result.Code

Description (not returned in the response)

52
AlreadyExists
User with this name already exists in some entity. Try to pick up another user name.


Operation: EditPartner  

 Sandbox:     https://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/PartnerManagementService.asmx?op=EditPartner

Production:  https://secure.sosonlinebackup.com/WebApi/AccountManagementService/PartnerManagementService.asmx?op=EditPartner

*Can break compatibility even in a case of unbreakable changes.  Requires special notification*

Parameter

Description

Validation

PartnerEntityIdPartner IDInteger >= 1

GeneralContactPerson

Name of contact person

"^[a-zA-Z]([a-zA-Z\.-]|\s){1,49}$"

GeneralContactEmail

Email

"^[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9_-]+)*\.([a-zA-Z]{2,}){1,49}$"

DiskQuotaGB

Storage quota for partner

Nullable Integer >= 1

AllowUploadOverAccountSize


Nullable Bool

AutoUpgradeClientApp

Indicates if all accounts of partner will use automatic update of client software

bool , Optional, no changes if missed
SetAutoUpgradeClientAppForChildrenIndicates if AutoUpgradeClientApp is also set for partner companiesbool , Optional, false if missed


Operation: GetCompaniesSummary 

Sandbox: https://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/PartnerManagementService.asmx?op=GetCompaniesSummary

Production: https://secure.sosonlinebackup.com/WebApi/AccountManagementService/PartnerManagementService.asmx?op=GetCompaniesSummary

*Can break compatibility even in a case of unbreakable changes.  Requires special notification*


Retrieves general information about partner's companies

Parameter

Description

Validation

PartnerEntityId

Identifies Partner for which all companies info is extracted

Int

It is supposed that client of this service belongs to entity identified by ApiCallerEntityId

then following is validated:

  • PartnerEntityId should identify partner which is descendant for ApiCallerEntityId
    if PartnerEntityId is 0,  all companies for ApiCallerEntityId are extracted

Returns result as array where each item contains following fields:


Output Value

Description

TypeUnits

 CompanyEntityId

Identifies company

int
CompanyNameName of companystring
DiskQuotaGBDisk space quota for companylongGB
UsedSpaceKBUsed space utilization by contained accountsLongKilobytes
AllocatedSpaceMBSpace allocation by contained accountsLongMegabytes
NumberOfAccountsNumber of active accounts(AVG devices)int
NumberOfLicensesShadowProtectV5Number of ShadowProtect Licenses assigned to companyint
DataCenterCountryCodeIsoA2ISO 3166-1 two-letter country code (alpha-2). Shows location of data center, where company backup accounts are created.string
NumberOfMobileDevicesNumber of mobile devices for active accountsint
NumberOfDesktopDevicesNumber of desktop devices for active accountsint
Operation: GetPartnerDetails (not available)

Sandbox:    https://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService//CompanyManagementService.asmx?op=GetPartnerDetails

Productionhttps://secure.sosonlinebackup.com/WebApi/AccountManagementService//CompanyManagementService.asmx?op=GetPartnerDetails

*Can break compatibility even in a case of unbreakable changes.  Requires special notification*

Retrieves detailed information about  specific partner

Parameter

Description

Validation

PartnerEntityId

Identifies partner.

Int

It is supposed that client of this service belongs to entity identified by ApiCallerEntityId

then following is validated:

  • PartnerEntityId should identify entity which is descendant for ApiCallerEntityId

if 0 ,  ApiCallerEntityId is used for Partner identification

Returns result with following fields:

Output Value

Description

TypeUnits

PartnerEntityId

EntityId of partner

Int
PartnerNameName of partnerString
DiskQuotaGBQuota(Backup plan of Partner)LongGigabytes
NumberOfLicensesShadowProtectV5Number of licenses assigned to partnerInt
AllowUploadOverAccountSizeShows if accounts are able to exceed partner's quotaBoolean
Operation: GetPartnerDetailsByApplicationUser

Sandbox:    https://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/PartnerManagementService.asmx?op=GetPartnerDetailsByApplicationUser

Production: https://secure.sosonlinebackup.com/WebApi/AccountManagementService/PartnerManagementService.asmx?op=GetPartnerDetailsByApplicationUser

Retrieves detailed information about  specific partner by Partner Dashboard Administrator credentials

Request example: 

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  <s:Header>
    <Action s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none">sosonlinebackup.com/GetPartnerDetailsByApplicationUser</Action>
    <h:AuthHeader xmlns="sosonlinebackup.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:h="sosonlinebackup.com">
      <UserName>avg9</UserName>
      <Password>****</Password>
    </h:AuthHeader>
  </s:Header>
  <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <GetPartnerDetailsByApplicationUser xmlns="sosonlinebackup.com">
      <request />
    </GetPartnerDetailsByApplicationUser>
  </s:Body>
</s:Envelope>

Returns result with following fields: 

Output Value

Description

TypeUnits

PartnerEntityId

EntityId of partner

Int
PartnerNameName of partnerString
DiskQuotaGBQuota(Backup plan of Partner)LongGigabytes
NumberOfLicensesShadowProtectV5Number of licenses assigned to partnerInt
AllowUploadOverAccountSizeShows if accounts are able to exceed partner's quotaBoolean

Response example: 

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <s:Header xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" />
  <soap:Body>
    <GetPartnerDetailsByApplicationUserResponse xmlns="sosonlinebackup.com">
      <GetPartnerDetailsByApplicationUserResult>
        <Result>
          <Result>0</Result>
          <Code>Success</Code>
        </Result>
        <PartnerEntityId>62136</PartnerEntityId>
        <PartnerName>Avgtest9</PartnerName>
        <DiskQuotaGB>1</DiskQuotaGB>
        <NumberOfLicensesShadowProtectV5>0</NumberOfLicensesShadowProtectV5>
        <AllowUploadOverAccountSize>false</AllowUploadOverAccountSize>
      </GetPartnerDetailsByApplicationUserResult>
    </GetPartnerDetailsByApplicationUserResponse>
  </soap:Body>
</soap:Envelope>


Operation: CancelEmptyPartner  

Sandbox:    https://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/PartnerManagementService.asmx?op=CancelEmptyPartner

Production: https://secure.sosonlinebackup.com/WebApi/AccountManagementService/PartnerManagementService.asmx?op=CancelEmptyPartner

Completely removes entity from system. Partner's entity should be empty. It cannot contain companies, licenses.

Disk quota of canceled partner is excluded from allocated space of parent distributor.

If Partner is not empty, error EntityIsNotEmpty error code is returned.

Parameter

Description

Validation

PartnerEntityId

Identifies partner to cancel.

Int > 0

It is supposed that client of this service belongs to entity identified by ApiCallerEntityId

then following condition is validated:

  • PartnerEntityId should identify child partner of ApiCallerEntityId


ReasonDescription of reasonString, optional, MaxLength = 500

Returns following output:

Output Value

Description

Type

AlreadyCanceled

Re-enterability flag. It is set if attempt is taken to cancel already canceled partner

bool


Operation: MoveCompany  

Sandboxhttps://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/PartnerManagementService.asmx?op=MoveCompany

Productionhttps://secure.sosonlinebackup.com/WebApi/AccountManagementService/PartnerManagementService.asmx?op=MoveCompany

*Can break compatibility even in a case of unbreakable changes.  Requires special notification*

Distributor can move Company with all resources(accounts, licenses) from source Partner to destination Partner

All non-direct account backup policies (i.e. when entity backup policy belongs to the parent entity ) will be unassigned.

Parameter

Description

Validation

CompanyEntityId

Identifies company to move.

Int > 0

It is supposed that client of this service belongs to entity identified by ApiCallerEntityId

then following condition is validated:

  • CompanyEntityId should identify descedant company of ApiCallerEntityId
  • CompanyEntityId should identify child company of FromPartnerEntityId


FromPartnerEntityIdIdentifies Partner's entity which is current owner for CompanyEntityId

Int > 0

It is supposed that client of this service belongs to entity identified by ApiCallerEntityId

then following condition is validated:

  • FromPartnerEntityId should identify child partner of ApiCallerEntityId
  • FromPartnerEntityId should identify parent partner for CompanyEntityId
ToPartnerEntityIdIdentifies Partner's entity which is new owner for CompanyEntityId 

Int > 0

It is supposed that client of this service belongs to entity identified by ApiCallerEntityId

then following condition is validated:

  • ToPartnerEntityId should identify child partner of ApiCallerEntityId

IncreaseQoutaOfDestinationPartnerIf flag is set, quota of entity identified by ToPartnerEntityId should be increased by quota of moving Company

Boolean. If false(default), quota size of ToPartnerEntityId is validated:

ToPartnerEntityId.FreeSpace >= CompanyEntityId.DiskQuotaSize



Company Management

Operation: CreateCompany

Sandbox:    https://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/CompanyManagementService.asmx?op=CreateCompany

Production: https://secure.sosonlinebackup.com/WebApi/AccountManagementService/CompanyManagementService.asmx?op=CreateCompany

*Can break compatibility even in a case of unbreakable changes.  Requires special notification*

Parameter

Description

Validation

TargetEntityId

ID of the parent Partner

Required, integer

CompanyName

Required,"^[a-zA-Z0-9]([a-zA-Z0-9\.-_\s&]){0,48}([a-zA-Z0-9\.]){1}$"

GeneralContactPersonName of contact personRequired, "^[a-zA-Z]([a-zA-Z\.-]|\s){1,49}$"
GeneralContactEmailEmailRequired, "^[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9_-]+)*\.([a-zA-Z]{2,}){1,49}$"

DiskQuotaGB

Storage quota for company

Integer >= 1

AllowUploadOverAccountSize
Bool
DataCenterCountryCodeIsoA2ISO 3166-1 two-letter country code (alpha-2) 

Optional, string, can be empty.

Now available data centers in following countries:

US - UNITED STATES

GB -UNITED KINGDOM

AU -AUSTRALIA

CA -CANADA

ZA -SOUTH AFRICA

DE -GERMAN

If not set or empty, when backup account is created for company, backup server will be selected automatically.

If parameter is correct country code, all backup accounts of this entity will persist data in scope of data centers restricted by region of specific country.

If parameter is correct country code, but there are no data centers in that country, error is fired ( err-code: CannotFindDataCenterForCountry)

If parameter is not correct ISO 3166-1 two-letter country code,error is fired( err-code: InvalidInputParameters)

Availability of non US backup servers should be discussed during sales by dedicated request to Account Manager

AutoUpgradeClientAppIndicates if all accounts of new company will use automatic update of client softwarebool , Optional, false if missed
DisableEmailsNotification
Allow to disable sending all emails notificationsbool , Optional, false if missed

Returns ID of created company.

Returns CannotFindDataCenterForCountry error code if there are no data centers in country specified by parameter "DataCenterCountryCodeIsoA2"


 

Operation: CreateCompanyWithBackupAccount

Sandbox: https://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/CompanyManagementService.asmx?op=CreateCompanyWithBackupAccount

Production: https://secure.sosonlinebackup.com/WebApi/AccountManagementService/CompanyManagementService.asmx?op=CreateCompanyWithBackupAccount

Parameter

Description

Validation

CompanyName


Required,"^[a-zA-Z0-9]([a-zA-Z0-9\.-_\s&]){0,48}([a-zA-Z0-9\.]){1}$"

TargetEntityId ID of the parent Partner

Required, integer

DiskQuotaGB

Storage quota for company

Integer >= 1

BackupAccountUserFullName

Required, "^[a-zA-Z]([a-zA-Z\.-]|\s){1,30}$"
BackupAccountUserName

Required, "^[^<>]{0,100}$"
BackupAccountPassword

Required, "^[a-zA-Z0-9!@#$%^&*()]{6,20}$"
IsBackupAccountUltraSafe
Standard or Ultrasafe securityBool
BackupAccountEmail

Required, "^[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9_-]+)*\.([a-zA-Z]{2,}){1,49}$"
AllowUploadOverAccountSize

Bool
DataCenterCountryCodeIsoA2ISO 3166-1 two-letter country code (alpha-2) 

Optional, string, can be empty.

Now available data centers in following countries:

US - UNITED STATES

GB -UNITED KINGDOM

AU -AUSTRALIA

CA -CANADA

ZA -SOUTH AFRICA

If not set or empty, when backup account is created for company, backup server will be selected automatically.

If parameter is correct country code, all backup accounts of this entity will persist data in scope of data centers restricted by region of specific country.

If parameter is correct country code, but there are no data centers in that country, error is fired ( err-code: CannotFindDataCenterForCountry)

If parameter is not correct ISO 3166-1 two-letter country code,error is fired( err-code: InvalidInputParameters)

Availability of non US backup servers should be discussed during sales by dedicated request to Account Manager

AutoUpgradeClientAppIndicates if all accounts of new company will use automatic update of client softwarebool , Optional, false if missed
DisableEmailsNotification
Allow to disable sending all emails notificationsbool , Optional, false if missed

 

Returns ID of created company.

Returns CannotFindDataCenterForCountry error code if there are no data centers in country specified by parameter "DataCenterCountryCodeIsoA2"


Operation: CreateAdditionalAdmin

 

Sandbox:    https://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/CompanyManagementService.asmx?op=CreateAdditionalAdmin

Production:  https://secure.sosonlinebackup.com/WebApi/AccountManagementService/CompanyManagementService.asmx?op=CreateAdditionalAdmin


Parameter

Description

Validation

TargetEntityID

ID of the Partner/Company/Distributor where new administrator is needed

Int, >=0. Use 0 for yourself.

UserName

Login name for dashboard. Names like 2222WS, 2222FL and U2222 are forbidden here.

Required, "^(?!^\d+(WS|Ws|wS|ws|FL|Fl|fL|fl)$)(?!^(U|u)\d+$)[a-zA-Z0-9@\._-]{3,50}$"

Password

Password, leave it empty if you want system to generate it

Optional, "^[a-zA-Z0-9!@#$%^&*()]{6,20}$"

Returns generated password and standard Result object. Can return following custom result codes. 

Result.Result

Result.Code

Description (not returned in the response)

52
AlreadyExists
User with this name already exists in some entity. Try to pick up another user name.
Operation: EditCompany  

Sandbox:      https://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/CompanyManagementService.asmx?op=EditCompany

Production:  https://secure.sosonlinebackup.com/WebApi/AccountManagementService/CompanyManagementService.asmx?op=EditCompany

*Can break compatibility even in a case of unbreakable changes.  Requires special notification*

Parameter

Description

Validation

CompanyEntityIdCompany IDRequired, Integer, > 0

GeneralContactPerson

Name of contact person

optional, string, "^[a-zA-Z]([a-zA-Z\.-]|\s){1,49}$"

If missed, current value is not changed.

GeneralContactEmail

Email

optional, string, "^[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9_-]+)*\.([a-zA-Z]{2,}){1,49}$"

If missed, current value is not changed.

DiskQuotaGB

Storage quota for partner

Optional, Integer, > 0

If missed, current value is not changed.

AllowUploadOverAccountSize


optional, Bool

If missed, current value is not changed.

DataCenterCountryCodeIsoA2ISO 3166-1 two-letter country code (alpha-2) 

Optional, string, can be empty.

Now available data centers in following countries:

US - UNITED STATES

GB -UNITED KINGDOM

AU -AUSTRALIA

CA -CANADA

ZA -SOUTH AFRICA

If missed, current value is not changed.

If empty, backup server for new backup accounts will be selected automatically .

If parameter is correct country code, all new backup accounts of this entity will persist data in scope of data centers restricted by region of specific country.Existing backup accounts will continue use back servers assigned when account was created.

If parameter is correct country code, but there are no data centers in that country, error is fired ( err-code: CannotFindDataCenterForCountry)

If parameter is not correct ISO 3166-1 two-letter country code,error is fired( err-code: InvalidInputParameters)

Availability of non US backup servers should be discussed during sales by dedicated request to Account Manager

AutoUpgradeClientApp

Indicates if all accounts of company will use automatic update of client software

bool , Optional, no changes if missed

Returns CannotFindDataCenterForCountry error code if there are no data centers in country specified by parameter "DataCenterCountryCodeIsoA2"


Operation: GetUsedSpaceForAllAccounts

Sandbox: https://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService//CompanyManagementService.asmx?op=GetUsedSpaceForAllAccounts

Production: https://secure.sosonlinebackup.com/WebApi/AccountManagementService//CompanyManagementService.asmx?op=GetUsedSpaceForAllAccounts

Retrieves information about  disk space already used by accounts

Parameter

Description

Validation

EntityId

Identifies entity. Used space info is retrieved for all accounts in scope of this entity

Int

It is supposed that client of this service belongs to entity identified by ApiCallerEntityId

then following is validated:

  • EntityId should identify entity which is descendant for ApiCallerEntityId
ChildAccountsOnly

If true, restricts scope of entity by child accounts,

If false, all descendant accounts are used

Bool

Returns result as array where each item contains following fields:

Output Value

Description

TypeUnits

Username

Identifies account

String
UsedSpaceKBSpace utilization by accountLongKilobytes
Operation: GetCompanyDetails

Sandbox:    https://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService//CompanyManagementService.asmx?op=GetCompanyDetails

Production: https://secure.sosonlinebackup.com/WebApi/AccountManagementService//CompanyManagementService.asmx?op=GetCompanyDetails

Retrieves detailed information about  specific company

Parameter

Description

Validation

CompanyEntityId

Identifies company.

Int

It is supposed that client of this service belongs to entity identified by ApiCallerEntityId

then following is validated:

  • CompanyEntityId should identify entity which is descendant for ApiCallerEntityId

if 0 ,  ApiCallerEntityId is used for Company identification

Returns result with following fields:

Output Value

Description

TypeUnits

CompanyEntityId

EntityId of company

Int
CompanyNameName of companyString
DiskQuotaGBQuota(Backup plan of Company)LongGigabytes
UsedSpaceKBUsed space utilization by contained accountsLongKilobytes
AllocatedSpaceMBSpace allocation by contained accountsLongMegabytes
NumberOfAccountsNumber of contained accountsInt
NumberOfLicensesShadowProtectV5Number of licenses assigned to companyInt
AllowUploadOverAccountSizeShows if accounts are able to exceed company's quotaBoolean


DataCenterCountryCodeIsoA2

ISO 3166-1 two-letter country code (alpha-2). Shows

location of data center, where company backup accounts

are created.

String

User Account  Management

Operation: CreateAccountBySize

Sandbox:      https://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/AccountManagementService.asmx?op=CreateAccountBySize

Production:  https://secure.sosonlinebackup.com/WebApi/AccountManagementService/AccountManagementService.asmx?op=CreateAccountBySize

Parameter

Description

Validation

Change
TargetEntityIdID of the parent Company/PartnerInteger

Username

Username

Required, "^[^<>]{0,100}$"


Password

Password for user account

"^[a-zA-Z0-9!@#$%^&*()]{6,20}$"


AccountSizeMB

Storage quota for account

Integer >= 1, only from a list of allowed values (right now: 1024 * 1GB, 2GB, 3, 4, 5, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 150, 200, 250, 300, 400)


FullName

Full Name for user

"^[a-zA-Z]([a-zA-Z\.-]|\s){1,30}$"


Email

Email

"^[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9_-]+)*\.([a-zA-Z]{2,}){1,49}$"


IsUltrasafe

Standard or Ultrasafe security

Bool


SecretQuestion

Secret question for password reset (works only for non-Ultrasafe accounts)

String


SecretAnswer

Answer for secret question (works only for non-Ultrasafe accounts)

"^[a-zA-Z0-9!@#$%^&*()\s]{3,20}$"


DisableEmailsNotification
Allow to disable sending all emails notificationsbool, Optional, no changes if missed

 

Operation: ChangeBackupAccountEmail 

 Sandbox:  https://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/AccountManagementService.asmx?op=ChangeBackupAccountEmail

Productionhttps://secure.sosonlinebackup.com/WebApi/AccountManagementService/AccountManagementService.asmx?op=ChangeBackupAccountEmail

Parameter

Description

Validation

Change

Username

Username

Required, "^[^<>]{0,100}$"


Email

New Email

"^[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9_-]+)*\.([a-zA-Z]{2,}){1,49}$"


SendEmailToCustomersend email notification to user


Operation: ChangeBackupAccountPassword 

Works only for Regular backup accounts.

Sandbox: https://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/AccountManagementService.asmx?op=ChangeBackupAccountPassword

Production: https://secure.sosonlinebackup.com/WebApi/AccountManagementService/AccountManagementService.asmx?op=ChangeBackupAccountPassword

Parameter

Description

Validation

Change

Username

Username

Required, "^[^<>]{0,100}$"


NewPassword

New password

"^[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9_-]+)*\.([a-zA-Z]{2,}){1,49}$"


SendEmailToCustomersend email notification to user


Operation: ChangeAccountSize  

Sandbox:      https://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/AccountManagementService.asmx?op=ChangeAccountSize

Production:  https://secure.sosonlinebackup.com/WebApi/AccountManagementService/AccountManagementService.asmx?op=ChangeAccountSize 

Parameter

Description

Validation

Change

Username

Username

Required, "^[^<>]{0,100}$"


AccountSizeMB

New size value in MB

Integer >= 1, only from a list of allowed values (right now: 1024 * 1GB, 2GB, 3, 4, 5, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 150, 200, 250, 300, 400)


SendEmailToCustomersend email notification to user


Operation: Suspend/UnsuspendAccount  

Sandboxhttps://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/AccountManagementService.asmx?op=SuspendAccount

                  https://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/AccountManagementService.asmx?op=UnsuspendAccount 

Productionhttps://secure.sosonlinebackup.com/WebApi/AccountManagementService/AccountManagementService.asmx?op=SuspendAccount

                     https://secure.sosonlinebackup.com/WebApi/AccountManagementService/AccountManagementService.asmx?op=UnsuspendAccount


Parameter

Description

Validation

Change

Username

Username

string

It is supposed that client of this service belongs to entity identified by ApiCallerEntityId

then following is validated:

  • Username should identify user which belongs to entity which is descendant for ApiCallerEntityId

If account is canceled , AccountIsNotActive error is fired



Reason

Details about reason of status change

string, optional


Returns following output:

Output Value

Description

Type

AlreadyDone

Re-entrability flag. It is set if attempt is taken to suspend already suspended account OR unsuspend already unsuspended

bool
Request
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  <s:Header>
    <Action s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none">sosonlinebackup.com/SuspendAccount</Action>
    <h:AuthHeader xmlns="sosonlinebackup.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:h="sosonlinebackup.com">
      <UserName>Sdk.Test.Partner</UserName>
      <Password>3Jr2$@*</Password>
    </h:AuthHeader>
  </s:Header>
  <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <SuspendAccount xmlns="sosonlinebackup.com">
      <request>
        <Username>suspended@sosonlinebackup.com</Username>
        <Reason>just  suspend</Reason>
      </request>
    </SuspendAccount>
  </s:Body>
</s:Envelope>
Response
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <s:Header xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" />
  <soap:Body>
    <SuspendAccountResponse xmlns="sosonlinebackup.com">
      <SuspendAccountResult>
        <AlreadyDone>false</AlreadyDone>
        <Result>
          <Result>0</Result>
          <Code>Success</Code>
        </Result>
      </SuspendAccountResult>
    </SuspendAccountResponse>
  </soap:Body>
</soap:Envelope>
Operation: GetAccountUsedSpace

Sandbox: https://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/AccountManagementService.asmx?op=GetAccountUsedSpace

Production:   https://secure.sosonlinebackup.com/WebApi/AccountManagementService/AccountManagementService.asmx?op=GetAccountUsedSpace

Parameter

Description

Validation

Change

Username

Username

Required, "^[^<>]{0,100}$"


Returns following output:

Output Value

Description

Type
usedSpaceInKB


long
Operation: GetAccountUsedSpaceBySystem

Sandboxhttps://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/AccountManagementService.asmx?op=GetAccountUsedSpaceBySystem

Production: https://secure.sosonlinebackup.com/WebApi/AccountManagementService/AccountManagementService.asmx?op=GetAccountUsedSpaceBySystem

Parameter

Description

Validation

Change

Username

Username

Required, "^[^<>]{0,100}$"


Returns following output:

Output Value

Description

Type
AccountSpaces

AccountSpaces[]

Type AccountSpace

Output Value

Description

Type
Username

string
UsedSpaceInKB


long
SystemName

string

DeviceType"Desktop" or "Mobile"string
Operation: GetAuthenticationToken

Sandbox: https://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/AccountManagementService.asmx?op=GetAuthenticationToken

Production:   https://secure.sosonlinebackup.com/WebApi/AccountManagementService/AccountManagementService.asmx?op=GetAuthenticationToken

Parameter

Description

Validation

Change

Username

Username

  1. Required, string 

  2. Must not be ultrasafe backup account
  3. Works for active backup accounts
  4. Account should be descdant to ApiCallerEntityId

PasswordPasswordRequired

Returns output:

Output Value

Description

Type

Token

Value can be used for further call client operations

string
Operation: GetAuthorizationTokenByEntity

Sandbox: https://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/AccountManagementService.asmx?op=GetAuthorizationTokenByEntity

Production:   https://secure.sosonlinebackup.com/WebApi/AccountManagementService/AccountManagementService.asmx?op=GetAuthorizationTokenByEntity

Parameter

Description

Validation

Change

Username

Username

  1. Required, string 

  2. Must not be ultrasafe backup account
  3. Works for active backup accounts
  4. Account should be descdant to ApiCallerEntityId

 IsAppUser

If value is 'true' then 'Username' is Application User 

 1. Not required, System.Nullable<System.Boolean>

Returns output:

Output Value

Description

Type

AuthToken

Value can be used for autologin to Partner Dashboard according to pattern https://dashboard.managedoffsitebackup.net/Account/Login?uid={username}&token={tokenstring}, see example below

string

Example:

Request
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  <s:Header>
    <Action s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none">sosonlinebackup.com/GetAuthorizationTokenByEntity</Action>
    <h:AuthHeader xmlns="sosonlinebackup.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:h="sosonlinebackup.com">
      <UserName>AacmeES</UserName>
      <Password>V******</Password>
    </h:AuthHeader>
  </s:Header>
  <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <GetAuthorizationTokenByEntity xmlns="sosonlinebackup.com">
      <request>
        <Username>sdk.test@sosonlinebackup.com</Username>
        <IsAppUser>false</IsAppUser>
      </request>
    </GetAuthorizationTokenByEntity>
  </s:Body>
</s:Envelope>
Response
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <s:Header xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" />
  <soap:Body>
    <GetAuthorizationTokenByEntityResponse xmlns="sosonlinebackup.com">
      <GetAuthorizationTokenByEntityResult>
        <AuthToken>KFZ2sLv3gJiauSaXKeBuPuCWvWHw4G</AuthToken>
        <Result>
          <Result>0</Result>
          <Code>Success</Code>
        </Result>
      </GetAuthorizationTokenByEntityResult>
    </GetAuthorizationTokenByEntityResponse>
  </soap:Body>
</soap:Envelope>

Correct url to dashboard autologin is https://dashboard.managedoffsitebackup.net/Account/Login?uid=sdk.test@sosonlinebackup.com&token=KFZ2sLv3gJiauSaXKeBuPuCWvWHw4G

Policy management

Sandbox: https://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/BackupPolicyManagementService.asmx

Productionhttps://secure.sosonlinebackup.com/WebApi/AccountManagementService/BackupPolicyManagementService.asmx

Object: EntityPolicy

 Operates with two kinds of objects, i.e. Entity Policy and Account Policy.

Entity policy incapsulates all PC Client settings those we can change by policy.

Entity policy object  has following structure


Parameter

Description

Validation

EntityBackupPolicyID 

The unique ID of entity policy.  Used to identify entity policy.

Int.  Populated by SOS. On create entity policy just send 1.

TargetEntityID  ID of the parent Company/Partner. Int, >=0. Use 0 for yourself.

PolicyName

Unique name of policy

String, required, "^[\x20-\x3B\x3D\x3F-\x7F]*$";//ASCII without <>

DateCreated

Date when entity  policy was created.

DateTime.  Populated by SOS. On create entity policy just send any valid value.

BackupSet

Settings for the Smart Scanner

Object, Not mandatory

BackupSet.ScannerMode

Scope of scanning for file, i.e. where to scan.

Enum (ScanAll or ScanPersonal or DontScan)

BackupSet.BackupDocuments

Include document files to backup set.

Bool

BackupSet.BackupImages

Include image files to backup set.

Bool

BackupSet.BackupMusic

Include music files to backup set.

Bool

BackupSet.BackupVideo

Include video files to backup set. 

Bool

BackupSet.BackupCustom

Include files with specified in BackupSet.CustomFileTypes extensions

Bool

BackupSet.CustomFileTypes

Delimited list of custom file types to backup.

Used when  BackupSet.BackupCustom = true. 

String, Not mandatory.  E.g.: “xls, midi, txt”

Invalid characters are ASCII/Unicode characters 1 through 31, 

as well as quote ("), less than (<), greater than (>), pipe (|), backspace (\b), null (\0) and tab (\t).

Comma (,), dot (.), space ( ) and semicolon (;) are treated as separators. 

Empty extensions are ignored. 
BackupSet.ExcludeFileTypes

Delimited list of  file types to ignore.

It's applied to all types of the documents.

String, Not mandatory.  E.g.: “tmp, log, temp”

Invalid characters are ASCII/Unicode characters 1 through 31, 

as well as quote ("), less than (<), greater than (>), pipe (|), backspace (\b), null (\0) and tab (\t).

Comma (,), dot (.), space ( ) and semicolon (;) are treated as separators. 

 Empty extensions are ignored. 
ScheduleSettings for the scheduler.Object, Not mandatory

Schedule.ScheduleType

How often backup should run

Enum (Monthly or Weekly or Daily or Hourly)

Schedule.ScheduledTime

When to run backup. Only time part is used.

DateTime.

Schedule.ScheduledEndTimeWhen to terminate running backup. Only time part is used. Cannot be combined with Hourly ScheduleType.DateTime.
Schedule.UseEndTimeActivates ScheduledEndTime option.Bool

Schedule.ScheduledDayOfTheMonth

Day of month to run. Used  when  ScheduleType = Montly.

1-31

Schedule.ScheduledDayOfTheWeek

Day of week to run. Used  when  ScheduleType = Weekly.

Sunday or Monday or Tuesday or Wednesday or Thursday or Friday or Saturday

Schedule.ScheduledHoursBetweenRuns

Interval between backup runs.  Used  when  ScheduleType = Hourly.

1-12

RunAs

Credentials to run PC Client with.

Required if you want to backup when user is not logged in. 

Object, Not mandatory

RunAs.RunAsDomainAndLogin

Windows domain name and login.

Optional, String, 

@"^([^~!@#$\^&\*\(\)=\+\[\]\{\}\\\|;:'"",<>/\?\s]{1,15})\\(?!\x20+)([^~!@#$\^&\*\(\)=\+\[\]\{\}\\\|;:'"",<>/\?\s]{1,256})$"
  • Disallowed chars in user and domain/system name:  ~!@#$^&*()=+[]{}|;:'",<>/? and space
  • Domain/system name max length = 15 chars 
  • User name max length  in credentials  = 256.
  • Unicode is supported 

RunAs.RunAsPassword

Password for user above. it'll be kept  encrypted in SOS databases.

PC client don't keep it locally.

Optional, String

OptionsSome options and triggers. Object, Not mandatory

Options.RunScheduledBackup

Turns on/off  scheduller.  

Bool, use “true”

Options.RunWhenNotLoggedOn

Activates RunAs section.  If it's false backup will run by scheduler

only if user is currently logged in.

Bool, use “false”

Options.SendEmailReportAfterBackup

Whether to send backup email report

Bool

Options.EmailAddressToSendReportsTo

Coma separated list of emails to send report to

String, Required if previous SendEmailReportAfterBackup is true.

"^([a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9_-]+)*\.([a-zA-Z]{2,})($|[\s,;]+))+$"
Options.ExcludeFilesOlderThanDateExclude files that are older than inputed DateDateTime, Optional
Options.ExcludeFilesLargerThanMbExclude files that are larger than inputed value in MbInteger, > 0, Optional
Options.ExcludeFilesSmallerThanKbExclude files that are smaller than inputed value in KbInteger, > 0, Optional
Options.RemoveFilesAfterDaysTime limited retention policy parameter. If file's modification date is less than Current Date - Options.RemoveFilesAfterDays, files will be removed from cloudInteger, > 0, Optional, If value passed, EmailAddressToSendReportsTo must be true
Options.RemoveDeletedFilesAfterDaysTime limited retention policy parameter. If file have been deleted from Client PC, it will be also removed from cloud in RemoveDeletedFilesAfterDays daysInteger, > 0, Optional, If value passed, EmailAddressToSendReportsTo must be true
UseSystemAccountForScanningUserPersonalFolders
When set to true OBRM 7.3+  uses SYSTEM account to run backupBool, use “false”
ScannerFileFilters**Filter to apply to all files found by scanner.Object, Not mandatory
ScannerFileFilters.Mode**

How filter will should work:

  • None -  Include*  & Exclude* filters are completely ignored. 
  • IncludeByWildcard  - Only Include* filter fields are taken into account. At least one Include* field  is required in this mode.
  • ExcludeByWildCard - Only Exclude* filter fields are taken into account. At least one Exclude* filed is required in this mode.
None 
or IncludeByWildcard,
or ExcludeByWildCard
ScannerFileFilters.IncludeFiles**Semicolon separated values of file name (including extension) templates.Optional, String, '"^(?!(.*[\x22\x3C\x3E\x7C\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B\x0C\x0D\x0E\x0F\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1A\x1B\x1C\x1D\x1E\x1F\x3A\x5C\x2F]+.*))[^;]+(;*[^;]+)+$"
  • Disallowed chars invalid for NTFS file name. E.g. /|>:
  • Allowed wildcards ? (any character in amount of 1 or 0)  and ? (any, including 0,  amount of any characters)
  • Cannot start or end with semicolon ( ; )
  • Unicode is supported 
ScannerFileFilters.IncludeFolders**Semicolon separated values of folder path templates.Optional, String, "^(?!(.*[\x22\x3C\x3E\x7C\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B\x0C\x0D\x0E\x0F\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1A\x1B\x1C\x1D\x1E\x1F]+.*))[^;]+(;*([^;]*[*?]+[^;]*)+)+$"
  • Disallowed chars invalid for NTFS folder path. E.g. <|>:
  • Allowed wildcards ? (any character in amount of 1 or 0)  and ? (any, including 0,  amount of any characters)
  • Cannot start or end with semicolon ( ; )
  • Each folder path template should include at least one wildcard character (* or ?)
  • UNC and local folder paths are supported
  • Unicode is supported 
ScannerFileFilters.ExcludeFiles**Semicolon separated values of file name (including extension) templates.Optional, String,'"^(?!(.*[\x22\x3C\x3E\x7C\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B\x0C\x0D\x0E\x0F\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1A\x1B\x1C\x1D\x1E\x1F\x3A\x5C\x2F]+.*))[^;]+(;*[^;]+)+$"
  • Disallowed chars invalid for NTFS file name. E.g. /|>:
  • Allowed wildcards ? (any character in amount of 1 or 0)  and ? (any, including 0,  amount of any characters)
  • Cannot start or end with semicolon ( ; )
  • Unicode is supported 
ScannerFileFilters.ExcludeFolders**Semicolon separated values of folder path templates.Optional, String,"^(?!(.*[\x22\x3C\x3E\x7C\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0A\x0B\x0C\x0D\x0E\x0F\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1A\x1B\x1C\x1D\x1E\x1F]+.*))[^;]+(;*([^;]*[*?]+[^;]*)+)+$"
  • Disallowed chars invalid for NTFS folder path. E.g. <|>:
  • Allowed wildcards ? (any character in amount of 1 or 0)  and ? (any, including 0,  amount of any characters)
  • Cannot start or end with semicolon ( ; )
  • Each folder path template should include at least one wildcard character (* or ?)
  • UNC and local folder paths are supported
  • Unicode is supported 
LiveProtectWholeBackupSet**When set to true OBRM 7.6+  automatically turns on LiveProtect  technology for each file found accordingly to Explicit Pathes ( aka GetBackupSetCustomPathes method data). LiveProtect technology ensures that file uploaded to the cloud shortly after it has been modified.Bool, optional. Default and when not specified  is false
  • * Dashboard UI doesn't support these fields yet.
  • ** Added at December 2019 & January 2020. OBRM v7.6.0 & higher recognises and uses them.

Example:

Policy object in response
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <soap:Body>
      <GetEntityPolicyResponse xmlns="sosonlinebackup.com">
         <GetEntityPolicyResult>
            <Result>
               <Result>0</Result>
               <Code>Success</Code>
            </Result>
            <EntityPolicy>
               <EntityBackupPolicyID>507297</EntityBackupPolicyID>
               <TargetEntityID>2117</TargetEntityID>
               <PolicyName>Peter policy</PolicyName>
               <DateCreated>2019-12-19T16:44:54.033</DateCreated>
               <BackupSet>
                  <ScannerMode>ScanAll</ScannerMode>
                  <BackupDocuments>true</BackupDocuments>
                  <BackupImages>true</BackupImages>
                  <BackupMusic>false</BackupMusic>
                  <BackupVideo>false</BackupVideo>
                  <BackupCustom>true</BackupCustom>
                  <CustomFileTypes>exe, msi</CustomFileTypes>
                  <ExcludeFileTypes>tmp; temp; log; xyz; bak;</ExcludeFileTypes>
               </BackupSet>
               <Schedule>
                  <ScheduleType>Weekly</ScheduleType>
                  <ScheduledTime>2019-12-26T16:44:00</ScheduledTime>
                  <ScheduledDayOfTheMonth>1</ScheduledDayOfTheMonth>
                  <ScheduledDayOfTheWeek>Wednesday</ScheduledDayOfTheWeek>
                  <ScheduledHoursBetweenRuns>1</ScheduledHoursBetweenRuns>
                  <ScheduledEndTime>2000-01-01T23:59:59</ScheduledEndTime>
                  <UseEndTime>false</UseEndTime>
               </Schedule>
               <RunAs>
                  <RunAsDomainAndLogin>DeployAgentVM32\autotest</RunAsDomainAndLogin>
                  <RunAsPassword>dwefdewfew</RunAsPassword>
               </RunAs>
               <Options>
                  <RunScheduledBackup>true</RunScheduledBackup>
                  <RunWhenNotLoggedOn>true</RunWhenNotLoggedOn>
                  <SendEmailReportAfterBackup>true</SendEmailReportAfterBackup>
                  <EmailAddressToSendReportsTo>test_auto_87@dbg.sossync.com</EmailAddressToSendReportsTo>
                  <SendEmailReportAfterBackupToBackupAccount>true</SendEmailReportAfterBackupToBackupAccount>
                  <ExcludeFilesOlderThanDate>2014-12-26T00:00:00</ExcludeFilesOlderThanDate>
                  <ExcludeFilesLargerThanMb>1024</ExcludeFilesLargerThanMb>
                  <ExcludeFilesSmallerThanKb>1</ExcludeFilesSmallerThanKb>
                  
                  <RemoveDeletedFilesAfterDays>30</RemoveDeletedFilesAfterDays>
               </Options>
               <ScannerFileFilters>
                  <Mode>ExcludeByWildCard</Mode>
                  <ExcludeFiles>мой крутой файл??.doc*</ExcludeFiles>
                  <ExcludeFolders>\\peter-pc\моя крутая папка\d*dd</ExcludeFolders>
               </ScannerFileFilters>
               <UseSystemAccountForScanningUserPersonalFolders>false</UseSystemAccountForScanningUserPersonalFolders>
            </EntityPolicy>
            <LiveProtectWholeBackupSet>false</LiveProtectWholeBackupSet>
         </GetEntityPolicyResult>
      </GetEntityPolicyResponse>
   </soap:Body>
</soap:Envelope>



Operation: CreateEntityPolicy / GetEntityPolicy 

Start with creating policy:

Sandboxhttps://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/BackupPolicyManagementService.asmx?op=CreateEntityPolicy

Productionhttps://secure.sosonlinebackup.com/WebApi/AccountManagementService/BackupPolicyManagementService.asmx?op=CreateEntityPolicy

Returns contents of created Policy including populated  by SOS EntityBackupPolicyID and DateCreated.


Then you can  get  just created policy.  It returns entity policy.

Sandboxhttps://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/BackupPolicyManagementService.asmx?op=GetEntityPolicy

Production:  https://secure.sosonlinebackup.com/WebApi/AccountManagementService/BackupPolicyManagementService.asmx?op=GetEntityPolicy

Parameter

Description

Validation

EntityBackupPolicyID 

The unique ID of entity policy.  Used to identify policy.

Integer, > 0

TargetEntityID  ID of the parent Company/Partner.  Int, >=0. Use 0 for yourself. 


Operation:  GetEntityPoliciesAll / GetEntityPolicies

When you've created several entity policies you migth want to get a list of them. It's method without parameters. It returns list of entity policies.

Sandbox: https://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/BackupPolicyManagementService.asmx?op=GetEntityPoliciesAll

Production:   https://secure.sosonlinebackup.com/WebApi/AccountManagementService/BackupPolicyManagementService.asmx?op=GetEntityPoliciesAll

Parameter

Description

Validation

TargetEntityID  ID of the parent Company/Partner. Int, >=0. Use 0 for yourself.


There is also paged verion of the  method. 

 Sandboxhttps://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/BackupPolicyManagementService.asmx?op=GetEntityPolicies

Productionhttps://secure.sosonlinebackup.com/WebApi/AccountManagementService/BackupPolicyManagementService.asmx?op=GetEntityPolicies

Parameter

Description

Validation

pageIndex

The page number

Integer, >= 1

pageSize The page sizeInteger, >= 1
TargetEntityID  ID of the parent Company/Partner.  Int, >=0. Use 0 for yourself. 


Operation:  UpdateEntityPolicy / DeleteEntityPolicy

Also you can modify entity policy. Changes will affect all assigned to entity policy accounts and machines:

Sandboxhttps://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/BackupPolicyManagementService.asmx?op=UpdateEntityPolicy

Productionhttps://secure.sosonlinebackup.com/WebApi/AccountManagementService/BackupPolicyManagementService.asmx?op=UpdateEntityPolicy

When you've created many entity policies you might want to delete few entity policies. In that case you should use following method.

Sandboxhttps://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/BackupPolicyManagementService.asmx?op=DeleteEntityPolicy

Productionhttps://secure.sosonlinebackup.com/WebApi/AccountManagementService/BackupPolicyManagementService.asmx?op=DeleteEntityPolicy

Please note that only not assigned to any account policy may be deleted. 

Parameter

Description

Validation

EntityBackupPolicyID 

The unique ID of entity policy.  Used to identify policy.

Integer, > 0

TargetEntityID  ID of the parent Company/Partner.  Int, >=0. Use 0 for yourself. 

  

Operation:  AddAccountPolicy


At that  moment you are ready to apply entity policy to some backup account on particular PC/device.

To achieve it  assign policy to an account on  machine, i.e create account policy:

Sandboxhttps://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/BackupPolicyManagementService.asmx?op=AddAccountPolicy

Productionhttps://secure.sosonlinebackup.com/WebApi/AccountManagementService/BackupPolicyManagementService.asmx?op=AddAccountPolicy

Object: AccountPolicy

Account policy object has following structure.

Parameter

Description

Validation

AccountBackupPolicyID

The unique ID of account policy.  Used to identify account policy.

Int.  Populated by SOS. On create account policy just send 1.

AccountName

Username


TargetEntityID  ID of the parent Company/Partner.  Int, >=0. Use 0 for yourself.

EntityBackupPolicyID


ID of Entity Policy to assign

Integer, >0

SystemName

Name of machine

String, Optional,

@"^([^~!@#$\^&\*\(\)=\+\[\]\{\}\\\|;:'"",<>/\?\s]{1,25})$"
  • Disallowed chars:  ~!@#$^&*()=+[]{}|;:'",<>/? and space
  • max length = 25 
  • unicode is supported

If SystemName is not specified, policy applies to all devices where user with specified AccountName logs in.

PolicyName

Name of Entity Policy

Optional,  Ignored. On create account policy just leave empty.


DateCreated

Date when account policy was created.

DateTime.  Populated by SOS. On create account policy just send any valid value.

RunAs

Credentials to run PC Client with.

When defined they override Entity Policy Credentials.

Object, Not mandatory

RunAs.RunAsDomainAndLogin

Windows domain name and login.

Optional, String, 

@"^([^~!@#$\^&\*\(\)=\+\[\]\{\}\\\|;:'"",<>/\?\s]{1,15})\\(?!\x20+)([^~!@#$\^&\*\(\)=\+\[\]\{\}\\\|;:'"",<>/\?\s]{1,256})$"
  • Disallowed chars in user and domain/system name:  ~!@#$^&*()=+[]{}|;:'",<>/? and space
  • Domain/system name max length = 15 chars 
  • User name max length  in credentials  = 256.
  • Unicode is supported 

RunAs.RunAsPassword

Password for user above. it'll be kept  encrypted in SOS databases.

PC client don't keep it locally.

Optional, String


Operation:  AddAccountPolicySimple

Also we have simplified version of  this method which does the same.

Sandboxhttps://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/BackupPolicyManagementService.asmx?op=AddAccountPolicySimple

Productionhttps://secure.sosonlinebackup.com/WebApi/AccountManagementService/BackupPolicyManagementService.asmx?op=AddAccountPolicySimple

Parameter

Description

Validation

AccountName

Username


EntityBackupPolicyID


ID of Entity Policy to assign

Integer, >0

SystemName

Name of machine

String, Optional

@"^([^~!@#$\^&\*\(\)=\+\[\]\{\}\\\|;:'"",<>/\?\s]{1,25})$"

  • Disallowed chars:  ~!@#$^&*()=+[]{}|;:'",<>/? and space
  • max length = 25
  • unicode is supported

If SystemName is not specified, policy applies to all devices where user with specified AccountName logs in. 

TargetEntityID ID of the parent Company/Partner.  Int, >=0. Use 0 for yourself.


Operation:  GetAccountPolicies

When you've created  several account policies you might want to get a list of all account policies.

Sandboxhttps://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/BackupPolicyManagementService.asmx?op=GetAccountPolicies

Production:  https://secure.sosonlinebackup.com/WebApi/AccountManagementService/BackupPolicyManagementService.asmx?op=GetAccountPolicies

Parameter

Description

Validation

AccountName

Username


SystemName

Name of machine

String, Optional. When it's not null  result set is filtered by provided system name.

@"^([^~!@#$\^&\*\(\)=\+\[\]\{\}\\\|;:'"",<>/\?\s]{1,25})$"

  • Disallowed chars:  ~!@#$^&*()=+[]{}|;:'",<>/? and space
  • max length = 25 
  • unicode is supported
TargetEntityID ID of the parent Company/Partner.  Int, >=0. Use 0 for yourself.


Operation:  DeleteAccountPolicy / DeleteAccountPolicySilent

There are two methods to delete account policy ( N.B. Entity policy is not affected on delete account policy).

The first way is by Account name and System name.

Sandboxhttps://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/BackupPolicyManagementService.asmx?op=DeleteAccountPolicy

Productionhttps://secure.sosonlinebackup.com/WebApi/AccountManagementService/BackupPolicyManagementService.asmx?op=DeleteAccountPolicy

 It deletes account policy (unassigns entity policy) for backup account on the particular system. Returns deleted account policy. Returns corresponding error codes when something is not found or not accessable.

  

Parameter

Description

Validation

AccountName

Username


SystemName

Name of machine

String, Required

@"^([^~!@#$\^&\*\(\)=\+\[\]\{\}\\\|;:'"",<>/\?\s]{1,25})$"

  • Disallowed chars:  ~!@#$^&*()=+[]{}|;:'",<>/? and space
  • max length = 25
  • unicode is supported 
TargetEntityIDID of the parent Company/Partner.  Int, >=0. Use 0 for yourself.


 Also there is more silent version. It returns success even when requested record is not found or not accessable. 

Sandboxhttps://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/BackupPolicyManagementService.asmx?op=DeleteAccountPolicySilent

Productionhttps://secure.sosonlinebackup.com/WebApi/AccountManagementService/BackupPolicyManagementService.asmx?op=DeleteAccountPolicySilent


Parameter

Description

Validation

AccountBackupPolicyID

The unique ID of account policy.  Used to identify account policy.

 Integer, >0

TargetEntityIDID of the parent Company/Partner. Int, >=0. Use 0 for yourself.


Policy management (Advanced) 

Sandboxhttps://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/BackupPolicyManagementService.asmx

Productionhttps://secure.sosonlinebackup.com/WebApi/AccountManagementService/BackupPolicyManagementService.asmx

 Dashboard  has UI only for editing BackupSetCustomPathes. PC client supports all advanced settings from 5.9.

  All methods  work with existing Entity Backup Policy. 



 

Some terms & rules: BackupSet, Scanner & etc

There are two backup sets. They don't affect each other in any way.

  •  First  Backup Set is formed by Scanner before each backup. What gets included is determined by scanner settings.
  • Second Backup Set is formed based on Explicit Pathes or user manual selection in the "tree" after scan but before backup itself .

 

There are rules

 

  •  Remote  policy ALWAYS override  local settings provided by user.
  •  First  we apply includes and then we apply excludes.  
  •  Before backup those Backup Sets get merged.


  Terms:

  • Scanner  (aka Smart Scanner) is  a piece of PC Client (aka Online Backup an Recovery Manager ) business logic which determines what files and folder should be watched and backup-ed, Scanner is run before each backup to update BackupSet.
  • BackupSet  is  actualized list of the files and folders those exist in the file system and should be backup-ed.  
    Formed by  Scanner  BackupSet  (aka First  Backup Set ) is shown on the 2nd screen of the Setup Backup flow of the PC Client. It looks like Files&Folders tree with selected items.
  • Scanner Pathes  are root locations where Scanner looks for files and folders to backup. It's set automatically depending from   BackupPolicy.BackupSet.ScannerMode  (ScanAll or ScanPersonal or DontScan) . 
  • File Size Limits are restrictions for size of the files included into BackupSet by Scanner. They are not applied to Explicit Items.
  • Explicit Pathes  (aka Explicit Items ) are files and folders manually included (don't confuse it with the scanner settings!)  by user into formed BackupSet.  They  form  Second Backup Set

 Also take into account Mutual Scanner Settings Rules .  PC Client always apply those rule regardless user settings.

Object: CustomPathes

 

Parameter

Description

Validation

IncludeFolders

Folders those should always be  included into backup set.  Null elements are not allowed.  Path string restrictions are provided below the table.

string[]

IncludeFiles 

Files those should always be included into backup set. Null elements are not allowed. Path string restrictions are provided below the table.

string[]

ExcludeFolders

Folders those should always be  excluded from backup set. Null elements are not allowed. Path string restrictions are provided below the table.

string[]

ExcludeFiles 

 Files those should always be excluded from backup set. Null elements are not allowed. Path string restrictions are provided below the table.

string[]

  

 

Path string restrictions ( http://msdn.microsoft.com/en-us/library/aa365247.aspx ).  

  • "^((([C-Zc-z][:])|(%[Uu][Ss][Ee][Rr][Pp][Rr][Oo][Ff][Ii][Ll][Ee]%))([\\](?!((PRN|AUX|CLOCK\$|NUL|CON|COM\d|LPT\d|([.]+)))([\\]|$))([^\x00-\x1f\\\<\>?*:\""|/]+))*)$"
  • Full list of the restrictions see by link above 
  • Maximum path length 260 chars
  • Placeholder %UserProfile% is allowed. When UseSystemAccountForScanningUserPersonalFolders field in the policy is set to true it's resolved into actual path (e.g. C:\Users\Peter).

Path regex deep dive:

Windows kernel forbids the use of characters in range 1-31 (i.e., 0x01-0x1F) and characters " * : < > ? \ |. Although NTFS allows each path component (directory or filename) to be 255 characters long and paths up to about 32767 characters long, the Windows kernel only supports paths up to 259 characters long. Additionally, Windows forbids the use of the MS-DOS device names AUX, CLOCK$, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, CON, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, LPT9, NUL and PRN, as well as these names with any extension (for example, AUX.txt), except when using Long UNC paths (ex. \.\C:\nul.txt or \?\D:\aux\con). (In fact, CLOCK$ may be used if an extension is provided.) These restrictions only apply to Windows - Linux, for example, allows use of " * : < > ? \ | even in NTFS.  


  Properly formed path is something like   C:\Documents and Settings\السعودية\Русские буквы\请收藏.我们的网址\.السعودية \file.d 藏.我 d.hd.ext

Operation: GetScannerCustomPathes

Sandboxhttps://secure-sandbox.sosonlinebackup.com/WebAPI/AccountManagementService/BackupPolicyManagementService.asmx?op=GetScannerCustomPathes 

Productionhttps://secure.sosonlinebackup.com/WebAPI/AccountManagementService/BackupPolicyManagementService.asmx?op=GetScannerCustomPathes

Call it to view custom  Scanner Pathes .  

Parameter

Description

Validation

EntityBackupPolicyID 

ID of Entity Policy to apply for

Integer, >0

TargetEntityID ID of the Company/Partner owner of the policy.  Int, >=0. Use 0 for yourself.

 

Operation: SetScannerCustomPathes  

 Sandboxhttps://secure-sandbox.sosonlinebackup.com/WebAPI/AccountManagementService/BackupPolicyManagementService.asmx?op=SetScannerCustomPathes

Production: https://secure.sosonlinebackup.com/WebAPI/AccountManagementService/BackupPolicyManagementService.asmx?op=SetScannerCustomPathes

 Call it to set new custom  Scanner Pathes .  Standard  Scanner Pathes  are not shown and cannot be modified,

Parameter

Description

Validation

EntityBackupPolicyID 

ID of Entity Policy to apply for

Integer, >0

TargetEntityID ID of the Company/Partner owner of the policy.  Int, >=0. Use 0 for yourself.
CustomPathesObject

  

 

Operation: GetBackupSetCustomPathes  

Sandboxhttps://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/BackupPolicyManagementService.asmx?op=GetBackupSetCustomPathes  

Productionhttps://secure.sosonlinebackup.com/WebApi/AccountManagementService/BackupPolicyManagementService.asmx?op=GetBackupSetCustomPathes

Call it to view  Explicit Pathes .  

Parameter

Description

Validation

EntityBackupPolicyID 

ID of Entity Policy to apply for

Integer, >0

TargetEntityID ID of the Company/Partner owner of the policy.  Int, >=0. Use 0 for yourself.

 

Operation: SetBackupSetCustomPathes  

Sandbox: https://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/BackupPolicyManagementService.asmx?op=SetBackupSetCustomPathes

Production: https://secure.sosonlinebackup.com/WebApi/AccountManagementService/BackupPolicyManagementService.asmx?op=SetBackupSetCustomPathes

 Call it to set new custom   Explicit Pathes .

Parameter

Description

Validation

EntityBackupPolicyID 

ID of Entity Policy to apply for

Integer, >0

TargetEntityID ID of the Company/Partner owner of the policy.  Int, >=0. Use 0 for yourself.
CustomPathesObject

  

Object: FileSizeLimit


Parameter

Description

Validation

FileType

Type of the file/document to apply size restricton to

Enum (Documents, Video, Music, Image, Custom)

MinSizeUnit

MinSize unit. Enum (B, KB, MB, GB, TB)
MinSizeMinumum file size

Int, >=0

MaxSizeUnitMaxSize unit. Enum (B, KB, MB, GB, TB)
MaxSizeMaximum file size

Int, >=0

 

 Operation: GetScannerFileSizeLimits

Sandbox: https://secure-sandbox.sosonlinebackup.com/WebAPI/AccountManagementService/BackupPolicyManagementService.asmx?op=GetScannerFileSizeLimits    

Production: https://secure.sosonlinebackup.com/WebAPI/AccountManagementService/BackupPolicyManagementService.asmx?op=GetScannerFileSizeLimits

Call it to view   File Size Limits .  

Parameter

Description

Validation

EntityBackupPolicyID 

ID of Entity Policy to apply for

Integer, >0

TargetEntityID ID of the Company/Partner owner of the policy.  Int, >=0. Use 0 for yourself.

 

Operation: SetScannerFilesizeLimits    

Call it to set new   File Size Limits

 Sandboxhttps://secure-sandbox.sosonlinebackup.com/WebAPI/AccountManagementService/BackupPolicyManagementService.asmx?op=SetScannerFileSizeLimits

Productionhttps://secure.sosonlinebackup.com/WebAPI/AccountManagementService/BackupPolicyManagementService.asmx?op=SetScannerFileSizeLimits

Parameter

Description

Validation

EntityBackupPolicyID 

ID of Entity Policy to apply for

Integer, >0

TargetEntityID ID of the Company/Partner owner of the policy.  Int, >=0. Use 0 for yourself.
FileSizeLimits

Array of the objects.

Should contain row for each document/file type 

(Documents, Video, Music, Image, Custom) .

Missing element for FileType means "use default values".

 Current default values are 0KB ... 5GB. 

Null elements are not allowed.


 FileSizeLimit[]

Product Licenses Management

Operation: GetAssignedLicensesSummary

Retrieves summary about all assigned licenses

Sandboxhttps://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/LicenseManagementService.asmx?op=GetAssignedLicensesSummary

Productionhttps://secure.sosonlinebackup.com/WebApi/AccountManagementService/LicenseManagementService.asmx?op=GetAssignedLicensesSummary

Parameter

Description

Validation

EntityId

Identifies partner or company for which assignment info is retrieved

int

ChildAccountsOnly

If true, only child accounts of EntityId are taken, otherwise all descendant accounts

Bool

Returns collection of items with following fields:

Output Value

Description

Type

Username

Identifies account where license is assigned

string

LicenseType

Specifies type of assigned license : KrollExchangeRecovery, SkraftDiskImageV5, SqlBackup,ExchangeBackup

enum



Operation: GetAssignedLicenseDetails

Retrieves detailed info about specified license 

Sandboxhttps://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/LicenseManagementService.asmx?op=GetAssignedLicenseDetails

Productionhttps://secure.sosonlinebackup.com/WebApi/AccountManagementService/LicenseManagementService.asmx?op=GetAssignedLicenseDetails

Parameter

Description

Validation

Username

Identifies account where license is assigned

Required, "^[^<>]{0,100}$"

LicenseType

Specifies type of assigned license KrollExchangeRecovery, SkraftDiskImageV5, SqlBackup,ExchangeBackup

enum

Returns result with following fields:

Output Value

Description

Type

ProductKey

License key is required for activation SkraftDiskImageV5. Empty for SqlBackup, ExchangeBackup.

string

LicenseData

License data is required for activation KrollExchangeRecovery. Empty for SqlBackup, ExchangeBackup.

byte[]

If license does not exist, returns error code NoLicensesFound.


Operation: RemoveLicense

Completely deactivates  v5 license using shadow protect API. Removes all license assignments.

Now supported for ShadowProtect v5. 

Sandboxhttps://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/LicenseManagementService.asmx?op=RemoveLicense

Productionhttps://secure.sosonlinebackup.com/WebApi/AccountManagementService/LicenseManagementService.asmx?op=RemoveLicense

Parameter

Description

Validation

Username

Identifies account where license is assigned

Required, "^[^<>]{0,100}$".

It is supposed that client of this service belongs to entity identified by ApiCallerEntityId

then following constraints are validated:

Username should belong to ApiCallerEntityId or it's descendant entity.



LicenseType

SkraftDiskImageV5 is only supported

enum

If license does not exist, returns error code NoLicensesAreAvailable.

If there is ShadowProtect API error, returns error code ShadowProtectApiError. In case of any ShadowProtect API error, license assignment is not changed 



Operation: AssignLicenseToAccount
Operation: UnassignAccountLicense

Assigns/Unassigns license of specific type to account (not available)

Sandbox:

  https://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/LicenseManagementService.asmx?op=AssignLicense

  https://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/LicenseManagementService.asmx?op=UnassignLicense

Production:

  https://secure.sosonlinebackup.com/WebApi/AccountManagementService/LicenseManagementService.asmx?op=AssignLicense

  https://secure.sosonlinebackup.com/WebApi/AccountManagementService/LicenseManagementService.asmx?op=UnassignLicense


Parameter

Description

Validation

Username

Identifies account for assignment/unassignment

Required, "^[^<>]{0,100}$"

LicenseType

Specifies type of license to (un)assign. Should be in range of supported license types: KrollExchangeRecovery, SkraftDiskImageV5, SqlBackup,ExchangeBackup

array: enum []

LicenseProviderEntityId

For assignment operation identifies source Entity where licenses are taken from.

For unassignment operation identifies destination Entity where licenses are returned.

In unassignment, licenses should be returned only to entity where they were taken from in assignment process

It is supposed that client of this service belongs to entity identified by ApiCallerEntityId,

then following constraints are validated:

  • ApiCallerEntityId is ancestor for LicenseProviderEntityId
  • ApiCallerEntityId and LicenseProviderEntityId are ancestors for account which is identified by Username

    Violation of this constraints fires error with code "EntityWrongHierarchy"

if LicenseProviderEntityId is not set, ApiCallerEntityId will be used as licenses source for assignment and destination for unassignment



Entities Monitoring

Allows to extract Online Backup Events in scope of Entities

Field: Version, i.e. Monitoring API Version

It's an integer value that identifies version of service your integration understands. Method behaviour changes depending on provided value.

We'll be adding some new EventBackupTypes & HistoryEventTypes in future. It ensures that those changes won't affect your integration

It's strongly recommended to use maximum allowed at the moment version for new integrations. 

Values

No value, 0, <1, >3

Default, compatible with really old stuff


1
  • Added HistoryEventType.BackupConfigured support
  • Added HistoryEventType.AbnormalBackupScope support

For compatibility, in lower versions, these new values get replaced

  • HistoryEventType.BackupConfigured is replaced with HistoryEventType.BackupCompleted
  • MonitorEventStatus.Configured is replaced with MonitorEventStatus.Completed
2
  • Added AccountType.IcabEmail  support
  • Added EventBackupType.IcabMsOffice
  • Added EventBackupType.IcabSharepoint
  • Added EventBackupType.IcabOneDrive
  • Added EventBackupType.IcabGoogleApps
  • Added EventBackupType.IcabMsOfficeGroups
  • Added EventBackupType.IcabSalesforce
  • Added EventBackupType.IcabBox
  • Added EventBackupType.IcabDropBox
  • Added HistoryEventType.OverQuotaWarning
  • Added HistoryEventType.OverQuotaError
  • Added HistoryEventType.OverQuotaFixed
  • Added HistoryEventType.TooLongBackup

For compatibility, in lower versions, rows with these new types get removed

3
  • Added HistoryEventType.ReplicationCompleted
  • Added HistoryEventType.ReplicationCancelled
  • Added HistoryEventType.ReplicationFailed
  • Added HistoryEventType.BackupCheckCompleted
  • Added HistoryEventType.BackupCheckCancelled
  • Added HistoryEventType.BackupCheckFailed
  • Added HistoryEventType.BackupCheckExecuted

For compatibility, in lower versions, rows with these new types get removed

...

Operation: GetHistoryEvents

Sandboxhttps://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/EntityMonitoringService.asmx?op=GetHistoryEvents

Productionhttps://secure.sosonlinebackup.com/WebApi/AccountManagementService/EntityMonitoringService.asmx?op=GetHistoryEvents

Extracts logged online backup events for Entity, restricts output by filters:

Parameter

Description

Validation

EntityId

Identifies parent entity (Company, Partner) of account for which this event is fired.

Int

It is supposed that client of this service belongs to entity identified by ApiCallerEntityId

then following is validated:

  • EntityId should identify entity which is descendant for ApiCallerEntityId


FromDateFilterDefinedIf this flag is set, FromDateFilterValue is taken into account when output is extracted.Bool
FromDateFilterValue"AND" filter: restricts output only by events happened after this date.DateTime
ToDateFilterDefinedIf this flag is set, ToDateFilterValue is taken into account when output is extracted.Bool
ToDateFilterValue"AND" filter: restricts output by events happened before this date.DateTime
AccountNameFilterDefinedIf this flag is set, AccountNameFilterValue is taken into account when output is extracted.Bool
AccountNameFilterValue"AND" filter: restricts output by events happened only for this account.String
AccountTypeFilterIsNotDefined*If this flag is set, AccountTypeFilterValue is NOT taken into account.Bool
AccountTypeFilterValue*

"AND" filter: restricts output by events happened for particular account types.

BackupAccount - events related to backup accounts
ApplicationUser - events related to whole entity (appliances monitoring and etc,)

Enum
EventTypeFilterDefinedIf this flag is set, EventTypeFilterValue is taken into account when output is extracted.Bool
EventTypeFilterValue

"AND" filter: restricts output by events of specific type. One of following values

BackupStarted,

BackupCompleted,

BackupProgress,

BackupCancelled,

BackupConfigured

NoProgressEvent1

NoProgressEvent2

NoBackupEvent1

NoBackupEvent2

Enum
StatusFilterDefinedDoes not participate in this operation. May have any valid value (e.g. false).Bool
StatusFilterValueDoes not participate in this operation. May have any valid value (e.g. Canceled)Enum
PageSizeNumber of entries to extract.int <= 5000
PageIndexIdentifies 1-based index of data frame if volume of data to extract exceeds PageSize.>=1. If 0 , 1 is taken into account
Version

Identifies version of service consumer. Use maximum allowed for new integrations.

Method behaviour change depending on provided value.

Int, 0, 1, 2, 3

Returns result as array of events, where each item contains following fields:

Output Value

Description

TypeUnits

AccountName

Identifies account.

String
AccountType*

Type of the account

BackupAccount - event is related to backup accounts
ApplicationUser - event is related to whole entity (appliances monitoring and etc,)

Enum
EntityIdIdentifies entity (Company, Partner) for which account this event is fired.Int

ClientDate

Identifies when event was fired on client side (in client time-zone).

DateTime, optional
TotalFilesCountTotal number of files in backup set.Long, optional
TotalFilesSizeTotal size of backup set.Long, optionalBytes
ErrorFilesCountNumber of files were handled with errors when event was fired.Long, optional
ErrorFilesSizeSize of files were handled with errors when event was fired.Long, optionalBytes
UploadedFilesCountNumber of files were uploaded when event was fired.Long, optional
UploadedFilesSizeSize of files were uploaded when event was fired.Long, optionalBytes
UnchangedFilesCountNumber of files were unchanged since previous backup.Long, optional
UnchangedFilesSizeSize of files were unchanged since previous backup.Long, optionalBytes
BackupDurationDuration of backup at moment when event was firedLongSeconds
EventBackupTypeIdentifies type of backup. Filled by one of following values:

Online,
ImageStream,
Exchange,
LiveProtect,
MSSQL

ShadowProtectBackup
GeneralNotification

ApplianceHyperVBackup
ApplianceVmWareBackup
ApplianceFileFolderBackup
ApplianceExchangeBackup
ApplianceSQLBackup
ApplianceDRBackup

IcabMsOffice

IcabSharepoint
IcabOneDrive
IcabGoogleApps
IcabMsOfficeGroups
IcabSalesforce
IcabBox
IcabDropBox


Enum
IsScheduledIdentifies that backup( for which current event was fired) was scheduledBool
Indicator

Filled by one of following values:

Ok,

Warning,

Error


Enum
EventType

Filled by one of following values:

BackupStarted,

BackupCompleted,

BackupProgress,

BackupCancelled,

BackupConfigured

NoProgressEvent1

NoProgressEvent2

NoBackupEvent1

NoBackupEvent2

Enum
BackupSummary

Not localized text message describing additional details related to event :

Could not find [sosuploadagent] for [NOVALISTECH\Jim]

 Job status: 9 (Completed), Volumes: C:\, D:\, G:\, ImageNames: H:\C_VOL-b005-i4471.spi, H:\D_VOL-b005-i4471.spi, H:\G_VOL-b001-i4471.spi

 You have exceeded your account storage space (100.00 GB). Total data processed 123.58 GB. Cannot process next 815.08 MB.

 Job status: 9 (Completed), Volumes: C:\, E:\, ImageNames: \\FILE\Net Admin\SP Repository\exchange\C_VOL-b001-i046.spi, \\FILE\Net Admin\SP

 Repository\exchange\E_VOL-b001-i034.spi

 Could not find [sosuploadagent] for [Linda-PC\Linda]

 Job status: 9 (Completed), Volumes: P:\, C:\, ImageNames: D:\Backup Image\P_VOL-b001-i244.spi, D:\Backup Image\C_VOL-b001-i244.spi

 Path is a zero-length string or contains only white space.  Parameter name: path

 You have exceeded your account storage space (15.00 GB). Total data processed 16.52 GB. Cannot process next 2.54 MB.

 Writer is in faulty state. Please restart Microsoft Exchange Writer service or reboot the computer.

 You have exceeded your account storage space (100.00 GB). Total data processed 135.81 GB. Cannot process next 369.87 MB.

 Could not find [sosuploadagent] for [RPPA\ptadmin]

 Illegal characters: [] in path.  Parameter name: _M_1346.CR2

String, optional
TotalRecordsTotal count of entries what fit to filtersint
Request to get top 5 history events for specific backup account and device
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  <s:Header>
    <Action s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none">sosonlinebackup.com/GetHistoryEvents</Action>
    <h:AuthHeader xmlns="sosonlinebackup.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:h="sosonlinebackup.com">
      <UserName>AacmeES</UserName>
      <Password>*****</Password>
    </h:AuthHeader>
  </s:Header>
  <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <GetHistoryEvents xmlns="sosonlinebackup.com">
      <request>
        <EntityId>849</EntityId>
        <Filter>
          <PageIndex>1</PageIndex>
          <PageSize>5</PageSize>
          <IndicatorFilterDefined>false</IndicatorFilterDefined>
          <IndicatorFilterValue>Ok</IndicatorFilterValue>
          <StatusFilterDefined>false</StatusFilterDefined>
          <StatusFilterValue>Uploading</StatusFilterValue>
          <EventTypeFilterDefined>false</EventTypeFilterDefined>
          <EventTypeFilterValue>BackupStarted</EventTypeFilterValue>
          <EventBackupTypeFilterDefined>true</EventBackupTypeFilterDefined>
          <EventBackupTypeFilterValue>Online</EventBackupTypeFilterValue>
          <AccountNameFilterDefined>true</AccountNameFilterDefined>
          <AccountNameFilterValue>sdk.test@sosonlinebackup.com</AccountNameFilterValue>
          <AccountTypeFilterIsNotDefined>true</AccountTypeFilterIsNotDefined>
          <AccountTypeFilterValue>BackupAccount</AccountTypeFilterValue>
          <SystemNameFilterDefined>true</SystemNameFilterDefined>
          <SystemNameFilterValue>AlexK</SystemNameFilterValue>
          <FromDateFilterDefined>true</FromDateFilterDefined>
          <FromDateFilterValue>2017-08-28T16:16:00</FromDateFilterValue>
          <ToDateFilterDefined>true</ToDateFilterDefined>
          <ToDateFilterValue>2017-11-28T16:16:00</ToDateFilterValue>
          <Version xsi:nil="true" />
        </Filter>
      </request>
    </GetHistoryEvents>
  </s:Body>
</s:Envelope>
Response
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <s:Header xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" />
  <soap:Body>
    <GetHistoryEventsResponse xmlns="sosonlinebackup.com">
      <GetHistoryEventsResult>
        <Result>
          <Result>0</Result>
          <Code>Success</Code>
        </Result>
        <HistoryEventsData>
          <HistoryEvent>
            <Indicator>Error</Indicator>
            <EventType>NoBackupEvent2</EventType>
            <AccountName>sdk.test@sosonlinebackup.com</AccountName>
            <AccountType>BackupAccount</AccountType>
            <SystemName>ALEXK</SystemName>
            <ClientDate>2017-11-06T15:03:32.57</ClientDate>
            <IsScheduled xsi:nil="true" />
            <TotalFilesCount xsi:nil="true" />
            <TotalFilesSize xsi:nil="true" />
            <ErrorFilesCount xsi:nil="true" />
            <ErrorFilesSize>0</ErrorFilesSize>
            <UploadedFilesCount xsi:nil="true" />
            <UploadedFilesSize>0</UploadedFilesSize>
            <UnchangedFilesCount xsi:nil="true" />
            <UnchangedFilesSize>3972</UnchangedFilesSize>
            <BackupDuration xsi:nil="true" />
            <EventBackupType>Online</EventBackupType>
            <EntityId>849</EntityId>
          </HistoryEvent>
          <HistoryEvent>
            <Indicator>Error</Indicator>
            <EventType>NoBackupEvent1</EventType>
            <AccountName>sdk.test@sosonlinebackup.com</AccountName>
            <AccountType>BackupAccount</AccountType>
            <SystemName>ALEXK</SystemName>
            <ClientDate>2017-11-02T15:03:32.57</ClientDate>
            <IsScheduled xsi:nil="true" />
            <TotalFilesCount xsi:nil="true" />
            <TotalFilesSize xsi:nil="true" />
            <ErrorFilesCount xsi:nil="true" />
            <ErrorFilesSize>0</ErrorFilesSize>
            <UploadedFilesCount xsi:nil="true" />
            <UploadedFilesSize>0</UploadedFilesSize>
            <UnchangedFilesCount xsi:nil="true" />
            <UnchangedFilesSize>3972</UnchangedFilesSize>
            <BackupDuration xsi:nil="true" />
            <EventBackupType>Online</EventBackupType>
            <EntityId>849</EntityId>
          </HistoryEvent>
          <HistoryEvent>
            <Indicator>Ok</Indicator>
            <EventType>BackupCompleted</EventType>
            <AccountName>sdk.test@sosonlinebackup.com</AccountName>
            <AccountType>BackupAccount</AccountType>
            <SystemName>ALEXK</SystemName>
            <ClientDate>2017-10-30T15:03:32.57</ClientDate>
            <IsScheduled>false</IsScheduled>
            <TotalFilesCount>120</TotalFilesCount>
            <TotalFilesSize>3972</TotalFilesSize>
            <ErrorFilesCount>0</ErrorFilesCount>
            <ErrorFilesSize>0</ErrorFilesSize>
            <UploadedFilesCount>0</UploadedFilesCount>
            <UploadedFilesSize>0</UploadedFilesSize>
            <UnchangedFilesCount>120</UnchangedFilesCount>
            <UnchangedFilesSize>3972</UnchangedFilesSize>
            <BackupDuration>4</BackupDuration>
            <EventBackupType>Online</EventBackupType>
            <EntityId>849</EntityId>
          </HistoryEvent>
          <HistoryEvent>
            <Indicator>Ok</Indicator>
            <EventType>BackupStarted</EventType>
            <AccountName>sdk.test@sosonlinebackup.com</AccountName>
            <AccountType>BackupAccount</AccountType>
            <SystemName>ALEXK</SystemName>
            <ClientDate>2017-10-30T15:03:27.663</ClientDate>
            <IsScheduled>false</IsScheduled>
            <TotalFilesCount xsi:nil="true" />
            <TotalFilesSize xsi:nil="true" />
            <ErrorFilesCount xsi:nil="true" />
            <ErrorFilesSize>0</ErrorFilesSize>
            <UploadedFilesCount xsi:nil="true" />
            <UploadedFilesSize>0</UploadedFilesSize>
            <UnchangedFilesCount xsi:nil="true" />
            <UnchangedFilesSize>0</UnchangedFilesSize>
            <BackupDuration xsi:nil="true" />
            <EventBackupType>Online</EventBackupType>
            <EntityId>849</EntityId>
          </HistoryEvent>
          <HistoryEvent>
            <Indicator>Ok</Indicator>
            <EventType>BackupCompleted</EventType>
            <AccountName>sdk.test@sosonlinebackup.com</AccountName>
            <AccountType>BackupAccount</AccountType>
            <SystemName>ALEXK</SystemName>
            <ClientDate>2017-10-30T14:50:53.29</ClientDate>
            <IsScheduled>false</IsScheduled>
            <TotalFilesCount>120</TotalFilesCount>
            <TotalFilesSize>3972</TotalFilesSize>
            <ErrorFilesCount>0</ErrorFilesCount>
            <ErrorFilesSize>0</ErrorFilesSize>
            <UploadedFilesCount>0</UploadedFilesCount>
            <UploadedFilesSize>0</UploadedFilesSize>
            <UnchangedFilesCount>120</UnchangedFilesCount>
            <UnchangedFilesSize>3972</UnchangedFilesSize>
            <BackupDuration>4</BackupDuration>
            <EventBackupType>Online</EventBackupType>
            <EntityId>849</EntityId>
          </HistoryEvent>
        </HistoryEventsData>
        <TotalRecords>236</TotalRecords>
      </GetHistoryEventsResult>
    </GetHistoryEventsResponse>
  </soap:Body>
</soap:Envelope>
Operation: GetMonitoringEvents

Sandboxhttps://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/EntityMonitoringService.asmx?op=GetMonitoringEvents

Productionhttps://secure.sosonlinebackup.com/WebApi/AccountManagementService/EntityMonitoringService.asmx?op=GetMonitoringEvents

Extracts active online backup events for Entity, restricts output by AND-filters:

Parameter

Description

Validation

EntityId

Identifies parent entity (Company, Partner) of account for which this event is fired.

Int

It is supposed that client of this service belongs to entity identified by ApiCallerEntityId

then following is validated:

  • EntityId should identify entity which is descendant for ApiCallerEntityId


AccountNameFilterDefinedIf this flag is set, AccountNameFilterValue is taken into account when output is extracted.Bool
AccountNameFilterValue"AND" filter: restricts output by events happened only for this account.String
AccountTypeFilterIsNotDefined*If this flag is set, AccountTypeFilterValue is NOT taken into account.Bool
AccountTypeFilterValue*

"AND" filter: restricts output by events happened for particular account types.

BackupAccount - events related to backup accounts
ApplicationUser - events related to whole entity (appliances monitoring and etc,)

Enum
StatusFilterDefinedIf this flag is set, StatusFilterValue is taken into account when output is extracted.Bool
StatusFilterValue

"AND" filter: restricts output by events with specific status. One of following values:

Uploading
Canceled
Failed
Completed


 Enum
PageSizeNumber of entries to extract.int <= 5000
PageIndexIdentifies 1-based index of data frame if volume of data to extract exceeds PageSize.>=1. If 0 , 1 is taken into account
Version

Identifies version of service consumer. Use maximum allowed for new integrations.

Method behaviour change depending on provided value.

Int, 0,1,2,3


Returns result as array of events, where each item contains following fields:

Output Value

Description

TypeUnits

AccountName

Identifies account.

String
AccountType*

Type of the account

BackupAccount - event is related to backup accounts
ApplicationUser - event is related to whole entity (appliances monitoring and etc,)

Enum
EntityIdIdentifies entity (Company, Partner) for which account this event is fired.Int

ClientDate

Identifies when active event was fired on client side (in client time-zone).

DateTime, optional
TotalFilesCountTotal number of files in backup set.Long, optional
TotalFilesSizeTotal size of backup set.Long, optionalBytes
ErrorFilesCountNumber of files were handled with errors when event was fired.Long, optional
ErrorFilesSizeSize of files were handled with errors when event was fired.Long, optionalBytes
UploadedFilesCountNumber of files were uploaded when event was fired.Long, optional
UploadedFilesSizeSize of files were uploaded when event was fired.Long, optionalBytes
UnchangedFilesCountNumber of files were unchanged since previous backup.Long, optional
UnchangedFilesSizeSize of files were unchanged since previous backup.Long, optionalBytes
BackupDurationDuration of backup at moment when event was firedLongSeconds
EventBackupTypeIdentifies type of backup. Filled by one of following values:

Online,
ImageStream,
Exchange,
LiveProtect,
MSSQL

ShadowProtectBackup
GeneralNotification


ApplianceHyperVBackup
ApplianceVmWareBackup
ApplianceFileFolderBackup
ApplianceExchangeBackup
ApplianceSQLBackup
ApplianceDRBackup

IcabMsOffice
IcabSharepoint
IcabOneDrive
IcabGoogleApps
IcabMsOfficeGroups
IcabSalesforce
IcabBox
IcabDropBox

Enum
IsScheduledIdentifies that backup( for which current event was fired) was scheduledBool
Indicator

Filled by one of following values:

Ok,

Warning,

Error


Enum
Status

Filled by one of following values:

Uploading
Canceled
Failed
Completed

Enum
DescriptionNot localized text message describing this eventString, optional
TotalRecordsTotal count of entries what fit to filtersint
Request to get monitoring event for specific backup account and system name
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  <s:Header>
    <Action s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none">sosonlinebackup.com/GetMonitoringEvents</Action>
    <h:AuthHeader xmlns="sosonlinebackup.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:h="sosonlinebackup.com">
      <UserName>AacmeES</UserName>
      <Password>***</Password>
    </h:AuthHeader>
  </s:Header>
  <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <GetMonitoringEvents xmlns="sosonlinebackup.com">
      <request>
        <EntityId>849</EntityId>
        <Filter>
          <PageIndex>1</PageIndex>
          <PageSize>5</PageSize>
          <IndicatorFilterDefined>false</IndicatorFilterDefined>
          <IndicatorFilterValue>Ok</IndicatorFilterValue>
          <StatusFilterDefined>false</StatusFilterDefined>
          <StatusFilterValue>Uploading</StatusFilterValue>
          <EventTypeFilterDefined>false</EventTypeFilterDefined>
          <EventTypeFilterValue>BackupStarted</EventTypeFilterValue>
          <EventBackupTypeFilterDefined>true</EventBackupTypeFilterDefined>
          <EventBackupTypeFilterValue>Online</EventBackupTypeFilterValue>
          <AccountNameFilterDefined>true</AccountNameFilterDefined>
          <AccountNameFilterValue>sdk.test@sosonlinebackup.com</AccountNameFilterValue>
          <AccountTypeFilterIsNotDefined>true</AccountTypeFilterIsNotDefined>
          <AccountTypeFilterValue>BackupAccount</AccountTypeFilterValue>
          <SystemNameFilterDefined>true</SystemNameFilterDefined>
          <SystemNameFilterValue>ALEXK</SystemNameFilterValue>
          <FromDateFilterDefined>false</FromDateFilterDefined>
          <FromDateFilterValue>2017-11-28T16:32:00</FromDateFilterValue>
          <ToDateFilterDefined>false</ToDateFilterDefined>
          <ToDateFilterValue>2017-11-28T16:32:00</ToDateFilterValue>
          <Version xsi:nil="true" />
        </Filter>
      </request>
    </GetMonitoringEvents>
  </s:Body>
</s:Envelope>
Response
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <s:Header xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" />
  <soap:Body>
    <GetMonitoringEventsResponse xmlns="sosonlinebackup.com">
      <GetMonitoringEventsResult>
        <Result>
          <Result>0</Result>
          <Code>Success</Code>
        </Result>
        <MonitorEventsData>
          <MonitorEvent>
            <Indicator>Error</Indicator>
            <Status>Completed</Status>
            <Description>No backup during last 7 day(s). Last backup completed successfully on 10/30/2017 3:03 PM.</Description>
            <IsSystemNotification>true</IsSystemNotification>
            <AccountName>sdk.test@sosonlinebackup.com</AccountName>
            <AccountType>BackupAccount</AccountType>
            <SystemName>ALEXK</SystemName>
            <ClientDate>2017-10-30T15:03:32.57</ClientDate>
            <IsScheduled>false</IsScheduled>
            <TotalFilesCount>120</TotalFilesCount>
            <TotalFilesSize>3972</TotalFilesSize>
            <ErrorFilesCount>0</ErrorFilesCount>
            <ErrorFilesSize>0</ErrorFilesSize>
            <UploadedFilesCount>0</UploadedFilesCount>
            <UploadedFilesSize>0</UploadedFilesSize>
            <UnchangedFilesCount>120</UnchangedFilesCount>
            <UnchangedFilesSize>3972</UnchangedFilesSize>
            <BackupDuration>4</BackupDuration>
            <EventBackupType>Online</EventBackupType>
            <EntityId>849</EntityId>
          </MonitorEvent>
        </MonitorEventsData>
        <TotalRecords>1</TotalRecords>
      </GetMonitoringEventsResult>
    </GetMonitoringEventsResponse>
  </soap:Body>
</soap:Envelope>
Operation: GetHistoryTotalsPerDay

Sandbox: https://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/EntityMonitoringService.asmx?op=GetHistoryTotalsPerDay

Production: https://secure.sosonlinebackup.com/WebApi/AccountManagementService/EntityMonitoringService.asmx?op=GetHistoryTotalsPerDay

Extracts logged online backup events for Entity as per-day aggregated summaries

Parameter

Description

Validation

EntityId

Identifies parent entity (Company, Partner) of account for which events were logged.

Int

It is supposed that client of this service belongs to entity identified by ApiCallerEntityId

then following is validated:

  • EntityId should identify entity which is descendant for ApiCallerEntityId


DaysIntervalLast N days interval. Events summaries are aggregated per day in this interval0< int <= 60

Returns result as array of summaries  where each item is per day aggregated info with following fields:

Output Value

Description

TypeUnits

UploadedFilesCount

Number of files were uploaded in specific day.

Long
UploadedFilesSizeNumber of files were uploaded in specific day.Long
PeriodDate

Identifies day. UploadedFilesCount and UploadedFilesSize are aggregated as sum for that day.

If there are no events for specific day, results for that day are not included in output

DateTime
Operation: GetHiSTORYRecoveryEvents

Sandboxhttp://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/EntityMonitoringService.asmx?op=GetHistoryRecoveryEvents

Productionhttps://secure.sosonlinebackup.com/WebApi/AccountManagementService/EntityMonitoringService.asmx?op=GetHistoryRecoveryEvents

Extracts logged online backup events for Entity, restricts output by filters:

Parameter

Description

Validation

EntityId

Identifies parent entity (Company, Partner) of account for which this event is fired.

Int

It is supposed that client of this service belongs to entity identified by ApiCallerEntityId

then following is validated:

  • EntityId should identify entity which is descendant for ApiCallerEntityId


FromDateFilterDefinedIf this flag is set, FromDateFilterValue is taken into account when output is extracted.Bool
FromDateFilterValue"AND" filter: restricts output only by events happened after this date.DateTime
ToDateFilterDefinedIf this flag is set, ToDateFilterValue is taken into account when output is extracted.Bool
ToDateFilterValue"AND" filter: restricts output by events happened before this date.DateTime
AccountNameFilterDefinedIf this flag is set, AccountNameFilterValue is taken into account when output is extracted.Bool
AccountNameFilterValue"AND" filter: restricts output by events happened only for this account.String
SystemNameFilterDefinedIf this flag is set, SystemNameFilterValue is taken into account when output is extracted.Bool
SystemNameFilterValue

"AND" filter: restricts output by events happened for particular system.

String
PageSizeNumber of entries to extract.Int <= 5000
PageIndexIdentifies 1-based index of data frame if volume of data to extract exceeds PageSize.>=1. If 0 , 1 is taken into account


Returns result as array of events, where each item contains following fields:

Output Value

Description

TypeUnits

AccountName

Identifies account.

String
SystemName

Identifies system.

String
EntityIdIdentifies entity (Company, Partner) for which account this event is fired.Int

ClientDate

Identifies when event was fired on client side.

DateTime, UTC
HistoryRecoveryEventType

Possible values:

RecoveryCompleted

RecoveryFailed

String
RecoveryIdIdentifies recoveryString
RecoveryDurationDuration of recovery at moment when event was firedLongSeconds
ClientVersionVersion of backup softwareString, formatted as: major.minor.build.revision
Summary

N/A

String

Appliances Management

There are operations for retrieving appliances related data in scope of entities

Endpoints:

Sandboxhttps://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/AppliancesManagementService.asmx

Production: https://secure.sosonlinebackup.com/WebApi/AccountManagementService/AppliancesManagementService.asmx


Operation: GetEntityAppliances

Sandbox: https://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/AppliancesManagementService.asmx?op=GetEntityAppliances

Production: https://secure.sosonlinebackup.com/WebApi/AccountManagementService/AppliancesManagementService.asmx?op=GetEntityAppliances

Extracts data appliances details using filter:

Request:

Parameter

Description

Validation

EntityId

Identifies appliance owner entity (Company, Partner).

Int, optional

It is supposed that client of this service belongs to entity identified by ApiCallerEntityId

If client passes value, EntityId should identify entity which is descendant for ApiCallerEntityId

If client omits value or value is 0, ApiCallerEntityId is used as EntityId


ApplianceType

Field for filtering appliances by type.

Possible values:

Unknown 

PremisePhysical

PremiseVirtualPremise

VmWare

PremiseActiveActive

Cloud

Enum, optional


Request example:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Header>
<Action s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none">sosonlinebackup.com/GetEntityAppliances</Action>
<h:AuthHeader xmlns="sosonlinebackup.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:h="sosonlinebackup.com">
<UserName>AacmeES</UserName>
<Password>*****</Password>
</h:AuthHeader>
</s:Header>
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<GetEntityAppliances xmlns="sosonlinebackup.com">
<request>
<EntityId>849</EntityId>
<ApplianceType>PremisePhysical</ApplianceType>
</request>
</GetEntityAppliances>
</s:Body>
</s:Envelope>

Response:

Returns result as array of appliance details, where each item contains following fields:

Field

Description

Type

Primary

Detailed info about primary appliance

Object: ApplianceInfo
SecondaryDetailed info a bout secondary appliance


Object: ApplianceInfo
ReplicationInfoDetailed info about replicationObject:ReplicationInfo

Object: ApplianceInfo

Field

Description

Type

Uuid

Appliance identifier

string
ApplianceType

Type of appliance :

Unknown,
PremisePhysical,
PremiseVirtual,
PremiseVmWare,
PremiseActiveActive,
Cloud



string
NameAppliance namestring
DeviceSpaceUsedUsed space, byteslong
DeviceSpaceTotalTotal space, byteslong
ProtectedTotal protected, byteslong
ProtectedReplicableProtected replicable, byteslong
VmwareHostCountcount of WmWare hostsint
HasRemoteAccessIf true, it is possible to get browse url using GetEntityApplianceBrowseInfo bool
StatusInfoDetails about current stateobject:ApplianceStatusInfo

Object: ApplianceStatusInfo

Field

Description

Type
Status

Describes status, following values are possible

CannotParse,
Unknown, appliance is not sending updates and its "physical" state cannot be determined
Nominal, appliance is sending updates and has nothing to say/report
Attention, appliance is sending updates and has some issues that should be looked into (though not critical)
Warning, appliance is sending updates and has some issues that are important and need to be dealt with
Unresponsive, appliance is not sending updates though its "physical" state appears to be RUNNING
Stopped, appliance is not sending updates and its "physical" state appears to be STOPPED
Terminated, appliance is not sending updates and its "physical" state appears to be TERMINATED
Initializing, waiting for first update from appliance after creation/registration/cold-start
Rebooting, waiting for first update from appliance after rebooting
Stopping, waiting for appliance to shut down (no further contact expected until restarted)
Deleted appliance has been soft-dropped and is living in the DELETED DB table

  

string
NameStatus namestring
SeverityLevel

Describes severity, following values are possible:

Unknown,
High,
Medium,
Info,
Low

string
StatusMessageSet of related messagesobject:StatusMessage

Object: StatusMessage

Field

Description

Type
Message

  

string
SeverityLevel

Describes severity, following values are possible:

Unknown,
High,
Medium,
Info,
Low

string

Object:ReplicationInfo

Field

Description

Type
SpeedBytesPerSecond

 value of progress

long
BytesRemaining value of progress


long
SecondsRemaining value of progresslong
QueueStatusDetails about current stateobject:QueueStatusInfo

Object:QueueStatusInfo

Field

Description

Type
Status

Describes status, following values are possible

Unknown,
Idle, Queue has no work
Scan, Scanning queue for work
Sum, Comparing local and remote files for differences
Commit, Commit last transaction
Transmit, Transmitting files
Receive, Receiving files
Pause, Queue is paused
Work, Actively working
Abort, FATAL: Queue can not continue
Connect, Trying to connect to peer
Error Internal error detected

  

string
NameStatus namestring
SeverityLevel

Describes severity, following values are possible:

Unknown,
High,
Medium,
Info,
Low

string
StatusMessageSet of related messagesobject:StatusMessage

Response example:

 <GetEntityAppliancesResponse xmlns="sosonlinebackup.com">
      <GetEntityAppliancesResult>
        <AppliancesPacks>
          <AppliancesPack>
            <Primary>
              <Uuid>fe2bec74-e2e2-e9fc-72b7-55794d44a922</Uuid>
              <ApplianceType>Unknown</ApplianceType>
              <ModelName>Virtual Backup</ModelName>
              <Model>ESVM</Model>
              <ApplianceTypeTitle>Not Supported Type</ApplianceTypeTitle>
              <Name>sandbox-repl1</Name>
              <StatusInfo>
                <Status>Unknown</Status>
                <Name>Unknown</Name>
                <SeverityLevel>High</SeverityLevel>
                <Messages>
                  <StatusMessage>
                    <SeverityLevel>Info</SeverityLevel>
                    <Message>Raid  status is OK</Message>
                  </StatusMessage>
                </Messages>
              </StatusInfo>
              <UpTimeStr>4 days, 10:43:58</UpTimeStr>
              <DeviceSpaceUsed>207860453376</DeviceSpaceUsed>
              <DeviceSpaceTotal>2078953701376</DeviceSpaceTotal>
              <ProtectedReplicable>4110168851013</ProtectedReplicable>
              <Protected>4110168851013</Protected>
              <VmwareHostCount>7</VmwareHostCount>
              <HasRemoteAccess>false</HasRemoteAccess>
            </Primary>
            <Secondary>
              <Uuid>61a35c7b-e1b7-f651-192e-14b084bc823b</Uuid>
              <ApplianceType>Cloud</ApplianceType>
              <ModelName>Cloud River</ModelName>
              <Model>EEC2</Model>
              <ApplianceTypeTitle>Cloud Appliance</ApplianceTypeTitle>
              <Name>EKC-sandbox-repl1</Name>
              <StatusInfo>
                <Status>Nominal</Status>
                <Name>Online</Name>
                <SeverityLevel>Info</SeverityLevel>
                <Messages />
              </StatusInfo>
              <UpTimeStr>1 month, 15 days, 19:10:57</UpTimeStr>
              <DeviceSpaceUsed>0</DeviceSpaceUsed>
              <DeviceSpaceTotal>0</DeviceSpaceTotal>
              <ProtectedReplicable>4110169137709</ProtectedReplicable>
              <Protected>4413078896640</Protected>
              <VmwareHostCount>0</VmwareHostCount>
              <HasRemoteAccess>true</HasRemoteAccess>
            </Secondary>
            <ReplicationInfo>
              <QueueStatus>
                <Status>Work</Status>
                <Name>Replicating</Name>
                <SeverityLevel>Info</SeverityLevel>
                <Messages>
                  <StatusMessage>
                    <SeverityLevel>Info</SeverityLevel>
                    <Message>Remote appliance is verified.</Message>
                  </StatusMessage>
                </Messages>
              </QueueStatus>
              <SpeedBytesPerSecond>12588</SpeedBytesPerSecond>
              <BytesRemaining>0</BytesRemaining>
              <SecondsRemaining>0</SecondsRemaining>
            </ReplicationInfo>
          </AppliancesPack>
          <AppliancesPack>
            <Primary>
              <Uuid>24520e96-eb79-87c7-3dca-55d241cce8c9</Uuid>
              <ApplianceType>Unknown</ApplianceType>
              <ModelName>Virtual Backup</ModelName>
              <Model>ESVM</Model>
              <ApplianceTypeTitle>Not Supported Type</ApplianceTypeTitle>
              <Name>SYS00505693ea79</Name>
              <StatusInfo>
                <Status>Unknown</Status>
                <Name>Unknown</Name>
                <SeverityLevel>High</SeverityLevel>
                <Messages>
                  <StatusMessage>
                    <SeverityLevel>Info</SeverityLevel>
                    <Message>Raid  status is OK</Message>
                  </StatusMessage>
                </Messages>
              </StatusInfo>
              <UpTimeStr>1 day, 18:34:43</UpTimeStr>
              <DeviceSpaceUsed>155060871168</DeviceSpaceUsed>
              <DeviceSpaceTotal>2025267658752</DeviceSpaceTotal>
              <ProtectedReplicable>4077664590890</ProtectedReplicable>
              <Protected>4077664590890</Protected>
              <VmwareHostCount>7</VmwareHostCount>
              <HasRemoteAccess>false</HasRemoteAccess>
            </Primary>
            <Secondary>
              <Uuid>6e48a39d-5266-d87a-34ad-691cd966f9b6</Uuid>
              <ApplianceType>Cloud</ApplianceType>
              <ModelName>Cloud River</ModelName>
              <Model>EEC2</Model>
              <ApplianceTypeTitle>Cloud Appliance</ApplianceTypeTitle>
              <Name>EKC-SYS00505693ea79</Name>
              <StatusInfo>
                <Status>Nominal</Status>
                <Name>Online</Name>
                <SeverityLevel>Info</SeverityLevel>
                <Messages />
              </StatusInfo>
              <UpTimeStr>1 month, 15 days, 19:13:51</UpTimeStr>
              <DeviceSpaceUsed>0</DeviceSpaceUsed>
              <DeviceSpaceTotal>0</DeviceSpaceTotal>
              <ProtectedReplicable>10687607907294</ProtectedReplicable>
              <Protected>11475078873088</Protected>
              <VmwareHostCount>0</VmwareHostCount>
              <HasRemoteAccess>true</HasRemoteAccess>
            </Secondary>
            <ReplicationInfo>
              <QueueStatus>
                <Status>Idle</Status>
                <Name>Idle</Name>
                <SeverityLevel>Low</SeverityLevel>
                <Messages>
                  <StatusMessage>
                    <SeverityLevel>Info</SeverityLevel>
                    <Message>Remote appliance is verified.</Message>
                  </StatusMessage>
                </Messages>
              </QueueStatus>
              <SpeedBytesPerSecond>195</SpeedBytesPerSecond>
              <BytesRemaining>0</BytesRemaining>
              <SecondsRemaining>0</SecondsRemaining>
            </ReplicationInfo>
          </AppliancesPack>
        </AppliancesPacks>
        <Result>
          <Result>0</Result>
          <Code>Success</Code>
        </Result>
      </GetEntityAppliancesResult>
    </GetEntityAppliancesResponse>
  </soap:Body>
</soap:Envelope>

Operation: GetEntityApplianceBrowseInfo

Sandbox: https://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/AppliancesManagementService.asmx?op=GetEntityApplianceBrowseInfo

Productionhttps://secure.sosonlinebackup.com/WebApi/AccountManagementService/AppliancesManagementService.asmx?op=GetEntityApplianceBrowseInfo


Gives url to remote access to specific appliance:


Request:

Parameter

Description

Validation

Uuid

Identifier of appliance

 Appliance must have HasRemoteAccess = true

Request example:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  <s:Header>
    <Action s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none">sosonlinebackup.com/GetEntityApplianceBrowseInfo</Action>
    <h:AuthHeader xmlns="sosonlinebackup.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:h="sosonlinebackup.com">
      <UserName>AacmeES</UserName>
      <Password>***</Password>
    </h:AuthHeader>
  </s:Header>
  <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <GetEntityApplianceBrowseInfo xmlns="sosonlinebackup.com">
      <request>
        <Uuid>890446db-ad5a-0b39-e0a8-d721307c2f21</Uuid>
      </request>
    </GetEntityApplianceBrowseInfo>
  </s:Body>
</s:Envelope>


Response:

Field

Description

Type

Url

url to remote access page

string

Response example:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <s:Header xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" />
  <soap:Body>
    <GetEntityApplianceBrowseInfoResponse xmlns="sosonlinebackup.com">
      <GetEntityApplianceBrowseInfoResult>
        <Url>https://***.evscloud.com/?authtoken=***/***&amp;top=Jobs&amp;sub=History</Url>
        <Result>
          <Result>0</Result>
          <Code>Success</Code>
        </Result>
      </GetEntityApplianceBrowseInfoResult>
    </GetEntityApplianceBrowseInfoResponse>
  </soap:Body>
</soap:Envelope>


Folder Backup Management

Endpoints:

Sandbox: https://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/AdvancedFolderBackupManagementService.asmx

Production: https://secure.sosonlinebackup.com/WebApi/AccountManagementService/AdvancedFolderBackupManagementService.asmx


Object: ImageStreamSettings

Parameter

Description

Validation

ImageStreamSettingsIdImage stream settings identifierInt, required
ImageStreamFoldersCollection of object:ImageStreamFolder
SendEmailReportCheck if need to send report on SendEmailReportTo email addressbool
SendEmailReportToEmail address, on which email report will be sentstring, email address
RunAsEnabledSet to true if you need to run as userbool
RunAsUsernameUsername if you are running under specific user

string

required if RunAsEnabled is set to true

RunAsPasswordPassword if you are running under specific user

string

required if RunAsEnabled is set to true


Object: ImageStreamFolder

Parameter

Description

Validation

ImageStreamFolderIdImage stream folder identifierint, required
BackupScheduleObject:BackupSchedule
FolderFriendlyNameFolder namestring, required
FolderPathFolder pathstring, required
FolderPathDomainUserUser for specified folderstring, optional
FolderPathPasswordPassword for specified folderstring, optional
RetentionPolicyTypeId

Unknown = 0,
Replicate = 1,
ForeverSave = 2,
Archive = 3,
TimeLimited = 4,
CloudRetention = 5

int, required
TimeLimitedBackupDaysLimited backup daysint, required
SkipFilesModifiedDays

Skip files that were not modified X last days

Could be specified if RetentionPolicyTypeId = 2-5

int, optional

CloudDeleteOlderThanDaysDelete files that are older then X days

int, optional

Required if RetentionPolicyTypeId = 5

CloudForWholeHierarchyInclude subfoldersbool
DateCreatedDate createddatetime


Object: BackupSchedule

Parameter

Description

Validation

ScheduleTypeId

Frequency

Unknown = 0,
Hourly = 1,
Daily = 2,
Weekly = 3,
Monthly = 4

int, required
HourlyPeriod

Hourly period

int, optional

Required if ScheduleTypeId is set to 1

WeeklyDayOfWeek

Sunday,
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday

string, optional

Required if ScheduleTypeId is set to 3

MonthlyDayNumberDay of Month

int, 1-31, optional

Required if ScheduleTypeId is set to 4

StartTimeUTC

Start time

Could be specified if ScheduleTypeId = 2-4

datetime, required
EndTimeUTC

End time

Could be specified if ScheduleTypeId = 2-4

datetima, optional

Required if EndTimeEnabled is set to true

EndTimeEnabledFlag shows if EndTimeUTC should be enteredbool, required


Operation: GetAdvancedFolderSettings

Sandbox: https://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/AdvancedFolderBackupManagementService.asmx?op=GetAdvancedFolderSettings

Production: https://secure.sosonlinebackup.com/WebApi/AccountManagementService/AdvancedFolderBackupManagementService.asmx?op=GetAdvancedFolderSettings

Get folder settings:

Request:

ParameterDescriptionValidation
UserNameIdentifies account

Required, "^[^<>]{0,100}$"

SystemNameComputer system nameRequired


Request example:

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Header>
    <AuthHeader xmlns="sosonlinebackup.com">
      <UserName>AacmeES</UserName>
      <Password>*****</Password>
    </AuthHeader>
  </soap:Header>
  <soap:Body>
    <GetAdvancedFolderSettings xmlns="sosonlinebackup.com">
      <request>
        <UserName>Alex</UserName>
        <SystemName>alex-pc</SystemName>
      </request>
    </GetAdvancedFolderSettings>
  </soap:Body>
</soap:Envelope>


Response:

FieldDescriptionType
ImageStreamSettings
object:ImageStreamSettings


Response example:

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <GetAdvancedFolderSettingsResponse xmlns="sosonlinebackup.com">
      <GetAdvancedFolderSettingsResult>
        <ImageStreamSettings>
          <ImageStreamSettingsId>53</ImageStreamSettingsId>
          <ImageStreamFolders>
            <ImageStreamFolder>
              <ImageStreamFolderId>527</ImageStreamFolderId>
              <BackupSchedule>
                <ScheduleTypeId>2</ScheduleTypeId>
                <HourlyPeriod>1</HourlyPeriod>
                <WeeklyDayOfWeek>Wednesday</WeeklyDayOfWeek>
                <MonthlyDayNumber>3</MonthlyDayNumber>
                <StartTimeUTC>2015-06-05T08:22:33Z</StartTimeUTC>
                <EndTimeUTC>2015-06-05T20:59:59Z</EndTimeUTC>
                <EndTimeEnabled>true</EndTimeEnabled>
              </BackupSchedule>
              <FolderFriendlyName>My_Folder</FolderFriendlyName>
              <FolderPath>C:\ddd</FolderPath>
              <FolderPathDomainUser>alex-pc\Alex</FolderPathDomainUser>
              <FolderPathPassword>***</FolderPathPassword>
              <RetentionPolicyTypeId>5</RetentionPolicyTypeId>
              <TimeLimitedBackupDays>33</TimeLimitedBackupDays>
              <SkipFilesModifiedDays>8</SkipFilesModifiedDays>
              <CloudDeleteOlderThanDays>4</CloudDeleteOlderThanDays>
              <CloudForWholeHierarchy>false</CloudForWholeHierarchy>
              <DateCreated>2015-06-05T13:09:02.7454428Z</DateCreated>
            </ImageStreamFolder>
            <ImageStreamFolder>
              <ImageStreamFolderId>528</ImageStreamFolderId>
              <BackupSchedule>
                <ScheduleTypeId>2</ScheduleTypeId>
                <HourlyPeriod>1</HourlyPeriod>
                <WeeklyDayOfWeek>Wednesday</WeeklyDayOfWeek>
                <MonthlyDayNumber>3</MonthlyDayNumber>
                <StartTimeUTC>2015-06-05T08:22:33Z</StartTimeUTC>
                <EndTimeUTC>2015-06-05T20:59:59Z</EndTimeUTC>
                <EndTimeEnabled>true</EndTimeEnabled>
              </BackupSchedule>
              <FolderFriendlyName>My_Folder2</FolderFriendlyName>
              <FolderPath>C:\fff</FolderPath>
              <FolderPathDomainUser>alex-pc\Alex</FolderPathDomainUser>
              <FolderPathPassword>***</FolderPathPassword>
              <RetentionPolicyTypeId>5</RetentionPolicyTypeId>
              <TimeLimitedBackupDays>33</TimeLimitedBackupDays>
              <SkipFilesModifiedDays>8</SkipFilesModifiedDays>
              <CloudDeleteOlderThanDays>4</CloudDeleteOlderThanDays>
              <CloudForWholeHierarchy>false</CloudForWholeHierarchy>
              <DateCreated>2015-06-05T13:09:02.7454428Z</DateCreated>
            </ImageStreamFolder>
          </ImageStreamFolders>
          <SendEmailReport>true</SendEmailReport>
          <SendEmailReportTo>email@domain.com</SendEmailReportTo>
          <RunAsEnabled>true</RunAsEnabled>
          <RunAsUsername>alex-pc\alex</RunAsUsername>
          <RunAsPassword>***</RunAsPassword>
        </ImageStreamSettings>
        <Result>
          <Result>0</Result>
          <Code>Success</Code>
        </Result>
      </GetAdvancedFolderSettingsResult>
    </GetAdvancedFolderSettingsResponse>
  </soap:Body>
</soap:Envelope>


Operation: SetAdvancedFolderSettings

Sandbox: https://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/AdvancedFolderBackupManagementService.asmx?op=SetAdvancedFolderSettings

Production: https://secure.sosonlinebackup.com/WebApi/AccountManagementService/AdvancedFolderBackupManagementService.asmx?op=SetAdvancedFolderSettings

Set folder settings:

Request:

ParameterDescriptionValidation
UserNameIdentifies account

Required, "^[^<>]{0,100}$"

SystemNameComputer system nameRequired
ImageStreamSettingsobject:ImageStreamSettingsRequired


Request example:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  <s:Header>
    <AuthHeader xmlns="sosonlinebackup.com" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
      <Password>AacmeES</Password>
      <UserName>***</UserName>
    </AuthHeader>
  </s:Header>
  <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <SetAdvancedFolderSettings xmlns="sosonlinebackup.com">
      <request>
        <UserName>Alex</UserName>
        <SystemName>alex-pc</SystemName>
        <ImageStreamSettings>
          <ImageStreamSettingsId>53</ImageStreamSettingsId>
          <ImageStreamFolders>
            <ImageStreamFolder>
              <ImageStreamFolderId>0</ImageStreamFolderId>
              <BackupSchedule>
                <ScheduleTypeId>2</ScheduleTypeId>
                <HourlyPeriod>1</HourlyPeriod>
                <WeeklyDayOfWeek>Wednesday</WeeklyDayOfWeek>
                <MonthlyDayNumber>3</MonthlyDayNumber>
                <StartTimeUTC>2015-06-11T11:22:33+03:00</StartTimeUTC>
                <EndTimeUTC>2015-06-11T23:59:59+03:00</EndTimeUTC>
                <EndTimeEnabled>true</EndTimeEnabled>
              </BackupSchedule>
              <FolderFriendlyName>My_Folder</FolderFriendlyName>
              <FolderPath>C:\ddd</FolderPath>
              <FolderPathDomainUser>alex-pc\alex</FolderPathDomainUser>
              <FolderPathPassword>***</FolderPathPassword>
              <RetentionPolicyTypeId>5</RetentionPolicyTypeId>
              <TimeLimitedBackupDays>33</TimeLimitedBackupDays>
              <SkipFilesModifiedDays>8</SkipFilesModifiedDays>
              <CloudDeleteOlderThanDays>4</CloudDeleteOlderThanDays>
              <CloudForWholeHierarchy>false</CloudForWholeHierarchy>
              <DateCreated>2015-06-11T13:05:10.6790525+03:00</DateCreated>
            </ImageStreamFolder>
            <ImageStreamFolder>
              <ImageStreamFolderId>0</ImageStreamFolderId>
              <BackupSchedule>
                <ScheduleTypeId>2</ScheduleTypeId>
                <HourlyPeriod>1</HourlyPeriod>
                <WeeklyDayOfWeek>Wednesday</WeeklyDayOfWeek>
                <MonthlyDayNumber>3</MonthlyDayNumber>
                <StartTimeUTC>2015-06-11T11:22:33+03:00</StartTimeUTC>
                <EndTimeUTC>2015-06-11T23:59:59+03:00</EndTimeUTC>
                <EndTimeEnabled>true</EndTimeEnabled>
              </BackupSchedule>
              <FolderFriendlyName>My_Folder2</FolderFriendlyName>
              <FolderPath>C:\fff</FolderPath>
              <FolderPathDomainUser>alex-pc\alex</FolderPathDomainUser>
              <FolderPathPassword>***</FolderPathPassword>
              <RetentionPolicyTypeId>5</RetentionPolicyTypeId>
              <TimeLimitedBackupDays>33</TimeLimitedBackupDays>
              <SkipFilesModifiedDays>8</SkipFilesModifiedDays>
              <CloudDeleteOlderThanDays>4</CloudDeleteOlderThanDays>
              <CloudForWholeHierarchy>false</CloudForWholeHierarchy>
              <DateCreated>2015-06-11T13:05:10.6900604+03:00</DateCreated>
            </ImageStreamFolder>
          </ImageStreamFolders>
          <SendEmailReport>true</SendEmailReport>
          <SendEmailReportTo>email@domain.com</SendEmailReportTo>
          <RunAsEnabled>true</RunAsEnabled>
          <RunAsUsername>alex-pc\alex</RunAsUsername>
          <RunAsPassword>***</RunAsPassword>
        </ImageStreamSettings>
      </request>
    </SetAdvancedFolderSettings>
  </s:Body>
</s:Envelope>



Response:

FieldDescriptionType
ImageStreamSettings
object:ImageStreamSettings

Response example:

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <SetAdvancedFolderSettingsResponse xmlns="sosonlinebackup.com">
      <SetAdvancedFolderSettingsResult>
        <ImageStreamSettings>
          <ImageStreamSettingsId>53</ImageStreamSettingsId>
          <ImageStreamFolders>
            <ImageStreamFolder>
              <ImageStreamFolderId>529</ImageStreamFolderId>
              <BackupSchedule>
                <ScheduleTypeId>2</ScheduleTypeId>
                <HourlyPeriod>1</HourlyPeriod>
                <WeeklyDayOfWeek>Wednesday</WeeklyDayOfWeek>
                <MonthlyDayNumber>3</MonthlyDayNumber>
                <StartTimeUTC>2015-06-11T08:22:33Z</StartTimeUTC>
                <EndTimeUTC>2015-06-11T20:59:59Z</EndTimeUTC>
                <EndTimeEnabled>true</EndTimeEnabled>
              </BackupSchedule>
              <FolderFriendlyName>My_Folder</FolderFriendlyName>
              <FolderPath>C:\ddd</FolderPath>
              <FolderPathDomainUser>alex-pc\alex</FolderPathDomainUser>
              <FolderPathPassword>***</FolderPathPassword>
              <RetentionPolicyTypeId>5</RetentionPolicyTypeId>
              <TimeLimitedBackupDays>33</TimeLimitedBackupDays>
              <SkipFilesModifiedDays>8</SkipFilesModifiedDays>
              <CloudDeleteOlderThanDays>4</CloudDeleteOlderThanDays>
              <CloudForWholeHierarchy>false</CloudForWholeHierarchy>
              <DateCreated>2015-06-11T10:05:10.6790525Z</DateCreated>
            </ImageStreamFolder>
            <ImageStreamFolder>
              <ImageStreamFolderId>530</ImageStreamFolderId>
              <BackupSchedule>
                <ScheduleTypeId>2</ScheduleTypeId>
                <HourlyPeriod>1</HourlyPeriod>
                <WeeklyDayOfWeek>Wednesday</WeeklyDayOfWeek>
                <MonthlyDayNumber>3</MonthlyDayNumber>
                <StartTimeUTC>2015-06-11T08:22:33Z</StartTimeUTC>
                <EndTimeUTC>2015-06-11T20:59:59Z</EndTimeUTC>
                <EndTimeEnabled>true</EndTimeEnabled>
              </BackupSchedule>
              <FolderFriendlyName>My_Folder2</FolderFriendlyName>
              <FolderPath>C:\fff</FolderPath>
              <FolderPathDomainUser>alex-pc\alex</FolderPathDomainUser>
              <FolderPathPassword>***</FolderPathPassword>
              <RetentionPolicyTypeId>5</RetentionPolicyTypeId>
              <TimeLimitedBackupDays>33</TimeLimitedBackupDays>
              <SkipFilesModifiedDays>8</SkipFilesModifiedDays>
              <CloudDeleteOlderThanDays>4</CloudDeleteOlderThanDays>
              <CloudForWholeHierarchy>false</CloudForWholeHierarchy>
              <DateCreated>2015-06-11T10:05:10.6900604Z</DateCreated>
            </ImageStreamFolder>
          </ImageStreamFolders>
          <SendEmailReport>true</SendEmailReport>
          <SendEmailReportTo>email@domain.com</SendEmailReportTo>
          <RunAsEnabled>true</RunAsEnabled>
          <RunAsUsername>alex-pc\alex</RunAsUsername>
          <RunAsPassword>***</RunAsPassword>
        </ImageStreamSettings>
        <Result>
          <Result>0</Result>
          <Code>Success</Code>
        </Result>
      </SetAdvancedFolderSettingsResult>
    </SetAdvancedFolderSettingsResponse>
  </soap:Body>
</soap:Envelope>


Backup Devices Management

Endpoints:

Sandboxhttps://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/BackupDevicesManagementService.asmx

Productionhttps://secure.sosonlinebackup.com/WebApi/BackupDevicesManagementService/AppliancesManagementService.asmx


Operation: GetBackupDevices

Sandboxhttps://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/BackupDevicesManagementService.asmx?op=GetBackupDevices

Productionhttps://secure.sosonlinebackup.com/WebApi/AccountManagementService/BackupDevicesManagementService.asmx?op=GetBackupDevices

Extracts devices details using filter:

Request:

Parameter

Description

Validation

UserName

Filters devices by backup account

string, required

It is supposed that client of this service belongs to entity identified by ApiCallerEntityId

User name must belong to ApiCallerEntityId hierarchy


SystemName

Filters devices by device name

string, optional

Request example:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  <s:Header>
    <Action s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none">sosonlinebackup.com/GetBackupDevices</Action>
    <h:AuthHeader xmlns="sosonlinebackup.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:h="sosonlinebackup.com">
      <UserName>2117WS</UserName>
      <Password>*****</Password>
    </h:AuthHeader>
  </s:Header>
  <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <GetBackupDevices xmlns="sosonlinebackup.com">
      <request>
        <UserName>tests</UserName>
      </request>
    </GetBackupDevices>
  </s:Body>
</s:Envelope>


Response:

Returns result as array where each item describes device details:

Field

Description

Type

UserName

Backup account that uses device

string
SystemName

Device name

string
ProductVersionVersion of backup softwarestring, formatted as: major.minor.build.revision
RegistrationDateUtcDescribes when device successfully logged in first timeDateTime, UTC
OsNameName of installed operating systemstring
ClrVersionVersion of .NET (if installed )string

Response example:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <s:Header xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" />
  <soap:Body>
    <GetBackupDevicesResponse xmlns="sosonlinebackup.com">
      <GetBackupDevicesResult>
        <BackupDevices>
          <BackupDevice>
            <UserName>tests</UserName>
            <SystemName>TURCH2</SystemName>
            <ProductVersion>5.14.0.109</ProductVersion>
            <RegistrationDateUtc>2014-06-25T14:33:51.393</RegistrationDateUtc>
            <OsName>Windows 7</OsName>
            <ClrVersion>4.0.30319.18063</ClrVersion>
          </BackupDevice>
          <BackupDevice>
            <UserName>tests</UserName>
            <SystemName>ANDREY-VM</SystemName>
            <ProductVersion>5.13.0.758</ProductVersion>
            <RegistrationDateUtc>2014-06-27T09:57:27.97</RegistrationDateUtc>
            <OsName>Windows 7</OsName>
            <ClrVersion>4.0.30319.17929</ClrVersion>
          </BackupDevice>
          <BackupDevice>
            <UserName>tests</UserName>
            <SystemName>QAVM4</SystemName>
            <ProductVersion>5.15.1.47</ProductVersion>
            <RegistrationDateUtc>2014-11-19T10:51:59.603</RegistrationDateUtc>
            <OsName>Windows Server 2008 R2</OsName>
            <ClrVersion>4.0.30319.18444</ClrVersion>
          </BackupDevice>
        </BackupDevices>
        <Result>
          <Result>0</Result>
          <Code>Success</Code>
        </Result>
      </GetBackupDevicesResult>
    </GetBackupDevicesResponse>
  </soap:Body>
</soap:Envelope>
Operation: GetDeviceAccounts (added on Mar 2018)

Sandboxhttps://secure-sandbox.sosonlinebackup.com/WebApi/AccountManagementService/BackupDevicesManagementService.asmx?op=GetDeviceAccounts

Productionhttps://secure.sosonlinebackup.com/WebApi/AccountManagementService/BackupDevicesManagementService.asmx?op=GetDeviceAccounts

Gets all backup accounts registered on device:

Request:

Parameter

Description

Validation

TargetEntityID

ID of the Partner/Distributor, i.e. the root of the hierarchy thee.

required, int, >=0.

Use 0 for yourself.

InstallationIdDesigned as unique,  OBRM installation ID. Generated  and stored on divice during installation.  Doesn't get changed after upgrade.

required, guid string

Examples: 

"ca761232ed4211cebacd00aa0057b223"
"CA761232-ED42-11CE-BACD-00AA0057B223"
"{CA761232-ED42-11CE-BACD-00AA0057B223}"
"(CA761232-ED42-11CE-BACD-00AA0057B223)"
SystemName

Windows system/computer/device name

string, optional

IsActiveUserAllows to get only active (true), inactive (false) or all (when not set) accountsboolean, optional
IsActiveRegistrationAllows to get only curent (true), obsolete (false) or all (when not set) device registrationsboolean, optional


Request example:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sos="sosonlinebackup.com">
   <soapenv:Header>
      <sos:AuthHeader>
         <sos:UserName>*****</sos:UserName><sos:Password>*****</sos:Password>
      </sos:AuthHeader>
   </soapenv:Header>
   <soapenv:Body>
      <sos:GetDeviceAccounts>
         <sos:request>
            <sos:TargetEntityID>0</sos:TargetEntityID>
            <sos:InstallationId>BAD412D2-1330-4C99-837F-442F1C8D3093</sos:InstallationId>
           <sos:SystemName>MVR01372</sos:SystemName>
           <sos:IsActiveUser>true</sos:IsActiveUser>
            <sos:IsActiveRegistration>true</sos:IsActiveRegistration>
         </sos:request>
      </sos:GetDeviceAccounts>
   </soapenv:Body>
</soapenv:Envelope>


Response:

Returns result as array where each item describes device details:

Field

Description

Type

UserName

Backup account that uses device

string
SystemName

Windows system/computer/device name

string
IpIp adress of devicestring, e.g "8.8.4.4"
EntityIDEntity that owns  UserNameint
BackupDeviceIDGlobally uinique device idint
IsActiveUserIs backup account activeboolean
IsActiveRegistrationIs it this device registration activeboolean
ProductVersionVersion of backup softwarestring, formatted as: major.minor.build.revision
UsedSpaceKbBacked up data size, Kblong
RegistrationDateUtcDescribes when device successfully logged in first timeDateTime, UTC
LastBackupDateLast backup dateDateTime
LastConnectedDateUtcVersion of .NET (if installed )DateTime, UTC

Response example:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <soap:Body>
      <GetDeviceAccountsResponse xmlns="sosonlinebackup.com">
         <GetDeviceAccountsResult>
            <Accounts>
               <AccountOnDevice>
                  <UserName>nlemen@xxx.com</UserName>
                  <SystemName>MVR01372</SystemName>
                  <Ip>50.23.4.207</Ip>
                  <EntityID>2095</EntityID>
                  <BackupDeviceID>126428</BackupDeviceID>
                  <IsActiveUser>true</IsActiveUser>
                  <IsActiveRegistration>true</IsActiveRegistration>
                  <ProductVersion>5.14.1.116</ProductVersion>
                  <UsedSpaceKb>639372</UsedSpaceKb>
                  <RegistrationDateUtc>2014-12-22T18:43:32.05</RegistrationDateUtc>
                  <LastBackupDate>2015-02-04T09:15:09.713</LastBackupDate>
                  <LastConnectedDateUtc>2015-02-06T13:53:03.65</LastConnectedDateUtc>
               </AccountOnDevice>
            </Accounts>
            <SupposedlyMainAccount>
               <UserName>nlemen@xxx.com</UserName>
               <SystemName>MVR01372</SystemName>
               <Ip>50.23.4.207</Ip>
               <EntityID>2095</EntityID>
               <BackupDeviceID>126428</BackupDeviceID>
               <IsActiveUser>true</IsActiveUser>
               <IsActiveRegistration>false</IsActiveRegistration>
               <ProductVersion>5.14.1.116</ProductVersion>
               <UsedSpaceKb>639372</UsedSpaceKb>
               <RegistrationDateUtc>2014-12-22T18:43:32.05</RegistrationDateUtc>
               <LastBackupDate>2015-02-04T09:15:09.713</LastBackupDate>
               <LastConnectedDateUtc>2015-02-06T13:53:03.65</LastConnectedDateUtc>
            </SupposedlyMainAccount>
            <Result>
               <Result>0</Result>
               <Code>Success</Code>
            </Result>
         </GetDeviceAccountsResult>
      </GetDeviceAccountsResponse>
   </soap:Body>
</soap:Envelope>

Cloud Application Backup Management

Endpoints:

Sandbox: https://secure-sandbox.sosonlinebackup.com/WebAPI/AccountManagementService/CloudApplicationBackupManagementService.asmx

Production: https://secure.sosonlinebackup.com/WebAPI/AccountManagementService/CloudApplicationBackupManagementService.asmx


Operation: EnableBackup  (added on May 2018)

Sandbox: https://secure-sandbox.sosonlinebackup.com/WebAPI/AccountManagementService/CloudApplicationBackupManagementService.asmx?op=EnableBackup

Production: https://secure.sosonlinebackup.com/WebAPI/AccountManagementService/CloudApplicationBackupManagementService.asmx?op=EnableBackup

Request:

ParameterDescriptionValidation
ForEntityIdEntity owner of ICAB accountint
EmailLogin of ICAB account

string, can be null. When null GeneralContactEmail of entity is used.

RegionLocation of data center

string, can be null. When null  'US_EST' is used.

Valid values are (without quotes):  'US_EST' , 'CANADA', 'EU'  and  'ASIA_SIDNEY'

Request example:


<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope">  
    <s:Header>    
        <Action s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none">sosonlinebackup.com/EnableBackup</Action>
        <h:AuthHeader xmlns="sosonlinebackup.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:h="sosonlinebackup.com">      
           <UserName>ac****</UserName>      
           <Password>rt*****</Password>    
        </h:AuthHeader>  
    </s:Header>  
    <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">    
       <EnableBackup xmlns="sosonlinebackup.com">      
           <request>        
              <ForEntityId>49788</ForEntityId>        
              <Email>GeneralContactEmail@debug.com</Email>        
              <Region>US_EST</Region>      
           </request>    
       </EnableBackup>  
    </s:Body>
</s:Envelope>

Response:
returns the standard Result object


An opposite to EnableBackup method. Disables Infrascale Cloud Applications Backup for given entity by un-subscribing its account from ICAB Services.

Request:

ParameterDescriptionValidation
TargetEntityID

EntityID of the Partner/Company/Distributor which ICAB account you want to disable, i.e unsubscribe from ICAB Services.

Int, >=0. Use 0 for yourself.

Request example:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sos="sosonlinebackup.com">
   <soapenv:Header>
      <sos:AuthHeader>
         <sos:UserName>21***</sos:UserName><sos:Password>k*****</sos:Password>
      </sos:AuthHeader>
   </soapenv:Header>
   <soapenv:Body>
      <sos:DisableBackup>
         <sos:request>
            <sos:TargetEntityID>523</sos:TargetEntityID>
         </sos:request>
      </sos:DisableBackup>
   </soapenv:Body>
</soapenv:Envelope>

Response:
returns the standard Result object

Operation: GetCloudUsage (added on July 2018)

Sandbox: https://secure-sandbox.sosonlinebackup.com/WebAPI/AccountManagementService/CloudApplicationBackupManagementService.asmx?op=GetCloudUsage

Productionhttps://secure.sosonlinebackup.com/WebAPI/AccountManagementService/CloudApplicationBackupManagementService.asmx?op=GetCloudUsage

ParameterDescriptionValidation
TargetEntityIDEntityID of the Partner/Company/Distributor for which you want to get cloud backup usage

int, >=0. Use 0 for yourself.

PageNumberThe page number

int >= 1

PageSizeThe number of companies to display per page

int > 0, Default value: 1000

Request example:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sos="sosonlinebackup.com"> 
    <soapenv:Header> 
        <sos:AuthHeader>
            <sos:UserName>21***</sos:UserName>
            <sos:Password>k*****</sos:Password>
        </sos:AuthHeader>
    </soapenv:Header> 
    <soapenv:Body>
        <sos:GetCloudUsage>
            <sos:request> 
                <sos:ForEntityID>523</sos:ForEntityID> 
                <sos:PageNumber>1</sos:PageNumber>
                <sos:PageSize>1000</sos:PageSize>
            </sos:request> 
        </sos:GetCloudUsage> 
    </soapenv:Body> 
</soapenv:Envelope>

Response:

Returns result as array where each item describes cloud backup usage for an used cloud service:

FieldDescriptionType
LastBackupDateLast backup dateDateTime, can be null
AccountsFor the user based pricing the number of activated accountslong, can be null
StorageBytesFor the storage based pricing the number of used storage (in bytes)long, can be null
SourceService internal typestring
ServiceService namestring
ICABAccountNameName of the ICAB accountstring
AccountDateCreatedDate of creating of ICAB accountDateTime
CompanyIDEntityID of the Partner/Company/Distributor which uses cloud backupint
CompanyNamename  of Partner/Company/Distributor which uses cloud backupstring
ConfiguredDatedate when was configured the backup for the serviceDateTime, can be null
PageNumbernumber of a current pageint
NumberOfPagesTotal number of pagesint
TotalCountTotal number of companies for the requestint


Response example:

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">  
    <s:Header xmlns:s="http://www.w3.org/2003/05/soap-envelope" />  
       <soap:Body>    
          <GetCloudUsageResponse xmlns="sosonlinebackup.com">
              <GetCloudUsageResul>
                  <Result>
                      <Result>0</Result>          
                      <Code>Success</Code>        
                  </Result>        
                  <UsageLines>          
                      <CloudApplicationBackupUsageLine>            
                          <ICABAccountName>test001@dbg.sossync.com</ICABAccountName>            
                          <AccountDateCreated>2018-01-17T11:27:42.87</AccountDateCreated>
                          <CompanyID>1</CompanyID>
                          <CompanyName>Test</CompanyName>
                          <ConfiguredDate xsi:nil="true" />
                          <LastBackupDate xsi:nil="true" />            
                          <Accounts>40</Accounts>                          
                          <StorageBytes xsi:nil="true" />
                          <Source>MS365</Source>
                          <Service>Office 365 Exchange (test@infrascale.com)</Service>    
                     </CloudApplicationBackupUsageLine>
                     <CloudApplicationBackupUsageLine> 
                          <ICABAccountName>test002@dbg.sossync.com</ICABAccountName> 
                          <AccountDateCreated>2018-01-17T11:27:42.87</AccountDateCreated>
                          <CompanyID>2</CompanyID>
                          <CompanyName>Test2</CompanyName>
                          <ConfiguredDate xsi:nil="true" />
                          <LastBackupDate>2018-07-01T00:00:00</LastBackupDate> 
                          <Accounts xsi:nil="true" />                           
                          <StorageBytes>3715401905</StorageBytes> 
                          <Source>OneDrive (test2@sossync.com)</Source> 
                         <Service>ONEDRIVE</Service>  
                     </CloudApplicationBackupUsageLine>   
                   </UsageLines>     
                   <PageNumber>1</PageNumber>        
                   <NumberOfPages>1</NumberOfPages>        
                   <TotalCount>3</TotalCount>
              </GetCloudUsageResul>    
          </GetCloudUsageResponse>  
      </soap:Body>
</soap:Envelope>































  • No labels