00001 #include "sae.idl"
00002
00003 #pragma prefix "smgt.juniper.net"
00004
00068 module sae {
00070 const string DEFAULT_SESSION_NAME = "default";
00071
00073 const string MANUAL = "MANUAL";
00074
00076 const string ACTIVATE_ON_LOGIN = "ACTIVATE_ON_LOGIN";
00077
00079 typedef sequence<wstring> WStringSeq;
00080
00093 struct Attr {
00094
00096 string name;
00097
00099 WStringSeq values;
00100 };
00101
00103 typedef sequence<Attr> AttrSeq;
00104
00106 typedef sequence<AttrSeq> AttrSeqSeq;
00107
00108
00109
00110
00111
00133 struct TimeSpec {
00134
00135 string year;
00136 string month;
00137 string dayOfMonth;
00138 string dayOfWeek;
00139 string hour;
00140 string minute;
00141 string extension;
00142 string weeklyRecurFreq;
00143 };
00144
00145
00153 struct ScheduledTime {
00159 TimeSpec firstTimeSpec;
00160
00166 TimeSpec secondTimeSpec;
00167 };
00168
00169
00184 struct ActionExt {
00186 unsigned long operation;
00187
00189 wstring serviceName;
00190
00192 AttrSeq attributes;
00193 };
00194
00199 typedef sequence<ActionExt> ActionExtSeq;
00200
00201
00206 struct Action {
00208 unsigned long operation;
00209
00211 wstring serviceName;
00212 };
00213
00218 typedef sequence<Action> ActionSeq;
00219
00221 typedef sequence<long long> LongLongSeq;
00222
00223
00228 struct ScheduleEntry {
00229 string id;
00230 ScheduledTime schedTime;
00231 ActionExtSeq actions;
00232
00233
00234 };
00235
00237 typedef string ScheduleEntryId;
00238
00240 typedef sequence<ScheduleEntryId> ScheduleEntryIdSeq;
00241
00243 typedef sequence<ScheduleEntry> ScheduleEntrySeq;
00244
00245
00253 struct Select {
00254
00274 StringSeq attributes;
00275
00329 string filter;
00330 };
00331
00332
00338 struct IdxPair {
00339 unsigned long subIdx;
00340 unsigned long svcIdx;
00341 };
00342
00344 typedef sequence<IdxPair> IdxPairSeq;
00345
00357 struct ReadResult {
00358 IdxPairSeq result;
00359 AttrSeqSeq subscription;
00360 AttrSeqSeq service;
00361
00363 AttrSeq attributes;
00364 };
00365
00366
00367
00368
00369
00370
00372 exception UnknownUserException {
00373 wstring userId;
00374 wstring message;
00375 };
00376
00379 exception NonUniqueUserException {
00380 wstring userId;
00381 wstring message;
00382 };
00383
00385 exception UnknownServiceException {
00386 wstring serviceName;
00387 wstring message;
00388 };
00389
00391 exception UnknownServiceSessionException {
00392 wstring serviceName;
00393 wstring sessionName;
00394 wstring message;
00395 };
00396
00398 exception UnknownSubscriptionException {
00399 wstring subscriptionName;
00400 wstring message;
00401 };
00402
00404 exception SAEException {
00405 wstring message;
00406 };
00407
00412 exception LoginException {
00413 string currentIp;
00414 string loginName;
00415 wstring message;
00416 };
00417
00420 exception OverloadException {
00421 wstring message;
00422 };
00423
00425 exception UnsupportedException {
00426 wstring message;
00427 };
00428
00430 enum SAET {
00431 SAET_PUBLIC_IP_AUTHENTICATION,
00433 SAET_MUTEX_GROUPS,
00435 SAET_SERVICE_AUTHORIZATION,
00437 SAET_ANONYMOUS_USER,
00439 SAET_AUTH_PRECLUDES_ACTIVATE_ON_LOGIN,
00442 SAET_INHERITED_SUBSCRIPTION,
00444 SAET_SERVICE_UNAVAILABLE,
00446 SAET_SUBSCRIPTION_AUTHORIZATION,
00448 SAET_ACTIVATE_ONLY,
00450 SAET_INVISIBLE,
00452 SAET_FILTERED_OUT,
00454 SAET_NO_SESSION_MODIFICATION,
00456 SAET_TRANSIENT_EXCEPTION,
00458 SAET_PERSISTENT_ACTIVATION,
00460 SAET_MODIFY_EXCEPTION
00462 };
00463
00465 exception ServiceAuthenticationException {
00466 SAET reason;
00467 wstring userIp;
00468 wstring serviceName;
00469 wstring sessionName;
00470 wstring message;
00471 };
00472
00473
00474
00475
00476
00489 struct TimedAddress {
00490 string ipAddress;
00491 unsigned long long timestamp;
00492
00493 };
00494
00495
00500 struct InterfaceName {
00501 string intfName;
00502 string vrName;
00503 };
00504
00505
00512 struct InterfaceIndex {
00513 unsigned long index;
00514 string vrName;
00515 };
00516
00517
00524 struct AddrInterfaceName {
00525 string ipAddress;
00526 string intfName;
00527 string vrName;
00528
00529
00530 };
00531
00532 struct TunnelSession {
00533 long tunnelId;
00534 long tunnelSessionId;
00535 string vrName;
00536
00537 };
00538
00544 struct GlobalAddress {
00547 string ipAddress;
00549 string vpn_id;
00550 };
00551
00557 struct GlobalLoginName {
00558 string login_name;
00559 string vpn_id;
00560 };
00561
00563 enum SubscriberIdType {
00566 SIT_ADDRESS,
00567
00569 SIT_DN,
00570
00572 SIT_LOGIN_NAME,
00573
00576 SIT_IF_NAME,
00577
00580 SIT_IF_INDEX,
00581
00583 SIT_PRIMARY_USER_NAME,
00584
00587 SIT_ADDR_IF_NAME,
00588
00591 SIT_TUNNEL_SESSION,
00592
00594 SIT_SESSIONID,
00595
00597 SIT_SESSION_HANDLE,
00598
00600 SIT_GLOBAL_ADDRESS,
00601
00603 SIT_GLOBAL_LOGIN_NAME
00604 };
00605
00606
00611 union SubscriberId switch(SubscriberIdType) {
00612 case SIT_ADDRESS:
00613 TimedAddress address;
00614 case SIT_DN:
00615 string dn;
00616 case SIT_LOGIN_NAME:
00617 string login_name;
00618 case SIT_IF_NAME:
00619 InterfaceName if_name;
00620 case SIT_IF_INDEX:
00621 InterfaceIndex if_index;
00622 case SIT_PRIMARY_USER_NAME:
00623 string primary_user_name;
00624 case SIT_ADDR_IF_NAME:
00625 AddrInterfaceName addr_if_name;
00626 case SIT_TUNNEL_SESSION:
00627 TunnelSession tunnel_session;
00628 case SIT_SESSIONID:
00629 string sessionId;
00630 case SIT_SESSION_HANDLE:
00631 string sessionHandle;
00632 case SIT_GLOBAL_ADDRESS:
00633 GlobalAddress global_address;
00634 case SIT_GLOBAL_LOGIN_NAME:
00635 GlobalLoginName global_login_name;
00636 };
00637
00638
00645 struct DhcpAttribute {
00646 string name;
00647 string value;
00648 };
00649
00651 typedef sequence<DhcpAttribute> DhcpAttributes;
00652
00653
00663 interface Subscriber {
00664
00665
00699 ReadResult read(in Select subscription,
00700 in Select service,
00701 in StringSeq attributes)
00702 raises (SAEException, UnknownUserException, NonUniqueUserException);
00703
00704
00727 AttrSeq readSubscriber(in StringSeq attributes)
00728 raises (SAEException, UnknownUserException, NonUniqueUserException);
00729
00730
00751 AttrSeqSeq readSubscription(in Select selection)
00752 raises (SAEException, UnknownUserException, NonUniqueUserException);
00753
00754
00775 AttrSeqSeq readService(in Select selection)
00776 raises (SAEException, UnknownUserException, NonUniqueUserException);
00777
00778
00779
00780
00781
00800 void addScheduleEntry(in ScheduleEntryId id,
00801 in ScheduledTime schedTime,
00802 in ActionExtSeq actions)
00803 raises (UnknownUserException,
00804 SAEException);
00805
00806
00825 void updateScheduleEntry(in ScheduleEntryId id,
00826 in ScheduledTime schedTime,
00827 in ActionExtSeq actions)
00828 raises (UnknownUserException,
00829 SAEException);
00830
00831
00846 void deleteScheduleEntry(in ScheduleEntryId id)
00847 raises (UnknownUserException,
00848 SAEException);
00849
00850
00870 ScheduleEntry getScheduleEntryById(in ScheduleEntryId id)
00871 raises (UnknownUserException,
00872 SAEException);
00873
00874
00895 ScheduleEntrySeq getScheduleEntriesByIds(in ScheduleEntryIdSeq ids)
00896 raises (UnknownUserException,
00897 SAEException);
00898
00899
00919 ScheduleEntryIdSeq getScheduleEntryIds(in long long startDate,
00920 in long long endDate)
00921 raises (UnknownUserException,
00922 SAEException);
00923
00924
00942 void addOneTimeScheduleEntry(in long long eventDate,
00943 in ActionSeq actions)
00944 raises (UnknownUserException,
00945 SAEException);
00946
00947
00965 void updateOneTimeScheduleEntryActions(in long long eventDate,
00966 in ActionSeq actions)
00967 raises (UnknownUserException,
00968 SAEException);
00969
00970
00989 void deleteOneTimeScheduleEntries(in long long startDate,
00990 in long long endDate)
00991 raises (UnknownUserException,
00992 SAEException);
00993
00994
01012 ActionSeq getOneTimeScheduleEntryActions(in long long eventDate)
01013 raises (UnknownUserException,
01014 SAEException);
01015
01016
01037 LongLongSeq getOneTimeScheduleEntryEventDates(in long long startDate,
01038 in long long endDate)
01039 raises (UnknownUserException,
01040 SAEException);
01041
01042
01075 WStringSeq addSubscriptionAttributes(in string subscriptionName,
01076 in string userName,
01077 in string password,
01078 in AttrSeq subscriptionAttributes)
01079 raises (UnknownUserException,
01080 NonUniqueUserException,
01081 UnknownServiceException,
01082 ServiceAuthenticationException,
01083 SAEException);
01084
01085
01116 WStringSeq addSubscription(in string subscriptionName,
01117 in string userName,
01118 in string password)
01119 raises (UnknownUserException,
01120 NonUniqueUserException,
01121 UnknownServiceException,
01122 ServiceAuthenticationException,
01123 SAEException);
01124
01125
01157 WStringSeq deleteSubscription(in string subscriptionName,
01158 in string userName,
01159 in string password)
01160 raises (UnknownUserException,
01161 NonUniqueUserException,
01162 UnknownServiceException,
01163 UnknownSubscriptionException,
01164 ServiceAuthenticationException,
01165 SAEException);
01166
01167
01187 void setSessionTimeout(in unsigned long timeout)
01188 raises (UnknownUserException, NonUniqueUserException, SAEException);
01189
01190
01212 void updateSessionTimeout(in unsigned long timeout)
01213 raises (UnknownUserException, NonUniqueUserException, SAEException);
01214
01215
01248 void updateServiceSessionTimeout(in string subscriptionName,
01249 in string sessionName,
01250 in unsigned long timeout)
01251 raises (UnknownUserException,
01252 NonUniqueUserException,
01253 UnknownServiceException,
01254 UnknownSubscriptionException,
01255 SAEException);
01256
01257
01278 boolean login(in string loginName,
01279 in string password)
01280 raises (LoginException,
01281 SAEException);
01282
01283
01300 void logout()
01301 raises (UnknownUserException,
01302 SAEException);
01303
01304
01320 void disconnect()
01321 raises (UnknownUserException,
01322 NonUniqueUserException,
01323 UnsupportedException,
01324 SAEException);
01325
01326
01352 void grantPublicIp(in string loginName,
01353 in string password)
01354 raises (UnknownUserException,
01355 ServiceAuthenticationException,
01356 SAEException);
01357
01358
01384 void grantPublicIpAttr(in string loginName,
01385 in string password,
01386 in DhcpAttributes attr)
01387 raises (UnknownUserException,
01388 ServiceAuthenticationException,
01389 SAEException);
01390
01391
01406 void revokePublicIp()
01407 raises (UnknownUserException,
01408 SAEException);
01409
01410
01449 void activateService(in string subscriptionName,
01450 in string sessionName,
01451 in AttrSeq activationAttributes)
01452 raises (UnknownUserException,
01453 NonUniqueUserException,
01454 UnknownServiceException,
01455 UnknownSubscriptionException,
01456 ServiceAuthenticationException,
01457 OverloadException,
01458 SAEException);
01459
01460
01504 string activateServiceSession(in string subscriptionName,
01505 in string sessionName,
01506 in AttrSeq activationAttributes)
01507 raises (UnknownUserException,
01508 NonUniqueUserException,
01509 UnknownServiceException,
01510 UnknownSubscriptionException,
01511 ServiceAuthenticationException,
01512 OverloadException,
01513 SAEException);
01514
01515
01546 void activateServiceBackground(in string subscriptionName,
01547 in string sessionName,
01548 in AttrSeq activationAttributes)
01549 raises (UnknownUserException,
01550 NonUniqueUserException,
01551 UnknownServiceException,
01552 UnknownSubscriptionException,
01553 ServiceAuthenticationException,
01554 OverloadException,
01555 SAEException);
01556
01611 void modifyServiceSession(in string subscriptionName,
01612 in string sessionName,
01613 in AttrSeq activationAttributes)
01614 raises (UnknownUserException,
01615 NonUniqueUserException,
01616 UnknownServiceException,
01617 UnknownSubscriptionException,
01618 UnknownServiceSessionException,
01619 ServiceAuthenticationException,
01620 OverloadException,
01621 SAEException);
01622
01626 void startModifyFragmentSession(in string subscriptionName,
01627 in string sessionName,
01628 in AttrSeq activationAttributes)
01629 raises (UnknownUserException,
01630 NonUniqueUserException,
01631 UnknownServiceException,
01632 UnknownSubscriptionException,
01633 UnknownServiceSessionException,
01634 ServiceAuthenticationException,
01635 SAEException);
01636
01640 void finishModifyFragmentSession(in string subscriptionName,
01641 in string sessionName,
01642 in AttrSeq activationAttributes)
01643 raises (UnknownUserException,
01644 NonUniqueUserException,
01645 UnknownServiceException,
01646 UnknownSubscriptionException,
01647 UnknownServiceSessionException,
01648 ServiceAuthenticationException,
01649 OverloadException,
01650 SAEException);
01651
01655 void undoModifyFragmentSession(in string subscriptionName,
01656 in string sessionName,
01657 in AttrSeq activationAttributes)
01658 raises (UnknownUserException,
01659 NonUniqueUserException,
01660 UnknownServiceException,
01661 UnknownSubscriptionException,
01662 UnknownServiceSessionException,
01663 ServiceAuthenticationException,
01664 OverloadException,
01665 SAEException);
01666
01694 void deactivateService(in string subscriptionName,
01695 in string sessionName)
01696 raises (UnknownUserException,
01697 NonUniqueUserException,
01698 UnknownServiceException,
01699 UnknownSubscriptionException,
01700 ServiceAuthenticationException,
01701 SAEException);
01702
01730 void deactivateServiceBackground(in string subscriptionName,
01731 in string sessionName)
01732 raises (UnknownUserException,
01733 NonUniqueUserException,
01734 UnknownServiceException,
01735 UnknownSubscriptionException,
01736 ServiceAuthenticationException,
01737 SAEException);
01738
01739
01773 void deactivateServiceReason(in string subscriptionName,
01774 in string sessionName,
01775 in long reason)
01776 raises (UnknownUserException,
01777 NonUniqueUserException,
01778 UnknownServiceException,
01779 UnknownSubscriptionException,
01780 ServiceAuthenticationException,
01781 SAEException);
01782
01817 void deactivateServiceBackgroundReason(in string subscriptionName,
01818 in string sessionName,
01819 in long reason)
01820 raises (UnknownUserException,
01821 NonUniqueUserException,
01822 UnknownServiceException,
01823 UnknownSubscriptionException,
01824 ServiceAuthenticationException,
01825 SAEException);
01826
01830 void fragmentDown(in string aggregateSubscriptionName,
01831 in string aggregateSessionName,
01832 in string fragmentSessionId)
01833 raises (UnknownUserException,
01834 NonUniqueUserException,
01835 UnknownServiceException,
01836 UnknownSubscriptionException,
01837 UnknownServiceSessionException,
01838 SAEException);
01839
01843 void fragmentReactivating(in string aggregateSubscriptionName,
01844 in string aggregateSessionName,
01845 in string fragmentSessionId)
01846 raises (UnknownUserException,
01847 NonUniqueUserException,
01848 UnknownServiceException,
01849 UnknownSubscriptionException,
01850 UnknownServiceSessionException,
01851 SAEException);
01852
01853
01887 void setActivationTrigger(in string subscriptionName,
01888 in string activationTrigger)
01889 raises (UnknownUserException,
01890 NonUniqueUserException,
01891 UnknownServiceException,
01892 UnknownSubscriptionException,
01893 ServiceAuthenticationException,
01894 SAEException);
01895
01896
01922 void setPersistentSession(in string subscriptionName,
01923 in string sessionName,
01924 in AttrSeq persistentSessionAttributes)
01925 raises (UnknownUserException,
01926 NonUniqueUserException,
01927 UnknownServiceException,
01928 SAEException);
01929
01930
01954 void deletePersistentSession(in string subscriptionName,
01955 in string sessionName)
01956 raises (UnknownUserException,
01957 NonUniqueUserException,
01958 UnknownServiceException,
01959 SAEException);
01960
01961
01985 void modifyPersistentSession(in string subscriptionName,
01986 in string sessionName,
01987 in boolean active)
01988 raises (UnknownUserException,
01989 NonUniqueUserException,
01990 UnknownServiceException,
01991 SAEException);
01992
01993
02016 void setInterimTime(in string subscriptionName,
02017 in string sessionName,
02018 in unsigned long time)
02019 raises (UnknownUserException,
02020 NonUniqueUserException,
02021 UnknownServiceException,
02022 SAEException);
02023
02024
02047 void setSessionVolumeQuota(in string subscriptionName,
02048 in string sessionName,
02049 in string sessionVolumeQuota)
02050 raises (UnknownUserException,
02051 NonUniqueUserException,
02052 UnknownServiceException,
02053 SAEException);
02054
02055
02091 AttrSeqSeq getUsage(in Select selection)
02092 raises (SAEException,
02093 UnknownUserException,
02094 NonUniqueUserException,
02095 OverloadException);
02096
02114 void setProperty(in string aProperty)
02115 raises (SAEException,
02116 UnknownUserException,
02117 NonUniqueUserException);
02118 };
02119
02120
02124 typedef sequence<Subscriber> SubscriberSeq;
02125
02126
02132 struct Registration {
02133 string macAddress;
02134 string loginName;
02135 string userDn;
02136 string intfName;
02138 string vrName;
02140 wstring description;
02142
02143 };
02144
02146 typedef sequence<Registration> RegistrationSeq;
02147
02155 interface SubscriberIterator {
02156
02157
02170 SubscriberSeq next_n(in unsigned long how_many,
02171 out boolean more);
02172
02173
02178 void destroy();
02179 };
02180
02181
02189 interface SAEAccess: SAEFeature {
02190
02191
02206 Subscriber getSubscriber(in SubscriberId sid)
02207 raises (UnknownUserException, NonUniqueUserException);
02208
02209
02231 SubscriberSeq getSubscriberSet(in SubscriberId sid,
02232 in unsigned long how_many,
02233 out SubscriberIterator iter,
02234 out unsigned long total);
02235
02236
02266 SubscriberSeq findSubscriber(in string filter,
02267 in unsigned long how_many,
02268 out SubscriberIterator iter,
02269 out unsigned long total)
02270 raises (SAEException);
02271
02272
02303 SubscriberSeq getSubscriberFilter(in SubscriberId sid,
02304 in string filter,
02305 in unsigned long how_many,
02306 out SubscriberIterator iter,
02307 out unsigned long total)
02308 raises (SAEException);
02309
02310
02311
02312
02313
02347 void registerLogin(in string macAddress,
02348 in wstring loginDescription,
02349 in string loginName,
02350 in string password,
02351 in string vrName,
02352 in string interfaceName)
02353 raises (LoginException, SAEException);
02354
02355
02392 void registerLoginCredentials(in string macAddress,
02393 in wstring loginDescription,
02394 in string loginName,
02395 in string password,
02396 in string vrName,
02397 in string interfaceName)
02398 raises (LoginException, SAEException);
02399
02400
02431 void registerNextLogin(in string macAddress,
02432 in wstring loginDescription,
02433 in string loginName,
02434 in string password,
02435 in string vrName,
02436 in string interfaceName)
02437 raises (LoginException, SAEException);
02438
02439
02461 void unregisterLogin(in string macAddress,
02462 in string loginName,
02463 in string password)
02464 raises (LoginException, SAEException);
02465
02466
02494 void registerEquipment(in string macAddress,
02495 in wstring equipmentDescription,
02496 in string loginName,
02497 in string password,
02498 in string vrName,
02499 in string interfaceName)
02500 raises (SAEException);
02501
02502
02533 void registerEquipmentAttr(in string macAddress,
02534 in wstring equipmentDescription,
02535 in string loginName,
02536 in string password,
02537 in string vrName,
02538 in string interfaceName,
02539 in DhcpAttributes attr)
02540 raises (SAEException);
02541
02542
02561 void unregisterEquipment(in string macAddress,
02562 in string loginName,
02563 in string password)
02564 raises (SAEException);
02565
02566
02588 boolean loginUser(in string userIp,
02589 in string loginName,
02590 in string password)
02591 raises (LoginException, SAEException);
02592
02593
02616 RegistrationSeq getRegisteredLogins(in string login,
02617 in string password)
02618 raises(LoginException, SAEException);
02619
02620
02639 RegistrationSeq getRegisteredEquipment(in string login,
02640 in string password)
02641 raises(LoginException, SAEException);
02642
02643 };
02644 };