-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdomainbox.py
251 lines (239 loc) · 13.2 KB
/
domainbox.py
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
from suds.bindings import binding
from suds.client import Client
binding.envns = ('soap12', 'http://www.w3.org/2003/05/soap-envelope')
DOMAINBOX_COMMANDS = {
'AccountQueryBalance': 'AccountQueryBalanceParameters',
'AddPublishingAlias': 'AddPublishingAliasParameters',
'AddWebHostingDatabase': 'AddWebHostingDatabaseParameters',
'AddWebHostingDatabaseUser': 'AddWebHostingDatabaseUserParameters',
'AddWebHostingFTPUser': 'AddWebHostingFTPUserParameters',
'AddWebHostingWebsite': 'AddWebHostingWebsiteParameters',
'AddWebHostingWebsiteAlias': 'AddWebHostingWebsiteAliasParameters',
'AddWebHostingWebsiteApp': 'AddWebHostingWebsiteAppParameters',
'AssignDomain': 'AssignDomainParameters',
'AssignWebHostingDatabaseUser': 'AssignWebHostingDatabaseUserParameters',
'AssignWebHostingFTPUser': 'AssignWebHostingFTPUserParameters',
'CancelBackOrder': 'CancelBackOrderParameters',
'CancelPremiumDomain': 'CancelPremiumDomainParameters',
'CancelSSL': 'CancelSSLParameters',
'CancelTransfer': 'CancelTransferParameters',
'CancelTransition': 'CancelTransitionParameters',
'CheckDomainAvailability': 'CheckDomainAvailabilityParameters',
'CheckDomainAvailabilityBulkQuery':
'CheckDomainAvailabilityBulkQueryParameters',
'CheckDomainAvailabilityBulkSubmit':
'CheckDomainAvailabilityBulkSubmitParameters',
'CheckDomainAvailabilityPlus': 'CheckDomainAvailabilityPlusParameters',
'CheckDomainClaims': 'CheckDomainClaimsParameters',
'CheckDomainValue': 'CheckDomainValueParameters',
'CheckPremiumDomain': 'CheckPremiumDomainParameters',
'CheckReportStatus': 'CheckReportStatusParameters',
'CheckSSLCSR': 'CheckSSLCSRParameters',
'CheckTLDDocumentation': 'CheckTLDDocumentationParameters',
'CheckTransferAvailability': 'CheckTransferAvailabilityParameters',
'CheckTransition': 'CheckTransitionParameters',
'CompleteTransferAway': 'CompleteTransferAwayParameters',
'CreateContact': 'CreateContactParameters',
'CreateDnsRecords': 'CreateDnsRecordsParameters',
'CreateDnsZone': 'CreateDnsZoneParameters',
'CreateDomainAuthcode': 'CreateDomainAuthcodeParameters',
'CreateEmailForwarder': 'CreateEmailForwarderParameters',
'CreateEmailMailbox': 'CreateEmailMailboxParameters',
'CreateExternalNameserver': 'CreateExternalNameserverParameters',
'CreateNameserver': 'CreateNameserverParameters',
'CreatePublishing': 'CreatePublishingParameters',
'CreateStorefront': 'CreateStorefrontParameters',
'CreateSubReseller': 'CreateSubResellerParameters',
'CreateTrademark': 'CreateTrademarkParameters',
'CreateUser': 'CreateUserParameters',
'CreateUserGroup': 'CreateUserGroupParameters',
'CreateUserRoles': 'CreateUserRolesParameters',
'CreateWebHosting': 'CreateWebHostingParameters',
'DeleteContact': 'DeleteContactParameters',
'DeleteDnsRecords': 'DeleteDnsRecordsParameters',
'DeleteDnsZone': 'DeleteDnsZoneParameters',
'DeleteDomain': 'DeleteDomainParameters',
'DeleteEmail': 'DeleteEmailParameters',
'DeleteNameserver': 'DeleteNameserverParameters',
'DeletePublishing': 'DeletePublishingParameters',
'DeletePublishingAlias': 'DeletePublishingAliasParameters',
'DeleteTrademark': 'DeleteTrademarkParameters',
'DeleteUser': 'DeleteUserParameters',
'DeleteUserGroup': 'DeleteUserGroupParameters',
'DeleteUserRoles': 'DeleteUserRolesParameters',
'DeleteWebHostingDatabase': 'DeleteWebHostingDatabaseParameters',
'DeleteWebHostingDatabaseUser': 'DeleteWebHostingDatabaseUserParameters',
'DeleteWebHostingFTPUser': 'DeleteWebHostingFTPUserParameters',
'DeleteWebHostingWebsite': 'DeleteWebHostingWebsiteParameters',
'DeleteWebHostingWebsiteAlias': 'DeleteWebHostingWebsiteAliasParameters',
'DeleteWebHostingWebsiteApp': 'DeleteWebHostingWebsiteAppParameters',
'DisablePublishing': 'DisablePublishingParameters',
'EnablePublishing': 'EnablePublishingParameters',
'GetDomainboxContactIds': 'GetDomainboxContactIdsParameters',
'GetRegistryContactId': 'GetRegistryContactIdParameters',
'InviteSSL': 'InviteSSLParameters',
'ListPremiumDomain': 'ListPremiumDomainParameters',
'ModifyBackOrder': 'ModifyBackOrderParameters',
'ModifyContact': 'ModifyContactParameters',
'ModifyDnsRecords': 'ModifyDnsRecordsParameters',
'ModifyDomainAdditionalData': 'ModifyDomainAdditionalDataParameters',
'ModifyDomainAuthcode': 'ModifyDomainAuthcodeParameters',
'ModifyDomainContacts': 'ModifyDomainContactsParameters',
'ModifyDomainLock': 'ModifyDomainLockParameters',
'ModifyDomainMemberContact': 'ModifyDomainMemberContactParameters',
'ModifyDomainNameservers': 'ModifyDomainNameserversParameters',
'ModifyDomainPrivacy': 'ModifyDomainPrivacyParameters',
'ModifyDomainProxy': 'ModifyDomainProxyParameters',
'ModifyDomainRecords': 'ModifyDomainRecordsParameters',
'ModifyDomainRenewalSettings': 'ModifyDomainRenewalSettingsParameters',
'ModifyDomainStatus': 'ModifyDomainStatusParameters',
'ModifyDomainTelCredentials': 'ModifyDomainTelCredentialsParameters',
'ModifyEmailDomainBlackList': 'ModifyEmailDomainBlackListParameters',
'ModifyEmailDomainWhiteList': 'ModifyEmailDomainWhiteListParameters',
'ModifyEmailMailboxAutoResponder':
'ModifyEmailMailboxAutoResponderParameters',
'ModifyEmailMailboxBlackList': 'ModifyEmailMailboxBlackListParameters',
'ModifyEmailMailboxForwarding': 'ModifyEmailMailboxForwardingParameters',
'ModifyEmailMailboxPassword': 'ModifyEmailMailboxPasswordParameters',
'ModifyEmailMailboxSpamOption': 'ModifyEmailMailboxSpamOptionParameters',
'ModifyEmailMailboxWhiteList': 'ModifyEmailMailboxWhiteListParameters',
'ModifyEmailRenewalSettings': 'ModifyEmailRenewalSettingsParameters',
'ModifyNameserver': 'ModifyNameserverParameters',
'ModifyPremiumDomain': 'ModifyPremiumDomainParameters',
'ModifyPremiumDomainHold': 'ModifyPremiumDomainHoldParameters',
'ModifyPublishing': 'ModifyPublishingParameters',
'ModifyPublishingRenewalSettings':
'ModifyPublishingRenewalSettingsParameters',
'ModifyResellerConfig': 'ModifyResellerConfigParameters',
'ModifySSLApproverEmail': 'ModifySSLApproverEmailParameters',
'ModifySSLSealPreference': 'ModifySSLSealPreferenceParameters',
'ModifyTrademark': 'ModifyTrademarkParameters',
'ModifyTransition': 'ModifyTransitionParameters',
'ModifyUser': 'ModifyUserParameters',
'ModifyUserGroup': 'ModifyUserGroupParameters',
'ModifyUserRoles': 'ModifyUserRolesParameters',
'ModifyWebHosting': 'ModifyWebHostingParameters',
'ModifyWebHostingFTPUser': 'ModifyWebHostingFTPUserParameters',
'MsgQueueAcknowledge': 'MsgQueueAcknowledgeParameters',
'MsgQueueRequest': 'MsgQueueRequestParameters',
'OrderSSL': 'OrderSSLParameters',
'ParkingAddDomain': 'ParkingAddDomainParameters',
'ParkingGetStats': 'ParkingGetStatsParameters',
'ParkingRemoveDomain': 'ParkingRemoveDomainParameters',
'PerformAsyncCommands': 'PerformAsyncCommandsParameters',
'ProcessLaunchDomain': 'ProcessLaunchDomainParameters',
'PurchasePremiumDomain': 'PurchasePremiumDomainParameters',
'QueryBackOrder': 'QueryBackOrderParameters',
'QueryContact': 'QueryContactParameters',
'QueryDnsRecords': 'QueryDnsRecordsParameters',
'QueryDnsZone': 'QueryDnsZoneParameters',
'QueryDomain': 'QueryDomainParameters',
'QueryDomainAuthcode': 'QueryDomainAuthcodeParameters',
'QueryDomainContacts': 'QueryDomainContactsParameters',
'QueryDomainDates': 'QueryDomainDatesParameters',
'QueryDomainLaunch': 'QueryDomainLaunchParameters',
'QueryDomainLock': 'QueryDomainLockParameters',
'QueryDomainMemberContact': 'QueryDomainMemberContactParameters',
'QueryDomainNameserverHosts': 'QueryDomainNameserverHostsParameters',
'QueryDomainNameservers': 'QueryDomainNameserversParameters',
'QueryDomainPrivacy': 'QueryDomainPrivacyParameters',
'QueryDomainRenewalSettings': 'QueryDomainRenewalSettingsParameters',
'QueryDomainTelCredentials': 'QueryDomainTelCredentialsParameters',
'QueryEmailDomainBlackList': 'QueryEmailDomainBlackListParameters',
'QueryEmailDomainWhiteList': 'QueryEmailDomainWhiteListParameters',
'QueryEmailForwarder': 'QueryEmailForwarderParameters',
'QueryEmailMailbox': 'QueryEmailMailboxParameters',
'QueryEmailMailboxBlackList': 'QueryEmailMailboxBlackListParameters',
'QueryEmailMailboxWhiteList': 'QueryEmailMailboxWhiteListParameters',
'QueryFinancialReport': 'QueryFinancialReportParameters',
'QueryLoginURL': 'QueryLoginURLParameters',
'QueryManagementReport': 'QueryManagementReportParameters',
'QueryNameserver': 'QueryNameserverParameters',
'QueryPerformanceReport': 'QueryPerformanceReportParameters',
'QueryPremiumDomain': 'QueryPremiumDomainParameters',
'QueryPublishing': 'QueryPublishingParameters',
'QueryPublishingControlURL': 'QueryPublishingControlURLParameters',
'QueryResellerConfig': 'QueryResellerConfigParameters',
'QuerySSL': 'QuerySSLParameters',
'QuerySSLApproverEmails': 'QuerySSLApproverEmailsParameters',
'QuerySSLStatus': 'QuerySSLStatusParameters',
'QueryTrademark': 'QueryTrademarkParameters',
'QueryTrademarkLabels': 'QueryTrademarkLabelsParameters',
'QueryTrademarkSMD': 'QueryTrademarkSMDParameters',
'QueryTransfer': 'QueryTransferParameters',
'QueryTransfersAway': 'QueryTransfersAwayParameters',
'QueryTransition': 'QueryTransitionParameters',
'QueryUser': 'QueryUserParameters',
'QueryUserGroup': 'QueryUserGroupParameters',
'QueryUserRoles': 'QueryUserRolesParameters',
'QueryWebHosting': 'QueryWebHostingParameters',
'QueryWebHostingApps': 'QueryWebHostingAppsParameters',
'QueryWebHostingDatabase': 'QueryWebHostingDatabaseParameters',
'QueryWebHostingDatabaseUser': 'QueryWebHostingDatabaseUserParameters',
'QueryWebHostingFTPUser': 'QueryWebHostingFTPUserParameters',
'QueryWebHostingPackage': 'QueryWebHostingPackageParameters',
'QueryWebHostingSharedSSL': 'QueryWebHostingSharedSSLParameters',
'QueryWebHostingUpgrade': 'QueryWebHostingUpgradeParameters',
'QueryWebHostingWebsite': 'QueryWebHostingWebsiteParameters',
'QueryWebHostingWebsiteApp': 'QueryWebHostingWebsiteAppParameters',
'RegisterDomain': 'RegisterDomainParameters',
'ReissueSSL': 'ReissueSSLParameters',
'RejectTransferAway': 'RejectTransferAwayParameters',
'RenewDomain': 'RenewDomainParameters',
'RenewEmailForwarder': 'RenewEmailForwarderParameters',
'RenewEmailMailbox': 'RenewEmailMailboxParameters',
'RenewPublishing': 'RenewPublishingParameters',
'RenewSSL': 'RenewSSLParameters',
'RenewWebHosting': 'RenewWebHostingParameters',
'RequestBackOrder': 'RequestBackOrderParameters',
'RequestTransfer': 'RequestTransferParameters',
'RequestTransferAway': 'RequestTransferAwayParameters',
'ResendDomainVerificationEmail': 'ResendDomainVerificationEmailParameters',
'ResendSSLEmail': 'ResendSSLEmailParameters',
'ResendTransferAdminEmail': 'ResendTransferAdminEmailParameters',
'RestartTransfer': 'RestartTransferParameters',
'RestartTransition': 'RestartTransitionParameters',
'RestoreDomain': 'RestoreDomainParameters',
'ResumeEmail': 'ResumeEmailParameters',
'StorefrontAssignDomainToUser': 'StorefrontAssignDomainToUserParameters',
'StorefrontCreatePackage': 'StorefrontCreatePackageParameters',
'StorefrontCreateUser': 'StorefrontCreateUserParameters',
'StorefrontDeleteUser': 'StorefrontDeleteUserParameters',
'StorefrontModifyUser': 'StorefrontModifyUserParameters',
'StorefrontQueryUser': 'StorefrontQueryUserParameters',
'StorefrontQueryUsers': 'StorefrontQueryUsersParameters',
'SuspendEmail': 'SuspendEmailParameters',
'UnassignWebHostingDatabaseUser':
'UnassignWebHostingDatabaseUserParameters',
'UnassignWebHostingFTPUser': 'UnassignWebHostingFTPUserParameters',
'UnrenewDomain': 'UnrenewDomainParameters',
'UpgradePublishing': 'UpgradePublishingParameters',
'UpgradeWebHosting': 'UpgradeWebHostingParameters'
}
LIVE_URL = 'https://live.domainbox.net/?WSDL'
SANDBOX_URL = 'https://sandbox.domainbox.net/?WSDL'
class DomainBox(object):
def __init__(self, reseller, username, password, live=False):
url = LIVE_URL if live else SANDBOX_URL
self.client = Client(url)
self.factory = self.client.factory
self.service = self.client.service
self.auth_params = self.factory.create('AuthenticationParameters')
self.auth_params.Reseller = reseller
self.auth_params.Username = username
self.auth_params.Password = password
def __getattr__(self, name):
if name in DOMAINBOX_COMMANDS.keys():
def request_handler(**kwargs):
return self.request(name, **kwargs)
return request_handler
return super(DomainBox, self).__getattr__(name)
def request(self, name, **kwargs):
command_params = self.load_command_params(name, **kwargs)
service = getattr(self.service, name)
return service(self.auth_params, command_params)
def load_command_params(self, name, **params):
params_type = self.factory.create(DOMAINBOX_COMMANDS[name])
for k, v in params.iteritems():
setattr(params_type, k, v)
return params_type