Acronis Backup Agent Webservices API Manual BA UM En
User Manual: acronis BackupAgent - Webservices API Manual Free User Guide for Acronis BackupAgent Software, Manual
Open the PDF directly: View PDF
.
Page Count: 27
| Download | |
| Open PDF In Browser | View PDF |
Webservices API Manual
WebService Interface Description
1. Introduction
This reference explains possibilities for integrating BackupAgent with other IT and/or
administrative services. It contains technical documentation describing the public WebService
interface for managing user accounts.
In this case BackupAgent uses the following specifications for their WebService:
Version 4: Native SOAP/XML interface based on Microsoft WSE 2.0 sp3
Version 5: Native SOAP/XML interface based on Microsoft WCF
The native interface is completely open and offers full BackupAgent Provider functionality.
This document only demonstrates functionality for:
User account management
Storage group management
This document will explain both SOAP/ XML integration. Technical references will be provided
on the following subjects:
Interface access and function specifications
Code samples
Exception codes
2. SOAP/XML interface - Version 4
BackupAgent’s core technology is a WebService. For security and authentication control this
interface is protected using Microsoft WSE 2.0 sp3. All WebService functions are available for
integration.
1
2.1 Access
To access the interface, choose a programming language or software package that supports
client consumption of a WSDL which is protected by WSE 2.0. By default C# allows easy and
reliable access to BackupAgent WebServices. Following step-by-step instructions show how to
access BackupAgent WebServices.
1. Find the WSDL. In the normal case the WSDL is provided on an url like
‘https://yourdomain.com/CloudBackupService/BackupService.asmx?WSDL’
2. Create a proxy class to represent the WebService. In C# this proxy class is called a ‘web
reference’.
3. Derive the proxy class from the Microsoft.Web.Services2.WebServicesClientProtocol
4. Attach a UsernameToken to object references based on the client proxy class using the
RequestSoapContext.Security.Tokens collection. Add a MessageSignature based on the
UsernameToken to the RequestSoapContext.Security.Elements collection.
5. Login for user/administrator access calling the CheckUserLogin function.
Important: Use the URL where the license is installed on. Otherwise you will receive a license
error.
The UsernameToken must be based on an existing username/password combination in the
BackupAgent Server system. For full access to administrative functions an administrator
UsernameToken must be provided.
2.2 Code sample for connecting to a BackupAgent WebService
Deriving the proxy class from WSE 2.0 WebServiceClientProtocol in class definition:
public class BAWebService2 :
Microsoft.Web.Services2.WebServicesClientProtocol{ … }
Creating an object reference to attach a token:
StorageXS.BAWebService2 server = new StorageXS.BAWebService2();
UsernameToken token = new UsernameToken(username,password,PasswordOption.SendPlainText);
2
server.RequestSoapContext.Security.Tokens.Clear();
server.RequestSoapContext.Security.Tokens.Add(token);
server.RequestSoapContext.Security.Elements.Add(new MessageSignature(token))
return server;
Login the user:
StorageXS.LoginInfo login = server.CheckUserLogin(username.Trim(),
password.Trim(), "clientname");
if(login.LoginStatus > 0) return true;
else return false;
Note: StorageXS is the local reference name used in the above example.
Note: In case you use the WSE 3.0 libraries, you need to manually set the encryption to be 128
bits:
ISecurityTokenManager stm3 =
Microsoft.Web.Services3.Security.Tokens.UsernameTokenManager.GetSecurityTokenManagerByToken
Type(WSTrust.TokenTypes.UsernameToken);
stm3.DefaultKeyAlgorithm = "AES128";
After logging in, this client can have full access to BackupAgent Server functions. Depending on
common use cases, BackupAgent can support and develop custom interfaces or support clientside development of custom functionality. The working of the WebService is proprietary.
Therefore documentation is limited to this document and the WSDL.
2. SOAP/XML interface - Version 5
In Version 5, the API interface is a WCF interface. By default C# allows easy and reliable access
to BackupAgent WebServices. Following step-by-step instructions show how to access
BackupAgent WebServices.
2.1 Access
3
To access the interface, choose a programming language or software package that supports
client consumption of a WSDL
1. Find the WSDL. In the normal case the WSDL is provided on an url like
‘https://yourdomain.com/CloudBackupService/BackupService.svc’
2. Add a Service Reference, which connects to the above Address.
3. Give the namespace a friendly name such as 'BackupService'
4. Add a valid administrator or group username and password to the Credentials.
5. Set the Authentication.CertificateValidationMode = X509CertificateValidationMode.None
6. Login for user/administrator access calling the CheckUserLogin function.
2.2 Code sample for connecting to a BackupAgent WebService using WCF
The following is a code sample which works using the .Net Framework v4:
Step 1 - include the ServiceModel libraries and the reference to the Service:
using System.ServiceModel;
using System.ServiceModel.Security;
using ConsoleApplicationWCF.BackupService;
Step 2 - add credentials
namespace ConsoleApplicationWCF
{
class Program
{
static void Main(string[] args)
{
EndpointAddress endpointAddress = new EndpointAddress(new
Uri("https://yourcompany/CloudBackupService/BackupService.svc"));
CloudBackupServiceClient client = new
CloudBackupServiceClient("BasicHttpBinding_ICloudBackupService", endpointAddress);
4
client.ClientCredentials.UserName.UserName = "username";
client.ClientCredentials.UserName.Password = "password";
client.ClientCredentials.ServiceCertificate.Authentication.CertificateValidationMode =
System.ServiceModel.Security.X509CertificateValidationMode.None;
}
}
}
Step 3 - call the CheckUserLogin function:
LoginInfo login = client.CheckUserLogin_Ex("robbert.demo", "testtest");
3. Available functions
The following functions are available for integration purposes and will be described here in
further detail. Some functions will require public structures (objects or enumerations) as
parameters. The following table shows functions for retrieving server information:
Function
Result
Required parameters
Explanation
GetUsersAdmin
An array of
strings
containing either
usernames or a
summary of user
statistics
bool Totalbool
Top10Recentstring
ParentUserstring Criteria
The function
returns either a
set of usernames
or a summary of
total users given
the criteria and
parameters
GetOwnerInfo1
An array of
OwnerInfo
objects
containing all
information on
storage groups
string Owner
The function
returns all storage
group info or info
for a single
storage group
GetAccountTypes
An array of
AccountType
objects
enum
TypesToRetreiveenum
DescriptionType
The function
returns all
account types
based on the
5
enum
parametersq
string Username
Returns all user
information of a
user
string Username
Returns all
account
information of a
user
GetUserInfoAdmin
An UserInfo
object
GetAccountInfoAdmin
An AccountInfo
object
GetChildAccountInfo
string ParentUser (group
An array of
user)enum
UserAccountInfo AccountDescriptionTypeboo
objects
l getAllAccountsenum
RequestType
Returns a
collection of user
and account
information
objects of
multiple users
GetUserBackupResults
An array of
string Usernamestring
BackupReportInf
Language
o objects
Returns a
collection of
backup report
objects
Returns a more
A more detailed
detailed
GetFullBackupReportInf
BackupReportInf Int BackupReportID (DBID) BackupReportInf
o
o object
o object including
logs
GetResellers2
An array of
bool TotalResellerCount
strings containing
(false)
all group names
Returns all
groups in the
systems
GetResellerInfo
A ResellerInfo
object
Returns all
detailed
information of a
group
GetResellersUsageInfo
Array of
ResellerUsageInf
o objects
string ResellerName
Returns usage
info of all groups
A storage group is represented in the API as an ‘owner’
1
BackupAgent groups are represented as ‘resellers’ in the API
2
Next to functions to retrieve information the following functions allow an administrator to
integrate account management (create, change accounts):
6
Function
Result
Parameters
CreateAccount
Creates a new
user with an
account in the
BackupAgent
Server and
returns an
integer
string
ParentUserUserInfo
userInfoAccountInfo
accInfostring
Usernamestring
Passwordstring
[Obsolete]string
[Obsolete]bool
SendEmail
ChangeUserInfoAdmin
Changes
UserInfo for a
user and
returns an
integer
Changes
AccountInfo
ChangeAccountInfoAdmin for a user and
returns an
integer
ActivateAccount
Activates a
new or
deactivated
account and
returns an
integer
DeactivateAccount
Deactivates
one or more
accounts and
returns an
integer
string
ChangedUserUserInfo
newInfo
Explanation
The function creates
an account. Return
codes:
1: User Ok
-1: Unexpected error
-2: User exists
-5: Wrong Owner
The function
overwrites UserInfo
based on the new
UserInfo object.
Returns 1 if Ok, else
returns a negative
integer
The function
overwrites
AccountInfo based
string
on the new
ChangedUserAccountInfo
AccountInfo object.
newInfo
Returns 1 if Ok, else
returns a negative
integer
string Usernamestring
Passwordbool Encrypted
The function
activates an account.
As administrator the
account can be
activated without
Password
string[] Usernames
The function
deactivates all
accounts in the string
array
DeleteAccount
Deletes one or
more accounts
and returns an
integer
string[] Usernames
bool isReseller
The function deletes
all accounts and
removes all data in
the accounts.
Set 'isReseller' to
true to indicate that
the deleted users are
resellers/groups
ResetPassword
Resets
password and
string Username
The function resets
the password for a
user to ‘Backup01’
7
returns an
integer
ChangePassword
Allows a user
to change a
password and
returns an
integer
CreateOwner
Creates a new
storage group
and returns an
integer
If the token of
request is a normal
string OldPasswordstring
user, this user can
NewPassword
change his/her own
password
OwnerInfo NewInfobool
SetAsDefault
The function creates
a new storage group
Returns 1 if Ok, else
returns a negative
integer
ChangeOwner
Changes a
storage group
and returns an
integer
OwnerInfo NewInfo
The function
changes a storage
group based on an
existing OwnerID in
the OwnerInfo
object.
ChangeDefaultOwner
Sets a storage
group as
default group
The function sets a
string ResellerNamestring
default group for an
Ownername
administrator/reseller
CreateReseller
Creates a
group
UserInfo
newInfoResellerInfo
newInfostring
ResellerNamestring
Password
The function creates
a (whitelabel) group
in the BackupAgent
system
ChangeResellerInfo_Ex
Changes
settings of a
group
String
ResellerNameUserInfo
newInfoResellerInfo
newInfo
The function can
change certain
settings of
a(whitelabel) group
Note: The used credentials for authentication and access (see 3.1.) will also determine
ownership and hierarchy of a group or user. You can overrule this for CreateAccount by setting
the ParentUser property and for CreateReseller by setting the ParentReseller property of the
UserInfo object.
4. Supportive structures
Some functions require objects that are based on public structures (classes or enumerations)
which are part of the WebService public interface.
8
4.1 Enumerations
AccountTypesToRetrieve:
All_AccountTypes
Only_Active
Only_NonActive
ChildAccountRequestType:
Normal
Active
New
AccountDescriptionTypes:
Normal_Account
Trial_Account
Free_Account
Normal_And_Trial_Account
UserProfileTypes:
Professional = 1 (“Professional” is called in the user interface “Server”)
Home = 2 (“Home” is called in the user interface “Workstation”)
LanguageType:
LanguageType_NL (Dutch)
LanguageType_EN (English)
LanguageType_FR (French)
LanguageType_ES (Spanish)
LanguageType_DE (German)
LanguageType_IT (Italian)
LanguageType_DK (Danish)
9
LanguageType_PL (Polish)
LanguageType_HU (Hungarian)
LanguageType_RO (Romanian)
LanguageType_PT (Portuguese)
LanguageType_RU (Russian)
LanguageType_TR (Turkish)
LanguageType_JA (Japanese)
BackupReportStatus:
Completed_Successfully
Completed_Successfully_NonExistentResources
Completed_Successfully_Skipped_NonExistentResources
Completed_UnSuccessfully
Completed_UnSuccessfully_Skipped
Completed_UnSuccessfully_NonExistentResources
Completed_UnSuccessfully_Skipped_NonExistentResources
UserCancelled
4.2 Classes
The following descriptions show the required fields when creating or changing information:
UserInfo:
ID (int) - must be set to 0 when editing - Read-only
ParentResellerID (int) - Read-only
UserTypeID (int) - Read-only
ActiveDirectoryGUID - Read-only
ParentReseller (string) - Optional
City (string) - Mandatory
Company (string) - Mandatory
CountryID (integer, 133 is Netherlands) - Mandatory
StateID (integer) - Mandatory if country is US - Optional
10
Email (string) - Mandatory
FirstName (string) - Mandatory
LastName (string) - Mandatory
Sex (character: ‘m’ or ‘f’) - Obsolete
Occupation (string) - Obsolete
Zipcode (string) - Mandatory
TelephoneNr (string) - Mandatory
DefaultEmailLanguage (LanguageType) - Mandatory
AccountInfo:
AccountInfoID (int) - must be set to 0 when editing - Read-only
UserInfoID (int) - must be set to 0 when editing - Read-only
Status (int) – must be set to 1 - Mandatory
Active (boolean) - Read-only
ChangedBy (string) - Read-only
AccountTypeName (string) - Read-only
AccountType (int) - Mandatory
OwnerID (int) - Mandatory
TrialUser (boolean) - Mandatory
FreeAccount (boolean) - Mandatory
MaxSize (int) - Read-only
UsedSize (long) - must be set to 0 when editing - Read-only
UserProfile (UserProfileType) - Mandatory
StartDate (DateTime) - Mandatory
EndDate (DateTime) - Mandatory
MaxBandwidthUsage (int) - 0 is recommended value - Mandatory
Period (int) – Mandatory in case of provisioning a trial account - Optional
RestoreActive (boolean) – recommended to set to false - Mandatory
HasDigiNotarKey (int) – must be set to 0 when editing - Read-only
DigiNotarKeyIsStored (boolean) - Obsolete
ObjDigiNotarKey (object) - Obsolete
11
HasEncryptionKey (boolean) – must be set to false - Mandatory
MaxVersions (int) – must be set, value 10 is recommended - Obsolete
UserAccountInfo (return objects for GetChildAccountInfo function and is Readonly):
parentUser (string)
username (string)
firstName (string)
lastName (string)
userAccountTypeName (string)
isTrial (boolean)
period (int)
company (string)
email (string)
objUserStatus (StatusInfo)
userProfileType (UserProfileType)
accountStartDate (DateTime)
StatusInfo (Read-only object):
usageSizePercentage (double)
isFull (boolean)
inProgress (boolean)
latestBackup (DateTime)
backupClientVersionNr (string)
backupStatusEnum (BackupReportStatus)
latestRestore (DateTime)
restoreClientVersionNr (string)
restoreStatusEnum (BackupReportStatus)
OwnerInfo:
OwnerID (int) - Read-only
12
UserCount (int) - Read-only
ResellerCount (int) - Read-only
OwerName (string) - Mandatory
StorageLocation (string, path to storage location) - Mandatory
LoginName (string) - Obsolete
LoginPassword (string) - Obsolete
DomainName (string) - Obsolete
UseDriveMapping (Boolean) – must be False - Obsolete
ResellerName (string) - Optional
AccountType:
AccountTypeID (integer) - must be set to 0 when editing - Read-only
TypeName (string) - Mandatory
DescriptionType (string) - Mandatory
IsActive (boolean) - Mandatory
MaxSize (integer) – must be 0 in case of trial account - Mandatory
BackupReportInfo (Read-only object):
userName (string)
completeText (string)
isBackup (boolean)
status (string)
longDate (string)
computer (string)
clientVersionNr (string)
operatingSystem (string)
startDate (DateTime)
endDate (DateTime)
duration (string)
totalFiles (int)
totalSize (string)
13
restoreSizeDownloaded (string)
restoreSkippedResources (string)
restorePath (string)
backupChangedFiles (int)
backupSizeChangedFiles (string)
backupSizeUploaded (string)
backupSkippedResources (int)
backupNonExistentResources (int)
backupResources (array of strings)
nonExistentResources (array of strings)
NbNewFiles (int)
NbNewFilesUploadedSize (long)
NbPatches (int)
NbPatchesUploadedSize (long)
NbUnchangedFiles (int)
DBID (int)
ClientLogs (string)
statusEnum (BackupReportStatus)
ResellerInfo:
ResellerConfigID (int) - Read-only
ParentReseller (string) - Optional
accountUpgrade (boolean) - Mandatory
accountDowngrade (boolean) - Mandatory
automaticDigiNotar (boolean) – must be False - Obsolete
allowWhiteLabeling (boolean) - Mandatory
allowResellerCreation (boolean) - Mandatory
allowHighlighDataGridRow (boolean) – must be False - Mandatory
defaultOwner (int) - Mandatory
ResellerUserName (string) - Optional
supportEMail (string) – we recommend to set this - Optional
14
supportURL (string) - Optional
termsURL (string) - Optional
registrationURL (string) - Optional
logoURL (string) - Optional
trialUpgradeURL (string) - Optional
stylesheetURL (string) - Optional
homepageURL (string) - Optional
clientdownloadURL (string) - Optional
serviceName (string) - Optional
HTMLHeader (string) - Optional
HTMLFooter (string) - Optional
usagePercentageBeforeEmail (double) - Mandatory
dataGridRowCount (int) - recommended setting is 10 - Mandatory
ownerIDs (array of string) - Mandatory
defaultRegistrationCountry (int) - Mandatory
daysWithNoBackupBeforeWarning (int) - Mandatory
maxHomeCALS (int) – set it to -1 for unlimited accounts - Mandatory
maxProfessionalCALS (int) – set it to -1 for unlimited accounts - Mandatory
maxStorageGB (int) – set it to -1 for unlimited accounts - Mandatory
allowTrials (boolean) - Mandatory
sendLogs (boolean) - Mandatory
accountUpgradeByGroup (boolean) - Mandatory
accountDowngradeByGroup (boolean) - Mandatory
isAllowedRestore (boolean) – must be True - Mandatory
AllowAccountDeletion (string) - Optional
ResellerUsageInfo (Read-only object):
ResellerUserName (string)
maxHomeUsers (int)
usedHomeUsers (int)
maxProfessionalUsers (int)
15
usedProfessionalUsers (int)
maxStorageGB (int)
assignedStorageMB (int)
usedStorage (long)
assignedStorageLocation (array of int)
5. Public exceptions
This paragraph describes important public exception codes that can be thrown if functions are
called incorrectly or the server is not configured properly.
If an exception occurs within BackupAgent logic, the exception type will always be an inherited
SOAPException of type BAServiceException. The Exception message will contain a series of
numbers in the following format:
“BAWSxxx::xxx:: error message”. The first three digits (xxx) will represent the exception type and
is an indicator for the problem. These next three digits will be the specific exception code.
The following table shows all exception codes that can occur in the functions described in this
document:
Exception code
Exception subcode
Nature
999
999
Unknown exception
013
001
License is missing on server
013
002
Mismatch between license and requested
URL
013
003
Mismatch for trial license IP address
014
Input sanitation exceptions
015
001
Wrong username
015
002
Wrong password
016
001
The credentials are not sufficient to delete a
user
016
other
An exception occured while creating or
updating a user
16
017
001
Error occured creating an account. Most
likely cause is that one of the strings in the
UserInfo or AccountInfo object is too long
to store in the database.
017
017
License does not allow for account creation
through the API
other
An exception occured while creating or
updating the account for a user. Most likely
cause is that the token username is not an
administrator or group user.
017
There was a problem sending a notification
email, please check the email server
settings.
018
004
Bitmap of missing
arguments
Some arguments are missing calling the
function
005
Bitmap of empty string
arguments that are
required
Some required string content is missing or
empty
001
Can only happen if the WebService call is
not a SOAP request
002
A problem occurred caching the user
003
A problem occurred creating a user session.
This occurs if BackupAgent Management
Service is not running
Function indicator
All the information on exceptions is limited to indicate the problem. This is for security reasons.
If the exception information is insufficient, please contact BackupAgent support.
Appendix A - Country codes:
ID
CountryName
1
Uruguay
UY
2
Portugal
PT
3
Bolivia
4
Fiji Islands
5
Sri Lanka
6
Botswana
7
Cameroon
8
Senegal
CountryCode
BO
FJ
LK
BW
CM
SN
17
9
Guadeloupe
GP
10
Romania
RO
11
Paraguay
PY
12
Mauritius
MU
13
Hungary
14
Iceland
15
Slovakia
16
Barbados
17
North Korea
18
Algeria
19
Lithuania
LT
20
Thailand
TH
21
Guernsey
22
Spain
23
United Arab Emirates
24
Egypt
EG
25
Togo
TG
26
Isle of Man
27
Ghana
28
Peru
29
South Africa
30
New Zealand
31
Mali
32
Gambia, the
33
Central African Republic
34
Cocos (Keeling) Islands
35
Bahamas
36
Cyprus
37
Wallis and Futuna
38
Bulgaria
39
Turkmenistan
40
Russia
HU
IS
SK
BB
KP
DZ
GG
ES
AE
IM
GH
PE
ZA
NZ
ML
GM
CF
CC
BS
CY
WF
BG
TM
RU
18
41
Puerto Rico
PR
42
Germany
43
Guinea
44
Antarctica
45
United Kingdom
46
Pitcairn Islands
47
Rwanda
48
Greece
49
Afghanistan
50
Morocco
51
Tristan da Cunha
52
Haiti
53
Maldives
54
Jordan
55
Slovenia
56
Greenland
57
Turkey
TR
58
Estonia
EE
59
Mauritania
60
Bermuda
61
Vanuatu
62
Venezuela
63
Tonga
64
Nigeria
65
Iran
66
Trinidad and Tobago
67
Cambodia
68
Georgia
69
St. Helena
70
Falkland Islands (Islas Malvinas)
71
El Salvador
72
Ireland
DE
GN
AQ
GB
PN
RW
GR
AF
MA
TA
HT
MV
JO
SI
GL
MR
BM
VU
VE
TO
NG
IR
TT
KH
GE
SH
FK
SV
IE
19
73
Guam
GU
74
Cayman Islands
75
Palau
76
Norfolk Island
77
Bahrain
78
Grenada
79
Sierra Leone
80
Nicaragua
81
Brunei
82
Malaysia
83
Nauru
84
Ascension Island
85
Gibraltar
86
China
CN
87
Jersey
JE
88
Czech Republic
89
Switzerland
90
Antigua and Barbuda
91
Argentina
92
Montserrat
93
Belgium
BE
94
Ethiopia
ET
95
Jamaica
JM
96
St. Vincent and The Grenadines
97
Belize
98
Myanmar
99
Chad
KY
PW
NF
BH
GD
SL
NI
BN
MY
NR
AC
GI
CZ
CH
AG
AR
MS
VC
BZ
MM
TD
100
Mongolia
MN
101
Madagascar
102
Tanzania
103
Macedonia, former Yugoslav Republic of
104
Australia
MG
TZ
MK
AU
20
105
Indonesia
ID
106
San Marino
107
Luxembourg
108
Guatemala
GT
109
Kyrgyzstan
KG
110
Benin
111
Liechtenstein
112
St. Kitts and Nevis
113
Heard Island and Mcdonald Islands
114
Dominica
115
Timor-leste
116
American Samoa
117
St. Lucia
118
Côte d'Ivoire
119
Denmark
120
British Indian Ocean Territory
121
Virgin Islands, British
122
Norway
NO
123
Malawi
MW
124
Reunion
RE
125
Honduras
126
Japan
127
Tuvalu
128
Costa Rica
129
Qatar
130
Palestinian Authority
131
Samoa
132
Libya
133
Papua New Guinea
134
Equatorial Guinea
135
Syria
136
Comoros
SM
LU
BJ
LI
KN
HM
DM
TP
AS
LC
CI
DK
IO
VG
HN
JP
TV
CR
QA
PS
WS
LY
PG
GQ
SY
KM
21
137
Nepal
NP
138
French Southern and Antarctic Lands
139
Namibia
140
Malta
141
Bhutan
142
Philippines
143
Iraq
144
French Polynesia
145
India
146
Northern Mariana Islands
147
Ecuador
EC
148
Canada
CA
149
Poland
PL
150
Italy
151
St. Pierre and Miquelon
152
Taiwan
153
Kazakhstan
154
Andorra
155
Liberia
156
Anguilla
157
Congo (drc)
158
Guyana
159
Bangladesh
160
Cook Islands
161
Djibouti
162
São Tomé and Príncipe
163
Austria
164
Niue
165
Uganda
166
Bosnia and Herzegovina
167
Monaco
168
French Guiana
TF
NA
MT
BT
PH
IQ
PF
IN
MP
IT
PM
TW
KZ
AD
LR
AI
CD
GY
BD
CK
DJ
ST
AT
NU
UG
BA
MC
GF
22
169
Bouvet Island
BV
170
Cape Verde
171
Zambia
172
South Georgia and The South Sandwich Islands
173
Sudan
SD
174
Kuwait
KW
175
United States Minor Outlying Islands
176
Guinea-Bissau
177
Christmas Island
178
Latvia
179
Belarus
180
Solomon Islands
181
Seychelles
182
Kiribati
183
Lebanon
184
Turks and Caicos Islands
185
Suriname
186
Finland
187
Uzbekistan
188
Croatia
HR
189
Lesotho
LS
190
Albania
AL
191
Virgin Islands, British
192
Congo
CG
193
Yemen
YE
194
France
FR
195
Moldova
196
Laos
197
Panama
PA
198
Vietnam
VN
199
Mayotte
YT
200
Mozambique
CV
ZM
GS
UM
GW
CX
LV
BY
SB
SC
KI
LB
TC
SR
FI
UZ
VG
MD
LA
MZ
23
201
Pakistan
PK
202
Serbia and Montenegro
203
Netherlands Antilles
204
Eritrea
205
Burkina Faso
206
Cuba
207
Sweden
208
Tajikistan
209
Brazil
210
Netherlands
211
Azerbaijan
212
Svalbard and Jan Mayen
213
Armenia
214
United States
215
Israel
216
Gabon
GA
217
Aruba
AW
218
Singapore
219
Tokelau
TK
220
Mexico
MX
221
Vatican City
222
Faroe Islands
223
Swaziland
224
Ukraine
225
Dominican Republic
226
Korea
KR
227
Oman
OM
228
Kenya
KE
229
New Caledonia
230
Saudi Arabia
231
Somalia
232
Angola
YU
AN
ER
BF
CU
SE
TJ
BR
NL
AZ
SJ
AM
US
IL
SG
VA
FO
SZ
UA
DO
NC
SA
SO
AO
24
233
Burundi
BI
234
Tunisia
TN
235
Zimbabwe
236
Marshall Islands
237
Hong Kong Sar
238
Micronesia
239
Niger
240
Colombia
241
Chile
242
Martinique
MQ
243
Macao Sar
MO
244
So Tom and Prncipe
ZW
MH
HK
FM
NE
CO
CL
ST
Appendix B - US State codes:
ID
StateName
1
Alabama
2
Alaska
3
Arizona
4
Arkansas
5
California
6
Colorado
7
Connecticut
8
Delaware
9
Florida
10
Georgia
11
Hawaii
12
Idaho
13
Illinois
14
Indiana
15
Iowa
16
Kansas
25
17
Kentucky
18
Louisiana
19
Maine
20
Maryland
21
Massachusetts
22
Michigan
23
Minnesota
24
Mississippi
25
Missouri
26
Montana
27
Nebraska
28
Nevada
29
New Hampshire
30
New Jersey
31
New Mexico
32
New York
33
North Carolina
34
North Dakota
35
Ohio
36
Oklahoma
37
Oregon
38
Pennsylvania
39
Rhode Island
40
South Carolina
41
South Dakota
42
Tennessee
43
Texas
44
Utah
45
Vermont
46
Virginia
47
Washington
48
West Virginia
26
49
Wisconsin
50
Wyoming
51
District of Columbia
27
Source Exif Data:
File Type : PDF File Type Extension : pdf MIME Type : application/pdf PDF Version : 1.5 Linearized : No Page Count : 27 Language : ru-RU Tagged PDF : Yes Author : Pavlova, Anna Creator : Microsoft® Word 2013 Create Date : 2015:02:11 16:47:00+03:00 Modify Date : 2015:02:11 16:47:00+03:00 Producer : Microsoft® Word 2013EXIF Metadata provided by EXIF.tools