/      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-.None /0123456789: /012345678 /0123456789:None ,579;D[H?fUser attributes, used in updating a user. It's an error to update a user with all attributes missing.IWe track whether at least one attribute has been set with a phantom type. Alerta bugs:ocan't update password without also passing provider=basic as alerta checks the update message, not the user.Fcan't set email_verified to false without providing another parameter.\The helper functions "withUserName" etc. can be used in conjunction with the default empty UserAttr to build up a nonempty UserAttr.a5Information returned from the server about an API keyn Data needed to create an API keyp:only read if authorised as admin, defaults to current userq>only read if authorised as admin, defaults to current customerrdefaults to read-onlysdefaults to "API Key for $user"t 40-char UTF86Information returned from the server about a heartbeat!Data needed to create a heartbeatA note on blackout priorities: Priority is  by default!if resource and not event presentif service presentif event and not resourceif group presentif resource and event presentif tags presentASomewhat bizarrely, the saved blackout only includes an attribute#{resource,service,event,group,tags}if it was used to deduce the priority, i.e. a priority 6 blackout will have resource and event attributes, but no tags attribute, even if it was supplied when it was created.defaults to nowdefaults to start + durationKcan be calculated from start and end, or else defaults to BLACKOUT_DURATIONdefaults to nowdefaults to start + durationWin seconds; can be calculated from start and end, or else defaults to BLACKOUT_DURATIONThis also has a field corresponding to the "group-by" query parameter used i.e. if you group by origin, then the result will have an "origin" field.NThis dependently-typed feature is not currently captured in the Haskell types.**not present if rate limited or in blackout+(present when rate limited or in blackout1@Attributes are key-value pairs that can be attached to an alert.7nWhen performing an alert history query an enriched version of the alert history is returned with extra fields.?"why this is an array I do not knowL"why this is an array I do not know_HAlert attributes, used for sorting, grouping and for field-based queries|,Data returned from the server about an alertdefaults to empty string defaults to misc defaults to n/adefaults to empty string*Attribute keys must not contain "." or "$"defaults to prog/machine defaults to exceptionAlert(Data required to create (post) an alert. defaults to Misc defaults to n/adefaults to prog/machine ('%s\/%s'8 % (os.path.basename(sys.argv[0]), platform.uname()[1])) defaults to exceptionAlert defaults to utcnow()(in seconds; defaults to 86400 (24 hours)zThis type is used for basic responses that have no content beyond whether they succeeded or failed with an error message.Status of an alert. status code 1 status code 2 status code 3 status code 4 status code 5 status code 9Alert severity8 (grey) 7 (purple) 6 (green) 5 (green) 5 (green) 5 (green) 5 (silver)4 (blue) 3 (yellow) 2 (orange)1 (red) 0 (black)2These are the valid keys for use in field queries.NB no ;, < or duplicateCount as these have special handling.Matches can be either literal or regular expressions. n.b. regexes are case-insensitive and are not anchored, i.e. no need to write .*regex.*jtrue for duplicate, false if an alert is correlated (in which case alerta appends an item to the history)7This is a JSON document describing a Mongo query, see 8http://docs.mongodb.org/manual/reference/operator/query/kConvenient syntax for the four types of field queries viz. literal, negated literal, regex, negated regex.kConvenient syntax for the four types of field queries viz. literal, negated literal, regex, negated regex.kConvenient syntax for the four types of field queries viz. literal, negated literal, regex, negated regex.kConvenient syntax for the four types of field queries viz. literal, negated literal, regex, negated regex./Create an alert with just the mandatory fields.0Create a blackout with only the mandatory fields-Create a user with just the mandatory fields.R  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~<what page of the results to return (actually a positive int)=maximum number of results to return (actually a positive int)&whether to reverse the order of a sort   =>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMONPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'() *+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a bcdefghijklmnopqrstuvwxyz{|}~        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTU VWXYZ[\X]Z[\^_`abcdefghijklmnopqrstuvwxyz{|}~    =>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~None ,9;DQRT5We need this because Alerta for some reason requires field and `field!`U parameters to be joined together with a comma rather than passed in the usual way.None ARun a Servant client function, pretty-printing the JSON returned. cRun a Servant client function, pretty-printing the JSON returned, and discarding the return value.5Pretty-print the JSON encoding of the supplied value.,Current time. Not referentially transparent!        None ,09;DQRT'Authenticate a request using an API keyBindings to the alerta APINone,QR.6this is a JSON document describing a Mongo query see 8http://docs.mongodb.org/manual/reference/operator/query/alert attributes to showalert attributes to hide !"#$%&'()*+,-./  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMONPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-.3 !"#$%&'()*+,-.|}~_`abcdefghijklmnopqrstuvwxyz{UVWXYZ[\X]Z[\^789:;<=>?@ABCDEFGHIJKLMNOPQRST456123-./0&'()*+, !"#$%     wxyz{|}~tuvnopqrsklmabcdefghij[\]^_`STUVWXYZKLMNOPQR?@ABCDEFGHIJ   6789:;<=>345)*+,-./012#$%&'( !"   . !"#$%&'()*+,-.      !"#$%&'()*+,-../0123456789::;<=>?@ABBCDEFGHIJKLMMNOPQRSTUVWXYZ[\]^_`abbcdefghijklmnnopqrsstuvwxyz{|}~      !""#$%%&''()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnnopqrstuvwxyz{|}~      !"#$%&'()*+,*-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~w%alerta-0.1.0.3-53zaBE4UQ1wAKSJjglaVMoAlerta Alerta.Util Alerta.TypesAlerta.ServantExtrasAlerta.Helpers Alerta.Auth CustomersRespOkCustomersRespErrorCustomersRespokCustomersRespCustomersokCustomersRespTotalokCustomersRespMessageokCustomersRespTimeerrorCustomersMessage CustomerRespOkCustomerRespErrorCustomerRespokCustomerRespIdokCustomerRespCustomererrorCustomerRespMessage CustomerInfocustomerInfoIdcustomerInfoCustomercustomerInfoMatchCustomercustomerCustomer customerMatch UsersResp OkUsersRespErrorUsersRespokUsersRespUsersokUsersRespTotalokUsersRespDomainsokUsersRespGroupsokUsersRespOrgsokUsersRespRolesokUsersRespTimeokUsersRespMessageerrorUsersRespUserResp OkUserResp ErrorUserResp okUserRespIdokUserRespUsererrorUserRespMessageExtendedUserInfoextendedUserInfoCreateTimeextendedUserInfoIdextendedUserInfoNameextendedUserInfoLoginextendedUserInfoProviderextendedUserInfoRoleextendedUserInfoTextextendedUserInfoEmail_verifiedRoleType UserRoleType AdminRoleTypeUserInfouserInfoCreateTime userInfoId userInfoNameuserInfoProvider userInfoLogin userInfoTextuserInfoEmail_verifiedUserAttr userAttrName userAttrLoginuserAttrPassworduserAttrProvider userAttrTextuserAttrEmail_verifiedIsEmptyEmptyNonemptyUnknownIfEmptyUseruserName userLogin userPassword userProvideruserTextuserEmailVerified ApiKeysResp OkApiKeysRespErrorApiKeysRespokApiKeysRespKeysokApiKeysRespTotalokApiKeysRespTimeokApiKeysRespMessageerrorApiKeysRespMessageCreateApiKeyRespOkCreateApiKeyRespErrorCreateApiKeyRespokCreateApiKeyRespKeyokCreateApiKeyRespDataerrorCreateApiKeyRespMessage ApiKeyInfoapiKeyInfoUser apiKeyInfoKeyapiKeyInfoTypeapiKeyInfoTextapiKeyInfoExpireTimeapiKeyInfoCountapiKeyInfoLastUsedTimeapiKeyInfoCustomer ApiKeyTypeReadOnly ReadWrite CreateApiKeycreateApiKeyUsercreateApiKeyCustomercreateApiKeyTypecreateApiKeyTextApiKeyunApiKeyHeartbeatsRespOkHeartbeatsRespErrorHeartbeatsRespheartbeatsRespHeartbeatsheartbeatsRespTimeheartbeatsRespTotalheartbeatsRespMessageheartbeatsRespErrorMessage HeartbeatRespOkHeartbeatRespErrorHeartbeatRespheartbeatRespHeartbeatheartbeatRespTotalheartbeatRespMessageCreateHeartbeatRespOkCreateHeartbeatRespErrorCreateHeartbeatRespcreateHeartbeatRespIdcreateHeartbeatRespHeartbeatcreateHeartbeatRespMessage HeartbeatInfoheartbeatInfoCreateTimeheartbeatInfoCustomerheartbeatInfoHrefheartbeatInfoIdheartbeatInfoOriginheartbeatInfoReceiveTimeheartbeatInfoTagsheartbeatInfoTimeoutheartbeatInfoType HeartbeatheartbeatOrigin heartbeatTagsheartbeatCreateTimeheartbeatTimeoutheartbeatCustomer BlackoutsRespOkBlackoutsRespErrorBlackoutsRespokBlackoutsRespTotalokBlackoutsRespBlackoutsokBlackoutsRespMessageokBlackoutsRespTimeerrorBlackoutsRespMessage BlackoutRespOkBlackoutRespErrorBlackoutRespokBlackoutRespIdokBlackoutRespBlackouterrorBlackoutRespMessageExtendedBlackoutInfoextendedBlackoutInfoIdextendedBlackoutInfoPriorityextendedBlackoutInfoEnvironmentextendedBlackoutInfoResourceextendedBlackoutInfoServiceextendedBlackoutInfoEventextendedBlackoutInfoGroupextendedBlackoutInfoTagsextendedBlackoutInfoCustomerextendedBlackoutInfoStartTimeextendedBlackoutInfoEndTimeextendedBlackoutInfoDurationextendedBlackoutInfoRemainingextendedBlackoutInfoStatusBlackoutStatusExpiredPendingActive BlackoutInfoblackoutInfoIdblackoutInfoPriorityblackoutInfoEnvironmentblackoutInfoResourceblackoutInfoServiceblackoutInfoEventblackoutInfoGroupblackoutInfoTagsblackoutInfoCustomerblackoutInfoStartTimeblackoutInfoEndTimeblackoutInfoDurationBlackoutblackoutEnvironmentblackoutResourceblackoutService blackoutEvent blackoutGroup blackoutTagsblackoutStartTimeblackoutEndTimeblackoutDuration ServicesRespOkServicesRespErrorServicesRespokServicesRespTotalokServicesRespServicesokServicesRespMessageerrorServicesRespMessage ServiceInfoserviceInfoCountserviceInfoEnvironmentserviceInfoServiceEnvironmentsRespOkEnvironmentsRespErrorEnvironmentsRespokEnvironmentsRespMessageokEnvironmentsRespTotalokEnvironmentsRespEnvironmentserrorEnvironmentsRespMessageEnvironmentInfoenvironmentInfoCountenvironmentInfoEnvironmentAlertHistoryRespOkAlertHistoryRespErrorAlertHistoryRespokAlertHistoryRespHistoryokAlertHistoryRespLastTimeokAlertHistoryRespMessageerrorAlertHistoryResp Top10Resp OkTop10RespErrorTop10RespokTop10RespTop10okTop10RespTotalokTop10RespMessageerrorTop10RespMessage Top10Infotop10InfoCounttop10InfoDuplicateCounttop10InfoEnvironmentstop10InfoServicestop10InfoResources ResourceInforesourceInfoIdresourceInfoResourceresourceInfoHrefAlertCountRespOkAlertCountRespErrorAlertCountRespokAlertCountRespTotalokAlertCountRespSeverityCountsokAlertCountRespStatusCountsokAlertCountRespMessageerrorAlertCountRespMessage AlertsResp OkAlertsRespErrorAlertsRespokAlertsRespAlertsokAlertsRespTotalokAlertsRespPageokAlertsRespPageSizeokAlertsRespPagesokAlertsRespMoreokAlertsRespSeverityCountsokAlertsRespStatusCountsokAlertsRespLastTimeokAlertsRespAutoRefreshokAlertsRespMessageerrorAlertsRespMessage AlertResp OkAlertRespErrorAlertRespokAlertRespAlertokAlertRespTotalerrorAlertRespMessageCreateAlertRespOkCreateAlertRespErrorCreateAlertRespokCreateAlertRespIdokCreateAlertRespAlertokCreateAlertRespMessageerrorCreateAlertRespMessage StatusChangestatusChangeStatusstatusChangeText Attributes attributesTagstagsExtendedHistoryItemStatusExtendedHistoryItemSeverityExtendedHistoryItemstatusExtendedHistoryItemId!statusExtendedHistoryItemResourcestatusExtendedHistoryItemEvent$statusExtendedHistoryItemEnvironmentstatusExtendedHistoryItemStatus statusExtendedHistoryItemServicestatusExtendedHistoryItemGroupstatusExtendedHistoryItemTextstatusExtendedHistoryItemTags#statusExtendedHistoryItemAttributesstatusExtendedHistoryItemOrigin#statusExtendedHistoryItemUpdateTime!statusExtendedHistoryItemCustomerseverityExtendedHistoryItemId#severityExtendedHistoryItemResource severityExtendedHistoryItemEvent&severityExtendedHistoryItemEnvironment#severityExtendedHistoryItemSeverity"severityExtendedHistoryItemService severityExtendedHistoryItemGroup severityExtendedHistoryItemValueseverityExtendedHistoryItemTextseverityExtendedHistoryItemTags%severityExtendedHistoryItemAttributes!severityExtendedHistoryItemOrigin%severityExtendedHistoryItemUpdateTime#severityExtendedHistoryItemCustomer HistoryItemStatusHistoryItemSeverityHistoryItemhistoryItemEventhistoryItemStatushistoryItemText historyItemIdhistoryItemUpdateTimehistoryItemSeverityhistoryItemValue AlertAttr IdAlertAttrResourceAlertAttrEventAlertAttrEnvironmentAlertAttrSeverityAlertAttrCorrelateAlertAttrStatusAlertAttrServiceAlertAttrGroupAlertAttrValueAlertAttr TextAlertAttr TagsAlertAttrAttributesAlertAttrOriginAlertAttr TypeAlertAttrCreateTimeAlertAttrTimeoutAlertAttrRawDataAlertAttrCustomerAlertAttrDuplicateCountAlertAttrRepeatAlertAttrPreviousSeverityAlertAttrTrendIndicationAlertAttrReceiveTimeAlertAttrLastReceiveIdAlertAttrLastReceiveTimeAlertAttrHistoryAlertAttr HrefAlertAttr AlertInfo alertInfoIdalertInfoResourcealertInfoEventalertInfoEnvironmentalertInfoSeverityalertInfoCorrelatealertInfoStatusalertInfoServicealertInfoGroupalertInfoValue alertInfoText alertInfoTagsalertInfoAttributesalertInfoOrigin alertInfoTypealertInfoCreateTimealertInfoTimeoutalertInfoRawDataalertInfoCustomeralertInfoDuplicateCountalertInfoRepeatalertInfoPreviousSeverityalertInfoTrendIndicationalertInfoReceiveTimealertInfoLastReceiveIdalertInfoLastReceiveTimealertInfoHistory alertInfoHrefAlert alertResource alertEventalertEnvironment alertSeverityalertCorrelate alertStatus alertService alertGroup alertValue alertText alertTagsalertAttributes alertOrigin alertTypealertCreateTime alertTimeout alertRawData alertCustomerRespOkResp ErrorResp respMessageTrendIndicationNoChange LessSevere MoreSevereStatus OpenStatus AssignStatus AckStatus ClosedStatus ExpiredStatus UnknownStatusSeverityUnknownTraceDebug InformationalOkNormalCleared IndeterminateWarningMinorMajorCriticalSecurity QueryAttrEventQueryAttrEnvironmentQueryAttrSeverityQueryAttrCorrelateQueryAttrStatusQueryAttrServiceQueryAttrGroupQueryAttrValueQueryAttr TextQueryAttr TagsQueryAttrAttributesQueryAttrOriginQueryAttr TypeQueryAttrCreateTimeQueryAttrTimeoutQueryAttrRawDataQueryAttrCustomerQueryAttrRepeatQueryAttrPreviousSeverityQueryAttrTrendIndicationQueryAttrReceiveTimeQueryAttrLastReceiveIdQueryAttrLastReceiveTimeQueryAttrHistoryQueryAttr HrefQueryAttr MatchTypeRegexLiteral FieldQueryIsRepeat QueryStringHrefUUIDPageNoLimit ShouldReverseProviderPasswordEmailTag CustomerNameUserName AlertTypeOriginGroup EnvironmentServiceEventResource=.!=~.!~mkAlertblackoutuser emptyUserAttr checkNonempty withUserName withUserLoginwithUserPasswordwithUserProvider withUserTextwithUserEmailVerifiedrunrun'prettyPrintEncodingnow createAlertgetAlert deleteAlertsetAlertStatustagAlert untagAlertupdateAlertAttributes listAlerts alertHistory countAlertstop10 flappingTop10listEnvironments listServicescreateBlackoutdeleteBlackout listBlackoutscreateHeartbeat getHeartbeatdeleteHeartbeatlistHeartbeats createApiKey deleteApiKey listApiKeys createUser deleteUser updateUser listUserscreateCustomerdeleteCustomer listCustomers AesonOptstagunwraptoOptsshowTextLowercase uncapitalise capitalise dropRightonCamelComponentscamelComponents$fDefaultAesonOptsbaseGHC.BaseidGHC.Listrepeat$fFromJSONUserAttr$fToJSONUserAttr$fDefaultUserAttr$fFromJSONApiKeyType$fToJSONApiKeyType$fShowApiKeyType$fToHttpApiDataApiKey$fToJSONApiKey$fFromJSONApiKey$fIsStringApiKey$fToHttpApiDataAlertAttr$fIsStringAlertAttr $fFromHttpApiDataTrendIndication$fFromJSONKeyStatus$fToJSONKeyStatus$fToHttpApiDataStatus$fFromJSONKeySeverity$fToJSONKeySeverity$fToHttpApiDataSeverity$fToHttpApiDataQueryAttr$fIsStringQueryAttr$fFromJSONSeverity$fFromJSONStatus$fFromJSONAlert$fFromJSONTags$fFromJSONAttributes$fFromJSONAlertAttr$fFromJSONAlertInfo$fFromJSONCreateAlertResp$fFromJSONAlertResp$fFromJSONAlertsResp$fFromJSONResourceInfo$fFromJSONTop10Info$fFromJSONTop10Resp$fFromJSONAlertCountResp$fFromJSONAlertHistoryResp$fFromJSONStatusChange$fFromJSONResp$fFromJSONTrendIndication$fFromJSONHistoryItem$fFromJSONExtendedHistoryItem$fFromJSONEnvironmentInfo$fFromJSONEnvironmentsResp$fFromJSONServiceInfo$fFromJSONServicesResp$fFromJSONBlackout$fFromJSONBlackoutInfo$fFromJSONBlackoutStatus$fFromJSONExtendedBlackoutInfo$fFromJSONBlackoutResp$fFromJSONBlackoutsResp$fFromJSONHeartbeat$fFromJSONHeartbeatInfo$fFromJSONCreateHeartbeatResp$fFromJSONHeartbeatResp$fFromJSONHeartbeatsResp$fFromJSONCreateApiKey$fFromJSONApiKeyInfo$fFromJSONCreateApiKeyResp$fFromJSONApiKeysResp$fFromJSONRoleType$fFromJSONUser$fFromJSONUserInfo$fFromJSONExtendedUserInfo$fFromJSONUserResp$fFromJSONUsersResp$fFromJSONCustomer$fFromJSONCustomerInfo$fFromJSONCustomerResp$fFromJSONCustomersResp$fToHttpApiData[] FieldQueries$fHasClientTYPE:> clientEnv handleError showUnescaped prettyPrintreplace addApiKey WithApiKey NeedApiKey$fHasClientTYPE:>0 CustomerApiUserApi ApiKeyApi HeartbeatApi BlackoutApi ServiceApiEnvironmentApi AlertsApiAlertApiQueryFieldsGroupedSortPageLimited