Public APIs

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

Application

Production (Live)

Sandbox


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

Service Self-Documentation

WSDL

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).

1 2 3 4 5 6 7 8 9 10 11 12 13 <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)

Result.Result

Result.Code

Description (not returned in the response)

0

Success

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

1 3
1 InvalidSoapCredentials

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

1 53
1 ObjectEntityMismatch

Attempt to use inactive entity or entity not from your hierarchy

1 2
1 InvalidInputParameters

One of the fields in request is invalid. Check Result.Message for more details.

1 1
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.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 <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

1 2 3 4 5 6 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

Parameter

Description

Validation

Username

Username, aka AccountName. It's globally unique

String

UncanelReason

Reason 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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 <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)

Result.Result

Result.Code

Description (not returned in the response)

1 53
1 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

1 502
1 InvalidParameterUserName

Username format is not valid

OR Attempt to use unknown Username

1 1060
1 AccountIsNotCanceled

Backup account is already NOT cancelled

5020

CannotSendEmail

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

Response example:

1 2 3 4 5 6 7 8 9 10 11 12 <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

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 entities

Bool

ConnectwiseIntegratorEntityID

EntityID for which Connectwise is configured. If not set, then TargetEntityID used instead

Int, Optional

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

Output Value

Description

Validation

Output Value

Description

Validation

EntityID

ID of the Entity

Int, >0.

EntityName

Internal name of the entity

String

ParentEntityID

Parent for the entity

Int, >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.

EntityType

Entity type

Infrascale, Distributor, Partner, Company, Unknown

IsActive

True, when entity is active

Bool

ConnectWiseTicketingCompanyId

Connectwise company identifier

String

Example of the output  when  target entity is distributor.

EntityID

EntityName

ParentEntityID

DistributorEntityID

PartnerEntityID

CompanyEntityID

EntityType

IsActive

EntityID

EntityName

ParentEntityID

DistributorEntityID

PartnerEntityID

CompanyEntityID

EntityType

IsActive

888

SomeDistributor

1

888

0

0

Distributor

true

111

SomeDistrCompany

888

888

0

111

Company

true

112

OtherDistrCompany

888

888

0

112

Company

false

221

SomePartner1

888

888

221

0

Partner

true

311

Company1OfPartner1

221

888

221

311

Company

true

312

Company2OfPartner1

221

888

221

312

Company

true

225

SomePartner2

888

888

225

0

Partner

false

226

SomePartner3

888

888

226

0

Partner

true

321

Company1OfPartner3

226

888

226

321

Company

false

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

EntityID

EntityName

ParentEntityID

DistributorEntityID

PartnerEntityID

CompanyEntityID

EntityType

IsActive

EntityID

EntityName

ParentEntityID

DistributorEntityID

PartnerEntityID

CompanyEntityID

EntityType

IsActive

221

SomePartner1

888

888

221

0

Partner

true

311

Company1OfPartner1

221

888

221

311

Company

true

312

Company2OfPartner1

221

888

221

312

Company

true

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 

EntityID

EntityName

ParentEntityID

DistributorEntityID

PartnerEntityID

CompanyEntityID

EntityType

IsActive

EntityID

EntityName

ParentEntityID

DistributorEntityID

PartnerEntityID

CompanyEntityID

EntityType

IsActive

312

Company2OfPartner1

221

888

221

312

Company

true

 

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

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

PageSize

Number of rows per page.

int <= 5000

PageIndex

Identifies 1-based index of data frame. Data are sorted by Username.

Int, >=1.

Returns following object

Output Value

Description

Validation

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

Output Value

Description

Validation

Username

Username, aka AccountName. It's globally unique

String

IsActive

True, when user is active

Bool

IsEntityAdmin

True, when user is entity admin of the target entity

Bool

SignupDate

Account sign up date

DateTime

Email

Account email

String

IsMonitored

True, when user backup activity is monitored in our databases.

Bool

IsEndGuardEnabled

True, 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

Parameter

Description

Validation

TargetEntityID

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

Int, >=0. Use 0 for yourself.

PageSize

Number of rows per page.

int <= 10000

PageIndex

Identifies 1-based index of data frame. Data are sorted by ParentEntityID, EntityID, Username.

Int, >=1.

Returns following object

Output Value

Description

Validation

Output Value

Description

Validation

TotalRecords

Total accounts in the entity

int, >=0

Accounts

Array of the rows with account info

AccountDevicesInfo[]



Request
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 <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

Output Value

Description

Validation

ParentEntityID

ID of the Entity who owns entity that owns this account.

Int, >0.

EntityID

ID of the Entity who owns this account.

Int, >0.

Username

Username, aka AccountName. It's globally unique

String

IsEntityAdmin

True, when user is entity admin of the entity indicated by EntityID

Bool

SignupDate

Account's sign up date

DateTime

Email

Account's email

String

FullName

Account's full name

Bool

WindowsDevicesTotal

Total number of "protected"* devices with Windows OS.

Int, >=0.

AndroidDevicesTotal

Total number of "protected"* devices with Android OS.

Int, >=0

MacDevicesTotal

Total number of "protected"* devices with Mac OS.

Int, >=0

UsedSpaceKB

Space utilization by account

long, >=0

AccountSizeMB

Storage quota for account

long, >0

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

Response
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 <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

Parameter

Description

Validation

TargetEntityID

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

Int, >=0. Use 0 for yourself.

Username

Backup account unique ID, aka Username (AccountName)

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

Returns following object 

Output Value

Description

Validation

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.

ParentEntityType

Entity type

Infrascale, Distributor, Partner, Company, Unknown

ParentEntityID

ID of the direct account Entity.

It either DistributorEntityID, PartnerEntityID or CompanyEntityID.

Int, >0.

IsAccountActive

True, when entity is active

Bool

IsEntityAdmin

True, when user is entity admin of the parent entity

Bool

DistributorName

Internal name of the Distributor

String.

PartnerName

Internal name of the Partner

String. Empty string means direct Company of the Distributor or Distributor itself.

CompanyName

Internal name of the Company

String. Empty string means Partner of the Distributor or Distributor itself.

ParentName

Internal name of the Parent

String

SignupDate

Account sign up date

DateTime

Email

Account email

String

IsMonitored

True, when user backup activity is monitored in our databases

Bool

IsEndGuardEnabled

True, when user has EndGuard enabled.

Bool

IsParentEntityActive

True, when account entity is active

Bool



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

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:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 <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

Output Value

Description

Type

AlreadyCanceled

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

bool

Response example:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 <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

Parameter

Description

Validation

TargetEntityId

ID of the Partner/Company to uncancel

Int > 0 , Caller cannot uncancel himself.

Request example:

Request
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 <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)

Result.Result

Result.Code

Description (not returned in the response)

1 53
1 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

1 3309
1 EntityExpired

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

1 3351
1 EntityStatusFlowTransitionViolation

Backup account is already NOT cancelled

Response example:

1 2 3 4 5 6 7 8 9 10 11 12 <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

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:



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 <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

Output Value

Description

Type

AlreadySuspended

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

bool



1 2 3 4 5 6 7 8 9 10 11 12 13 14 <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

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:



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 <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

Output Value

Description

Type

AlreadyActivated

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

bool

Request example:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 <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

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:



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 <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

Output Value

Description

Type

EntityId

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

int, >0 when set

ParentEntityId

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

int, >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

AuthenticationToken

Internal temporarily security token. Might be useful for some new web methods.

string, null-able

ValidTillUtcDate

Expiration 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)

Result.Result

Result.Code

Description (not returned in the response)

1 150
1 InvalidUserNameOrPassword

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

1 3070
1 AccountIsNotActive

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

or his entity trial period is ended

53

ObjectEntityMismatch

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:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 <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

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

AutoUpgradeClientApp

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

bool , 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

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

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)

Result.Result

Result.Code

Description (not returned in the response)

1 52
1 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

Parameter

Description

Validation

PartnerEntityId

Partner ID

Integer >= 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

SetAutoUpgradeClientAppForChildren

Indicates if AutoUpgradeClientApp is also set for partner companies

bool , 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

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

Type

Units

Output Value

Description

Type

Units

 CompanyEntityId

Identifies company

int



CompanyName

Name of company

string



DiskQuotaGB

Disk space quota for company

long

GB

UsedSpaceKB

Used space utilization by contained accounts

Long

Kilobytes

AllocatedSpaceMB

Space allocation by contained accounts

Long

Megabytes

NumberOfAccounts

Number of active accounts(AVG devices)

int



NumberOfLicensesShadowProtectV5

Number of ShadowProtect Licenses assigned to company

int



DataCenterCountryCodeIsoA2

ISO 3166-1 two-letter country code (alpha-2). Shows location of data center, where company backup accounts are created.

string



NumberOfMobileDevices

Number of mobile devices for active accounts

int



NumberOfDesktopDevices

Number of desktop devices for active accounts

int



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

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

Type

Units

Output Value

Description

Type

Units

PartnerEntityId

EntityId of partner

Int



PartnerName

Name of partner

String



DiskQuotaGB

Quota(Backup plan of Partner)

Long

Gigabytes

NumberOfLicensesShadowProtectV5

Number of licenses assigned to partner

Int



AllowUploadOverAccountSize

Shows if accounts are able to exceed partner's quota

Boolean



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: 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 <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

Type

Units

Output Value

Description

Type

Units

PartnerEntityId

EntityId of partner

Int



PartnerName

Name of partner

String



DiskQuotaGB

Quota(Backup plan of Partner)

Long

Gigabytes

NumberOfLicensesShadowProtectV5

Number of licenses assigned to partner

Int



AllowUploadOverAccountSize

Shows if accounts are able to exceed partner's quota

Boolean



Response example: 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 <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

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



Reason

Description of reason

String, optional, MaxLength = 500

Returns following output:

Output Value

Description

Type

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

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



FromPartnerEntityId

Identifies 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

ToPartnerEntityId

Identifies 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


IncreaseQoutaOfDestinationPartner

If 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

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}$"

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 company

Integer >= 1

AllowUploadOverAccountSize



Bool

DataCenterCountryCodeIsoA2

ISO 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

AutoUpgradeClientApp

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

bool , Optional, false if missed

1 DisableEmailsNotification

Allow to disable sending all emails notifications

bool , 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

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

1 BackupAccountUserFullName



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

1 BackupAccountUserName



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

1 BackupAccountPassword



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

1 IsBackupAccountUltraSafe

Standard or Ultrasafe security

Bool

1 BackupAccountEmail



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

1 AllowUploadOverAccountSize



Bool

DataCenterCountryCodeIsoA2

ISO 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

AutoUpgradeClientApp

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

bool , Optional, false if missed

1 DisableEmailsNotification

Allow to disable sending all emails notifications

bool , 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

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)

Result.Result

Result.Code

Description (not returned in the response)

1 52
1 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

Parameter

Description

Validation

CompanyEntityId

Company ID

Required, 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.

DataCenterCountryCodeIsoA2

ISO 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

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

Type

Units

Output Value

Description

Type

Units

Username

Identifies account

String



UsedSpaceKB

Space utilization by account

Long

Kilobytes

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

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

Type

Units

Output Value

Description

Type

Units

CompanyEntityId

EntityId of company

Int



CompanyName

Name of company

String



DiskQuotaGB

Quota(Backup plan of Company)

Long

Gigabytes

UsedSpaceKB

Used space utilization by contained accounts

Long

Kilobytes

AllocatedSpaceMB

Space allocation by contained accounts

Long

Megabytes

NumberOfAccounts

Number of contained accounts

Int



NumberOfLicensesShadowProtectV5

Number of licenses assigned to company

Int



AllowUploadOverAccountSize

Shows if accounts are able to exceed company's quota

Boolean



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

Parameter

Description

Validation

Change

TargetEntityId

ID of the parent Company/Partner

Integer



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}$"



1 DisableEmailsNotification

Allow to disable sending all emails notifications

bool, 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

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}$"



SendEmailToCustomer

send 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

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}$"



SendEmailToCustomer

send 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

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)



SendEmailToCustomer

send 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

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

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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 <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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 <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

Parameter

Description

Validation

Change

Username

Username

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



Returns following output:

Output Value

Description

Type

Output Value

Description

Type

1 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

Parameter

Description

Validation

Change

Username

Username

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



Returns following output:

Output Value

Description

Type

Output Value

Description

Type

1 AccountSpaces



1 AccountSpaces[]

Type AccountSpace

Output Value

Description

Type

Output Value

Description

Type

1 Username



string

1 UsedSpaceInKB



long

1 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

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



Password

Password

Required



Returns output:

Output Value

Description

Type

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

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

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

The access token has a “time-to-live” (ttl) - 30 minutes.

string

Example:

Request
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 <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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 <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

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. 

Schedule

Settings 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.ScheduledEndTime

When to terminate running backup. Only time part is used. Cannot be combined with Hourly ScheduleType.

DateTime.

Schedule.UseEndTime

Activates 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, 

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

Options

Some 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.

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

Options.ExcludeFilesOlderThanDate

Exclude files that are older than inputed Date

DateTime, Optional

Options.ExcludeFilesLargerThanMb

Exclude files that are larger than inputed value in Mb

Integer, > 0, Optional

Options.ExcludeFilesSmallerThanKb

Exclude files that are smaller than inputed value in Kb

Integer, > 0, Optional

Options.RemoveFilesAfterDays

Time limited retention policy parameter. If file's modification date is less than Current Date - Options.RemoveFilesAfterDays, files will be removed from cloud

Integer, > 0, Optional, If value passed, EmailAddressToSendReportsTo must be true

Options.RemoveDeletedFilesAfterDays

Time limited retention policy parameter. If file have been deleted from Client PC, it will be also removed from cloud in RemoveDeletedFilesAfterDays days

Integer, > 0, Optional, If value passed, EmailAddressToSendReportsTo must be true

1 UseSystemAccountForScanningUserPersonalFolders

When set to true OBRM 7.3+  uses SYSTEM account to run backup

Bool, 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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 <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

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

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

Parameter

Description

Validation

pageIndex

The page number

Integer, >= 1

pageSize

 The page size

Integer, >= 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

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

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,

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

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

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

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

Parameter

Description

Validation

AccountName

Username



SystemName

Name of machine

String, Required

@"^([^~!@#$\^&\*\(\)=\+\[\]\{\}\\\|;:'"",<>/\?\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.



 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

Parameter

Description

Validation

AccountBackupPolicyID

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

 Integer, >0

TargetEntityID

ID 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

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

Sandbox