diff --git a/docs/schema/ClientPullChangesRequest.schema.json b/docs/schema/ClientPullChangesRequest.schema.json index 1ec4285..6784ad3 100644 --- a/docs/schema/ClientPullChangesRequest.schema.json +++ b/docs/schema/ClientPullChangesRequest.schema.json @@ -34,6 +34,9 @@ }, "users": { "type": "string" + }, + "clientLevel": { + "type": "number" } }, "additionalProperties": false, diff --git a/docs/schema/README.md b/docs/schema/README.md index aca39b0..96b7abc 100644 --- a/docs/schema/README.md +++ b/docs/schema/README.md @@ -39,98 +39,98 @@ - [NewDeviceInfo](./signintofamilyrequest-properties-newdeviceinfo.md) – `https://timelimit.io/SignIntoFamilyRequest#/properties/parentDevice` - [NewDeviceInfo](./createfamilybymailtokenrequest-definitions-newdeviceinfo.md) – `https://timelimit.io/CreateFamilyByMailTokenRequest#/definitions/NewDeviceInfo` - [NewDeviceInfo](./createfamilybymailtokenrequest-properties-newdeviceinfo.md) – `https://timelimit.io/CreateFamilyByMailTokenRequest#/properties/parentDevice` -- [ParentPassword](./serializedparentaction-definitions-serializedsetchildpasswordaction-properties-parentpassword.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedSetChildPasswordAction/properties/newPassword` +- [ParentPassword](./createfamilybymailtokenrequest-definitions-parentpassword.md) – `https://timelimit.io/CreateFamilyByMailTokenRequest#/definitions/ParentPassword` - [ParentPassword](./createfamilybymailtokenrequest-properties-parentpassword.md) – `https://timelimit.io/CreateFamilyByMailTokenRequest#/properties/parentPassword` -- [ParentPassword](./recoverparentpasswordrequest-properties-parentpassword.md) – `https://timelimit.io/RecoverParentPasswordRequest#/properties/password` - [ParentPassword](./recoverparentpasswordrequest-definitions-parentpassword.md) – `https://timelimit.io/RecoverParentPasswordRequest#/definitions/ParentPassword` - [ParentPassword](./serializedparentaction-definitions-serializedsetchildpasswordaction-properties-parentpassword.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedSetChildPasswordAction/properties/newPassword` - [ParentPassword](./serializedparentaction-definitions-parentpassword.md) – `https://timelimit.io/SerializedParentAction#/definitions/ParentPassword` - [ParentPassword](./serializedparentaction-definitions-serializedadduseraction-properties-parentpassword.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedAddUserAction/properties/password` -- [ParentPassword](./createfamilybymailtokenrequest-definitions-parentpassword.md) – `https://timelimit.io/CreateFamilyByMailTokenRequest#/definitions/ParentPassword` +- [ParentPassword](./recoverparentpasswordrequest-properties-parentpassword.md) – `https://timelimit.io/RecoverParentPasswordRequest#/properties/password` +- [ParentPassword](./serializedchildaction-definitions-serializedchildchangepasswordaction-properties-parentpassword.md) – `https://timelimit.io/SerializedChildAction#/definitions/SerializedChildChangePasswordAction/properties/password` +- [ParentPassword](./serializedparentaction-definitions-serializedsetchildpasswordaction-properties-parentpassword.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedSetChildPasswordAction/properties/newPassword` - [ParentPassword](./serializedparentaction-definitions-serializedadduseraction-properties-parentpassword.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedAddUserAction/properties/password` - [ParentPassword](./serializedchildaction-definitions-parentpassword.md) – `https://timelimit.io/SerializedChildAction#/definitions/ParentPassword` - [ParentPassword](./serializedchildaction-definitions-serializedchildchangepasswordaction-properties-parentpassword.md) – `https://timelimit.io/SerializedChildAction#/definitions/SerializedChildChangePasswordAction/properties/password` -- [ParentPassword](./serializedchildaction-definitions-serializedchildchangepasswordaction-properties-parentpassword.md) – `https://timelimit.io/SerializedChildAction#/definitions/SerializedChildChangePasswordAction/properties/password` -- [SerialiezdTriedDisablingDeviceAdminAction](./serializedapplogicaction-definitions-serialiezdtrieddisablingdeviceadminaction.md) – `https://timelimit.io/SerializedAppLogicAction#/definitions/SerialiezdTriedDisablingDeviceAdminAction` - [SerialiezdTriedDisablingDeviceAdminAction](./serializedapplogicaction-anyof-serialiezdtrieddisablingdeviceadminaction.md) – `https://timelimit.io/SerializedAppLogicAction#/anyOf/5` -- [SerialiizedUpdateNetworkTimeVerificationAction](./serializedparentaction-anyof-serialiizedupdatenetworktimeverificationaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/35` +- [SerialiezdTriedDisablingDeviceAdminAction](./serializedapplogicaction-definitions-serialiezdtrieddisablingdeviceadminaction.md) – `https://timelimit.io/SerializedAppLogicAction#/definitions/SerialiezdTriedDisablingDeviceAdminAction` - [SerialiizedUpdateNetworkTimeVerificationAction](./serializedparentaction-definitions-serialiizedupdatenetworktimeverificationaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerialiizedUpdateNetworkTimeVerificationAction` +- [SerialiizedUpdateNetworkTimeVerificationAction](./serializedparentaction-anyof-serialiizedupdatenetworktimeverificationaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/35` - [SerializedAddCategoryAppsAction](./serializedparentaction-anyof-serializedaddcategoryappsaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/0` - [SerializedAddCategoryAppsAction](./serializedparentaction-definitions-serializedaddcategoryappsaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedAddCategoryAppsAction` - [SerializedAddInstalledAppsAction](./serializedapplogicaction-definitions-serializedaddinstalledappsaction.md) – `https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddInstalledAppsAction` - [SerializedAddInstalledAppsAction](./serializedapplogicaction-anyof-serializedaddinstalledappsaction.md) – `https://timelimit.io/SerializedAppLogicAction#/anyOf/0` -- [SerializedAddUsedTimeAction](./serializedapplogicaction-definitions-serializedaddusedtimeaction.md) – `https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddUsedTimeAction` - [SerializedAddUsedTimeAction](./serializedapplogicaction-anyof-serializedaddusedtimeaction.md) – `https://timelimit.io/SerializedAppLogicAction#/anyOf/1` -- [SerializedAddUsedTimeActionVersion2](./serializedapplogicaction-anyof-serializedaddusedtimeactionversion2.md) – `https://timelimit.io/SerializedAppLogicAction#/anyOf/2` +- [SerializedAddUsedTimeAction](./serializedapplogicaction-definitions-serializedaddusedtimeaction.md) – `https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddUsedTimeAction` - [SerializedAddUsedTimeActionVersion2](./serializedapplogicaction-definitions-serializedaddusedtimeactionversion2.md) – `https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddUsedTimeActionVersion2` +- [SerializedAddUsedTimeActionVersion2](./serializedapplogicaction-anyof-serializedaddusedtimeactionversion2.md) – `https://timelimit.io/SerializedAppLogicAction#/anyOf/2` - [SerializedAddUserAction](./serializedparentaction-anyof-serializedadduseraction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/1` - [SerializedAddUserAction](./serializedparentaction-definitions-serializedadduseraction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedAddUserAction` - [SerializedAppActivityItem](./serverdatastatus-definitions-serverinstalledappsdata-properties-activities-serializedappactivityitem.md) – `https://timelimit.io/ServerDataStatus#/definitions/ServerInstalledAppsData/properties/activities/items` -- [SerializedAppActivityItem](./serializedapplogicaction-definitions-serializedupdateappactivitiesaction-properties-updatedoradded-serializedappactivityitem.md) – `https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedUpdateAppActivitiesAction/properties/updatedOrAdded/items` +- [SerializedAppActivityItem](./serializedapplogicaction-definitions-serializedappactivityitem.md) – `https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAppActivityItem` - [SerializedAppActivityItem](./serverdatastatus-definitions-serverinstalledappsdata-properties-activities-serializedappactivityitem.md) – `https://timelimit.io/ServerDataStatus#/definitions/ServerInstalledAppsData/properties/activities/items` - [SerializedAppActivityItem](./serverdatastatus-definitions-serializedappactivityitem.md) – `https://timelimit.io/ServerDataStatus#/definitions/SerializedAppActivityItem` - [SerializedAppActivityItem](./serializedapplogicaction-definitions-serializedupdateappactivitiesaction-properties-updatedoradded-serializedappactivityitem.md) – `https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedUpdateAppActivitiesAction/properties/updatedOrAdded/items` -- [SerializedAppActivityItem](./serializedapplogicaction-definitions-serializedappactivityitem.md) – `https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAppActivityItem` +- [SerializedAppActivityItem](./serializedapplogicaction-definitions-serializedupdateappactivitiesaction-properties-updatedoradded-serializedappactivityitem.md) – `https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedUpdateAppActivitiesAction/properties/updatedOrAdded/items` - [SerializedChangeParentPasswordAction](./serializedparentaction-anyof-serializedchangeparentpasswordaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/2` - [SerializedChangeParentPasswordAction](./serializedparentaction-definitions-serializedchangeparentpasswordaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedChangeParentPasswordAction` -- [SerializedChildChangePasswordAction](./serializedchildaction-definitions-serializedchildchangepasswordaction.md) – `https://timelimit.io/SerializedChildAction#/definitions/SerializedChildChangePasswordAction` - [SerializedChildChangePasswordAction](./serializedchildaction-anyof-serializedchildchangepasswordaction.md) – `https://timelimit.io/SerializedChildAction#/anyOf/0` +- [SerializedChildChangePasswordAction](./serializedchildaction-definitions-serializedchildchangepasswordaction.md) – `https://timelimit.io/SerializedChildAction#/definitions/SerializedChildChangePasswordAction` - [SerializedChildSignInAction](./serializedchildaction-definitions-serializedchildsigninaction.md) – `https://timelimit.io/SerializedChildAction#/definitions/SerializedChildSignInAction` - [SerializedChildSignInAction](./serializedchildaction-anyof-serializedchildsigninaction.md) – `https://timelimit.io/SerializedChildAction#/anyOf/1` -- [SerializedCreateCategoryAction](./serializedparentaction-anyof-serializedcreatecategoryaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/3` - [SerializedCreateCategoryAction](./serializedparentaction-definitions-serializedcreatecategoryaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedCreateCategoryAction` -- [SerializedCreateTimelimtRuleAction](./serializedparentaction-anyof-serializedcreatetimelimtruleaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/4` +- [SerializedCreateCategoryAction](./serializedparentaction-anyof-serializedcreatecategoryaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/3` - [SerializedCreateTimelimtRuleAction](./serializedparentaction-definitions-serializedcreatetimelimtruleaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedCreateTimelimtRuleAction` +- [SerializedCreateTimelimtRuleAction](./serializedparentaction-anyof-serializedcreatetimelimtruleaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/4` - [SerializedDeleteCategoryAction](./serializedparentaction-anyof-serializeddeletecategoryaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/5` - [SerializedDeleteCategoryAction](./serializedparentaction-definitions-serializeddeletecategoryaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedDeleteCategoryAction` - [SerializedDeleteTimeLimitRuleAction](./serializedparentaction-anyof-serializeddeletetimelimitruleaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/6` - [SerializedDeleteTimeLimitRuleAction](./serializedparentaction-definitions-serializeddeletetimelimitruleaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedDeleteTimeLimitRuleAction` - [SerializedIgnoreManipulationAction](./serializedparentaction-anyof-serializedignoremanipulationaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/7` - [SerializedIgnoreManipulationAction](./serializedparentaction-definitions-serializedignoremanipulationaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedIgnoreManipulationAction` -- [SerializedIncrementCategoryExtraTimeAction](./serializedparentaction-anyof-serializedincrementcategoryextratimeaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/8` - [SerializedIncrementCategoryExtraTimeAction](./serializedparentaction-definitions-serializedincrementcategoryextratimeaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedIncrementCategoryExtraTimeAction` -- [SerializedInstalledApp](./serializedapplogicaction-definitions-serializedinstalledapp.md) – `https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedInstalledApp` +- [SerializedIncrementCategoryExtraTimeAction](./serializedparentaction-anyof-serializedincrementcategoryextratimeaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/8` +- [SerializedInstalledApp](./serverdatastatus-definitions-serverinstalledappsdata-properties-apps-serializedinstalledapp.md) – `https://timelimit.io/ServerDataStatus#/definitions/ServerInstalledAppsData/properties/apps/items` +- [SerializedInstalledApp](./serializedapplogicaction-definitions-serializedaddinstalledappsaction-properties-apps-serializedinstalledapp.md) – `https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddInstalledAppsAction/properties/apps/items` +- [SerializedInstalledApp](./serializedapplogicaction-definitions-serializedaddinstalledappsaction-properties-apps-serializedinstalledapp.md) – `https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddInstalledAppsAction/properties/apps/items` - [SerializedInstalledApp](./serverdatastatus-definitions-serializedinstalledapp.md) – `https://timelimit.io/ServerDataStatus#/definitions/SerializedInstalledApp` -- [SerializedInstalledApp](./serializedapplogicaction-definitions-serializedaddinstalledappsaction-properties-apps-serializedinstalledapp.md) – `https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddInstalledAppsAction/properties/apps/items` -- [SerializedInstalledApp](./serializedapplogicaction-definitions-serializedaddinstalledappsaction-properties-apps-serializedinstalledapp.md) – `https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddInstalledAppsAction/properties/apps/items` - [SerializedInstalledApp](./serverdatastatus-definitions-serverinstalledappsdata-properties-apps-serializedinstalledapp.md) – `https://timelimit.io/ServerDataStatus#/definitions/ServerInstalledAppsData/properties/apps/items` -- [SerializedInstalledApp](./serverdatastatus-definitions-serverinstalledappsdata-properties-apps-serializedinstalledapp.md) – `https://timelimit.io/ServerDataStatus#/definitions/ServerInstalledAppsData/properties/apps/items` -- [SerializedRemoveCategoryAppsAction](./serializedparentaction-anyof-serializedremovecategoryappsaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/9` +- [SerializedInstalledApp](./serializedapplogicaction-definitions-serializedinstalledapp.md) – `https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedInstalledApp` - [SerializedRemoveCategoryAppsAction](./serializedparentaction-definitions-serializedremovecategoryappsaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedRemoveCategoryAppsAction` -- [SerializedRemoveInstalledAppsAction](./serializedapplogicaction-definitions-serializedremoveinstalledappsaction.md) – `https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedRemoveInstalledAppsAction` +- [SerializedRemoveCategoryAppsAction](./serializedparentaction-anyof-serializedremovecategoryappsaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/9` - [SerializedRemoveInstalledAppsAction](./serializedapplogicaction-anyof-serializedremoveinstalledappsaction.md) – `https://timelimit.io/SerializedAppLogicAction#/anyOf/3` +- [SerializedRemoveInstalledAppsAction](./serializedapplogicaction-definitions-serializedremoveinstalledappsaction.md) – `https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedRemoveInstalledAppsAction` - [SerializedRemoveUserAction](./serializedparentaction-definitions-serializedremoveuseraction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedRemoveUserAction` - [SerializedRemoveUserAction](./serializedparentaction-anyof-serializedremoveuseraction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/10` - [SerializedRenameChildAction](./serializedparentaction-definitions-serializedrenamechildaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedRenameChildAction` - [SerializedRenameChildAction](./serializedparentaction-anyof-serializedrenamechildaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/11` -- [SerializedResetParentBlockedTimesAction](./serializedparentaction-anyof-serializedresetparentblockedtimesaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/12` - [SerializedResetParentBlockedTimesAction](./serializedparentaction-definitions-serializedresetparentblockedtimesaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedResetParentBlockedTimesAction` -- [SerializedSetCategoryExtraTimeAction](./serializedparentaction-definitions-serializedsetcategoryextratimeaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedSetCategoryExtraTimeAction` +- [SerializedResetParentBlockedTimesAction](./serializedparentaction-anyof-serializedresetparentblockedtimesaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/12` - [SerializedSetCategoryExtraTimeAction](./serializedparentaction-anyof-serializedsetcategoryextratimeaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/13` -- [SerializedSetCategoryForUnassignedAppsAction](./serializedparentaction-definitions-serializedsetcategoryforunassignedappsaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedSetCategoryForUnassignedAppsAction` +- [SerializedSetCategoryExtraTimeAction](./serializedparentaction-definitions-serializedsetcategoryextratimeaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedSetCategoryExtraTimeAction` - [SerializedSetCategoryForUnassignedAppsAction](./serializedparentaction-anyof-serializedsetcategoryforunassignedappsaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/14` +- [SerializedSetCategoryForUnassignedAppsAction](./serializedparentaction-definitions-serializedsetcategoryforunassignedappsaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedSetCategoryForUnassignedAppsAction` - [SerializedSetChildPasswordAction](./serializedparentaction-anyof-serializedsetchildpasswordaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/15` - [SerializedSetChildPasswordAction](./serializedparentaction-definitions-serializedsetchildpasswordaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedSetChildPasswordAction` -- [SerializedSetConsiderRebootManipulationAction](./serializedparentaction-definitions-serializedsetconsiderrebootmanipulationaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedSetConsiderRebootManipulationAction` - [SerializedSetConsiderRebootManipulationAction](./serializedparentaction-anyof-serializedsetconsiderrebootmanipulationaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/16` -- [SerializedSetDeviceDefaultUserAction](./serializedparentaction-anyof-serializedsetdevicedefaultuseraction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/17` +- [SerializedSetConsiderRebootManipulationAction](./serializedparentaction-definitions-serializedsetconsiderrebootmanipulationaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedSetConsiderRebootManipulationAction` - [SerializedSetDeviceDefaultUserAction](./serializedparentaction-definitions-serializedsetdevicedefaultuseraction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedSetDeviceDefaultUserAction` +- [SerializedSetDeviceDefaultUserAction](./serializedparentaction-anyof-serializedsetdevicedefaultuseraction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/17` - [SerializedSetDeviceDefaultUserTimeoutAction](./serializedparentaction-definitions-serializedsetdevicedefaultusertimeoutaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedSetDeviceDefaultUserTimeoutAction` - [SerializedSetDeviceDefaultUserTimeoutAction](./serializedparentaction-anyof-serializedsetdevicedefaultusertimeoutaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/18` -- [SerializedSetDeviceUserAction](./serializedparentaction-definitions-serializedsetdeviceuseraction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedSetDeviceUserAction` - [SerializedSetDeviceUserAction](./serializedparentaction-anyof-serializedsetdeviceuseraction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/19` -- [SerializedSetKeepSignedInAction](./serializedparentaction-definitions-serializedsetkeepsignedinaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedSetKeepSignedInAction` +- [SerializedSetDeviceUserAction](./serializedparentaction-definitions-serializedsetdeviceuseraction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedSetDeviceUserAction` - [SerializedSetKeepSignedInAction](./serializedparentaction-anyof-serializedsetkeepsignedinaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/20` -- [SerializedSetParentCategoryAction](./serializedparentaction-anyof-serializedsetparentcategoryaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/21` +- [SerializedSetKeepSignedInAction](./serializedparentaction-definitions-serializedsetkeepsignedinaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedSetKeepSignedInAction` - [SerializedSetParentCategoryAction](./serializedparentaction-definitions-serializedsetparentcategoryaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedSetParentCategoryAction` +- [SerializedSetParentCategoryAction](./serializedparentaction-anyof-serializedsetparentcategoryaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/21` - [SerializedSetRelaxPrimaryDeviceAction](./serializedparentaction-definitions-serializedsetrelaxprimarydeviceaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedSetRelaxPrimaryDeviceAction` - [SerializedSetRelaxPrimaryDeviceAction](./serializedparentaction-anyof-serializedsetrelaxprimarydeviceaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/22` -- [SerializedSetSendDeviceConnected](./serializedparentaction-anyof-serializedsetsenddeviceconnected.md) – `https://timelimit.io/SerializedParentAction#/anyOf/23` - [SerializedSetSendDeviceConnected](./serializedparentaction-definitions-serializedsetsenddeviceconnected.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedSetSendDeviceConnected` -- [SerializedSetUserDisableLimitsUntilAction](./serializedparentaction-anyof-serializedsetuserdisablelimitsuntilaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/24` +- [SerializedSetSendDeviceConnected](./serializedparentaction-anyof-serializedsetsenddeviceconnected.md) – `https://timelimit.io/SerializedParentAction#/anyOf/23` - [SerializedSetUserDisableLimitsUntilAction](./serializedparentaction-definitions-serializedsetuserdisablelimitsuntilaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedSetUserDisableLimitsUntilAction` -- [SerializedSetUserTimezoneAction](./serializedparentaction-anyof-serializedsetusertimezoneaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/25` +- [SerializedSetUserDisableLimitsUntilAction](./serializedparentaction-anyof-serializedsetuserdisablelimitsuntilaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/24` - [SerializedSetUserTimezoneAction](./serializedparentaction-definitions-serializedsetusertimezoneaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedSetUserTimezoneAction` +- [SerializedSetUserTimezoneAction](./serializedparentaction-anyof-serializedsetusertimezoneaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/25` - [SerializedSignOutAtDeviceAction](./serializedapplogicaction-definitions-serializedsignoutatdeviceaction.md) – `https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedSignOutAtDeviceAction` - [SerializedSignOutAtDeviceAction](./serializedapplogicaction-anyof-serializedsignoutatdeviceaction.md) – `https://timelimit.io/SerializedAppLogicAction#/anyOf/4` - [SerializedTimeLimitRule](./serializedparentaction-definitions-serializedtimelimitrule.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedTimeLimitRule` @@ -138,30 +138,30 @@ - [SerializedTimeLimitRule](./serializedparentaction-definitions-serializedcreatetimelimtruleaction-properties-serializedtimelimitrule.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedCreateTimelimtRuleAction/properties/rule` - [SerializedUpdateAppActivitiesAction](./serializedapplogicaction-anyof-serializedupdateappactivitiesaction.md) – `https://timelimit.io/SerializedAppLogicAction#/anyOf/6` - [SerializedUpdateAppActivitiesAction](./serializedapplogicaction-definitions-serializedupdateappactivitiesaction.md) – `https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedUpdateAppActivitiesAction` -- [SerializedUpdateCategoryBatteryLimitAction](./serializedparentaction-definitions-serializedupdatecategorybatterylimitaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedUpdateCategoryBatteryLimitAction` - [SerializedUpdateCategoryBatteryLimitAction](./serializedparentaction-anyof-serializedupdatecategorybatterylimitaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/26` +- [SerializedUpdateCategoryBatteryLimitAction](./serializedparentaction-definitions-serializedupdatecategorybatterylimitaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedUpdateCategoryBatteryLimitAction` - [SerializedUpdateCategoryBlockAllNotificationsAction](./serializedparentaction-anyof-serializedupdatecategoryblockallnotificationsaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/27` - [SerializedUpdateCategoryBlockAllNotificationsAction](./serializedparentaction-definitions-serializedupdatecategoryblockallnotificationsaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedUpdateCategoryBlockAllNotificationsAction` - [SerializedUpdateCategoryBlockedTimesAction](./serializedparentaction-anyof-serializedupdatecategoryblockedtimesaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/28` - [SerializedUpdateCategoryBlockedTimesAction](./serializedparentaction-definitions-serializedupdatecategoryblockedtimesaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedUpdateCategoryBlockedTimesAction` - [SerializedUpdateCategorySortingAction](./serializedparentaction-definitions-serializedupdatecategorysortingaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedUpdateCategorySortingAction` - [SerializedUpdateCategorySortingAction](./serializedparentaction-anyof-serializedupdatecategorysortingaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/29` -- [SerializedUpdateCategoryTemporarilyBlockedAction](./serializedparentaction-anyof-serializedupdatecategorytemporarilyblockedaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/30` - [SerializedUpdateCategoryTemporarilyBlockedAction](./serializedparentaction-definitions-serializedupdatecategorytemporarilyblockedaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedUpdateCategoryTemporarilyBlockedAction` -- [SerializedUpdateCategoryTimeWarningsAction](./serializedparentaction-anyof-serializedupdatecategorytimewarningsaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/31` +- [SerializedUpdateCategoryTemporarilyBlockedAction](./serializedparentaction-anyof-serializedupdatecategorytemporarilyblockedaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/30` - [SerializedUpdateCategoryTimeWarningsAction](./serializedparentaction-definitions-serializedupdatecategorytimewarningsaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedUpdateCategoryTimeWarningsAction` +- [SerializedUpdateCategoryTimeWarningsAction](./serializedparentaction-anyof-serializedupdatecategorytimewarningsaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/31` - [SerializedUpdateCategoryTitleAction](./serializedparentaction-definitions-serializedupdatecategorytitleaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedUpdateCategoryTitleAction` - [SerializedUpdateCategoryTitleAction](./serializedparentaction-anyof-serializedupdatecategorytitleaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/32` -- [SerializedUpdateDeviceNameAction](./serializedparentaction-anyof-serializedupdatedevicenameaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/33` - [SerializedUpdateDeviceNameAction](./serializedparentaction-definitions-serializedupdatedevicenameaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedUpdateDeviceNameAction` +- [SerializedUpdateDeviceNameAction](./serializedparentaction-anyof-serializedupdatedevicenameaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/33` - [SerializedUpdateDeviceStatusAction](./serializedapplogicaction-definitions-serializedupdatedevicestatusaction.md) – `https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedUpdateDeviceStatusAction` - [SerializedUpdateDeviceStatusAction](./serializedapplogicaction-anyof-serializedupdatedevicestatusaction.md) – `https://timelimit.io/SerializedAppLogicAction#/anyOf/7` -- [SerializedUpdateEnableActivityLevelBlockingAction](./serializedparentaction-anyof-serializedupdateenableactivitylevelblockingaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/34` - [SerializedUpdateEnableActivityLevelBlockingAction](./serializedparentaction-definitions-serializedupdateenableactivitylevelblockingaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedUpdateEnableActivityLevelBlockingAction` +- [SerializedUpdateEnableActivityLevelBlockingAction](./serializedparentaction-anyof-serializedupdateenableactivitylevelblockingaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/34` - [SerializedUpdateParentBlockedTimesAction](./serializedparentaction-anyof-serializedupdateparentblockedtimesaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/36` - [SerializedUpdateParentBlockedTimesAction](./serializedparentaction-definitions-serializedupdateparentblockedtimesaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedUpdateParentBlockedTimesAction` -- [SerializedUpdateParentNotificationFlagsAction](./serializedparentaction-anyof-serializedupdateparentnotificationflagsaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/37` - [SerializedUpdateParentNotificationFlagsAction](./serializedparentaction-definitions-serializedupdateparentnotificationflagsaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedUpdateParentNotificationFlagsAction` +- [SerializedUpdateParentNotificationFlagsAction](./serializedparentaction-anyof-serializedupdateparentnotificationflagsaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/37` - [SerializedUpdateTimelimitRuleAction](./serializedparentaction-definitions-serializedupdatetimelimitruleaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedUpdateTimelimitRuleAction` - [SerializedUpdateTimelimitRuleAction](./serializedparentaction-anyof-serializedupdatetimelimitruleaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/38` - [ServerDeviceData](./serverdatastatus-definitions-serverdevicelist-properties-data-serverdevicedata.md) – `https://timelimit.io/ServerDataStatus#/definitions/ServerDeviceList/properties/data/items` @@ -169,8 +169,11 @@ - [ServerDeviceData](./serverdatastatus-definitions-serverdevicedata.md) – `https://timelimit.io/ServerDataStatus#/definitions/ServerDeviceData` - [ServerDeviceList](./serverdatastatus-properties-serverdevicelist.md) – `https://timelimit.io/ServerDataStatus#/properties/devices` - [ServerDeviceList](./serverdatastatus-definitions-serverdevicelist.md) – `https://timelimit.io/ServerDataStatus#/definitions/ServerDeviceList` -- [ServerInstalledAppsData](./serverdatastatus-properties-apps-serverinstalledappsdata.md) – `https://timelimit.io/ServerDataStatus#/properties/apps/items` - [ServerInstalledAppsData](./serverdatastatus-definitions-serverinstalledappsdata.md) – `https://timelimit.io/ServerDataStatus#/definitions/ServerInstalledAppsData` +- [ServerInstalledAppsData](./serverdatastatus-properties-apps-serverinstalledappsdata.md) – `https://timelimit.io/ServerDataStatus#/properties/apps/items` +- [ServerSessionDurationItem](./serverdatastatus-definitions-serverupdatedcategoryusedtimes-properties-sessiondurations-serversessiondurationitem.md) – `https://timelimit.io/ServerDataStatus#/definitions/ServerUpdatedCategoryUsedTimes/properties/sessionDurations/items` +- [ServerSessionDurationItem](./serverdatastatus-definitions-serversessiondurationitem.md) – `https://timelimit.io/ServerDataStatus#/definitions/ServerSessionDurationItem` +- [ServerSessionDurationItem](./serverdatastatus-definitions-serverupdatedcategoryusedtimes-properties-sessiondurations-serversessiondurationitem.md) – `https://timelimit.io/ServerDataStatus#/definitions/ServerUpdatedCategoryUsedTimes/properties/sessionDurations/items` - [ServerTimeLimitRule](./serverdatastatus-definitions-serverupdatedtimelimitrules-properties-rules-servertimelimitrule.md) – `https://timelimit.io/ServerDataStatus#/definitions/ServerUpdatedTimeLimitRules/properties/rules/items` - [ServerTimeLimitRule](./serverdatastatus-definitions-serverupdatedtimelimitrules-properties-rules-servertimelimitrule.md) – `https://timelimit.io/ServerDataStatus#/definitions/ServerUpdatedTimeLimitRules/properties/rules/items` - [ServerTimeLimitRule](./serverdatastatus-definitions-servertimelimitrule.md) – `https://timelimit.io/ServerDataStatus#/definitions/ServerTimeLimitRule` @@ -178,22 +181,22 @@ - [ServerUpdatedCategoryAssignedApps](./serverdatastatus-properties-categoryapp-serverupdatedcategoryassignedapps.md) – `https://timelimit.io/ServerDataStatus#/properties/categoryApp/items` - [ServerUpdatedCategoryBaseData](./serverdatastatus-definitions-serverupdatedcategorybasedata.md) – `https://timelimit.io/ServerDataStatus#/definitions/ServerUpdatedCategoryBaseData` - [ServerUpdatedCategoryBaseData](./serverdatastatus-properties-categorybase-serverupdatedcategorybasedata.md) – `https://timelimit.io/ServerDataStatus#/properties/categoryBase/items` -- [ServerUpdatedCategoryUsedTimes](./serverdatastatus-properties-usedtimes-serverupdatedcategoryusedtimes.md) – `https://timelimit.io/ServerDataStatus#/properties/usedTimes/items` - [ServerUpdatedCategoryUsedTimes](./serverdatastatus-definitions-serverupdatedcategoryusedtimes.md) – `https://timelimit.io/ServerDataStatus#/definitions/ServerUpdatedCategoryUsedTimes` +- [ServerUpdatedCategoryUsedTimes](./serverdatastatus-properties-usedtimes-serverupdatedcategoryusedtimes.md) – `https://timelimit.io/ServerDataStatus#/properties/usedTimes/items` - [ServerUpdatedTimeLimitRules](./serverdatastatus-properties-rules-serverupdatedtimelimitrules.md) – `https://timelimit.io/ServerDataStatus#/properties/rules/items` - [ServerUpdatedTimeLimitRules](./serverdatastatus-definitions-serverupdatedtimelimitrules.md) – `https://timelimit.io/ServerDataStatus#/definitions/ServerUpdatedTimeLimitRules` -- [ServerUsedTimeItem](./serverdatastatus-definitions-serverupdatedcategoryusedtimes-properties-times-serverusedtimeitem.md) – `https://timelimit.io/ServerDataStatus#/definitions/ServerUpdatedCategoryUsedTimes/properties/times/items` -- [ServerUsedTimeItem](./serverdatastatus-definitions-serverupdatedcategoryusedtimes-properties-times-serverusedtimeitem.md) – `https://timelimit.io/ServerDataStatus#/definitions/ServerUpdatedCategoryUsedTimes/properties/times/items` - [ServerUsedTimeItem](./serverdatastatus-definitions-serverusedtimeitem.md) – `https://timelimit.io/ServerDataStatus#/definitions/ServerUsedTimeItem` -- [ServerUserEntry](./serverdatastatus-definitions-serveruserentry.md) – `https://timelimit.io/ServerDataStatus#/definitions/ServerUserEntry` +- [ServerUsedTimeItem](./serverdatastatus-definitions-serverupdatedcategoryusedtimes-properties-times-serverusedtimeitem.md) – `https://timelimit.io/ServerDataStatus#/definitions/ServerUpdatedCategoryUsedTimes/properties/times/items` +- [ServerUsedTimeItem](./serverdatastatus-definitions-serverupdatedcategoryusedtimes-properties-times-serverusedtimeitem.md) – `https://timelimit.io/ServerDataStatus#/definitions/ServerUpdatedCategoryUsedTimes/properties/times/items` - [ServerUserEntry](./serverdatastatus-definitions-serveruserlist-properties-data-serveruserentry.md) – `https://timelimit.io/ServerDataStatus#/definitions/ServerUserList/properties/data/items` +- [ServerUserEntry](./serverdatastatus-definitions-serveruserentry.md) – `https://timelimit.io/ServerDataStatus#/definitions/ServerUserEntry` - [ServerUserEntry](./serverdatastatus-definitions-serveruserlist-properties-data-serveruserentry.md) – `https://timelimit.io/ServerDataStatus#/definitions/ServerUserList/properties/data/items` - [ServerUserList](./serverdatastatus-properties-serveruserlist.md) – `https://timelimit.io/ServerDataStatus#/properties/users` - [ServerUserList](./serverdatastatus-definitions-serveruserlist.md) – `https://timelimit.io/ServerDataStatus#/definitions/ServerUserList` - [Untitled object in ClientPullChangesRequest](./clientpullchangesrequest-definitions-clientdatastatus-properties-categories.md) – `https://timelimit.io/ClientPullChangesRequest#/definitions/ClientDataStatus/properties/categories` - [Untitled object in ClientPullChangesRequest](./clientpullchangesrequest-definitions-clientdatastatus-properties-apps.md) – `https://timelimit.io/ClientPullChangesRequest#/definitions/ClientDataStatus/properties/apps` -- [Untitled object in ClientPullChangesRequest](./clientpullchangesrequest-definitions-clientdatastatus-properties-apps.md) – `https://timelimit.io/ClientPullChangesRequest#/definitions/ClientDataStatus/properties/apps` - [Untitled object in ClientPullChangesRequest](./clientpullchangesrequest-definitions-clientdatastatus-properties-categories.md) – `https://timelimit.io/ClientPullChangesRequest#/definitions/ClientDataStatus/properties/categories` +- [Untitled object in ClientPullChangesRequest](./clientpullchangesrequest-definitions-clientdatastatus-properties-apps.md) – `https://timelimit.io/ClientPullChangesRequest#/definitions/ClientDataStatus/properties/apps` - [Untitled object in ClientPushChangesRequest](./clientpushchangesrequest-properties-actions-items.md) – `https://timelimit.io/ClientPushChangesRequest#/properties/actions/items` - [Untitled object in SerializedAppLogicAction](./serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items.md) – `https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddUsedTimeActionVersion2/properties/i/items` - [Untitled object in SerializedAppLogicAction](./serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items.md) – `https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddUsedTimeActionVersion2/properties/i/items` @@ -202,25 +205,33 @@ - [Untitled array in ClientPushChangesRequest](./clientpushchangesrequest-properties-actions.md) – `https://timelimit.io/ClientPushChangesRequest#/properties/actions` - [Untitled array in SerializedAppLogicAction](./serializedapplogicaction-definitions-serializedaddinstalledappsaction-properties-apps.md) – `https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddInstalledAppsAction/properties/apps` +- [Untitled array in SerializedAppLogicAction](./serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-as.md) – `https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddUsedTimeActionVersion2/properties/i/items/properties/as` +- [Untitled array in SerializedAppLogicAction](./serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-as-items.md) – `https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddUsedTimeActionVersion2/properties/i/items/properties/as/items` +- [Untitled array in SerializedAppLogicAction](./serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-sdl.md) – `https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddUsedTimeActionVersion2/properties/i/items/properties/sdl` +- [Untitled array in SerializedAppLogicAction](./serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-sdl-items.md) – `https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddUsedTimeActionVersion2/properties/i/items/properties/sdl/items` +- [Untitled array in SerializedAppLogicAction](./serializedapplogicaction-definitions-serializedremoveinstalledappsaction-properties-packagenames.md) – `https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedRemoveInstalledAppsAction/properties/packageNames` +- [Untitled array in SerializedAppLogicAction](./serializedapplogicaction-definitions-serializedupdateappactivitiesaction-properties-removed.md) – `https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedUpdateAppActivitiesAction/properties/removed` +- [Untitled array in SerializedAppLogicAction](./serializedapplogicaction-definitions-serializedupdateappactivitiesaction-properties-removed-items.md) – `https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedUpdateAppActivitiesAction/properties/removed/items` +- [Untitled array in SerializedAppLogicAction](./serializedapplogicaction-definitions-serializedupdateappactivitiesaction-properties-updatedoradded.md) – `https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedUpdateAppActivitiesAction/properties/updatedOrAdded` +- [Untitled array in SerializedAppLogicAction](./serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i.md) – `https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddUsedTimeActionVersion2/properties/i` +- [Untitled array in SerializedAppLogicAction](./serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i.md) – `https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddUsedTimeActionVersion2/properties/i` +- [Untitled array in SerializedAppLogicAction](./serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-as.md) – `https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddUsedTimeActionVersion2/properties/i/items/properties/as` +- [Untitled array in SerializedAppLogicAction](./serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-as-items.md) – `https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddUsedTimeActionVersion2/properties/i/items/properties/as/items` +- [Untitled array in SerializedAppLogicAction](./serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-sdl.md) – `https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddUsedTimeActionVersion2/properties/i/items/properties/sdl` +- [Untitled array in SerializedAppLogicAction](./serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-sdl-items.md) – `https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddUsedTimeActionVersion2/properties/i/items/properties/sdl/items` - [Untitled array in SerializedAppLogicAction](./serializedapplogicaction-definitions-serializedremoveinstalledappsaction-properties-packagenames.md) – `https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedRemoveInstalledAppsAction/properties/packageNames` - [Untitled array in SerializedAppLogicAction](./serializedapplogicaction-definitions-serializedupdateappactivitiesaction-properties-removed.md) – `https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedUpdateAppActivitiesAction/properties/removed` - [Untitled array in SerializedAppLogicAction](./serializedapplogicaction-definitions-serializedupdateappactivitiesaction-properties-removed-items.md) – `https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedUpdateAppActivitiesAction/properties/removed/items` - [Untitled array in SerializedAppLogicAction](./serializedapplogicaction-definitions-serializedupdateappactivitiesaction-properties-updatedoradded.md) – `https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedUpdateAppActivitiesAction/properties/updatedOrAdded` - [Untitled array in SerializedAppLogicAction](./serializedapplogicaction-definitions-serializedaddinstalledappsaction-properties-apps.md) – `https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddInstalledAppsAction/properties/apps` -- [Untitled array in SerializedAppLogicAction](./serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i.md) – `https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddUsedTimeActionVersion2/properties/i` -- [Untitled array in SerializedAppLogicAction](./serializedapplogicaction-definitions-serializedremoveinstalledappsaction-properties-packagenames.md) – `https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedRemoveInstalledAppsAction/properties/packageNames` -- [Untitled array in SerializedAppLogicAction](./serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i.md) – `https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddUsedTimeActionVersion2/properties/i` -- [Untitled array in SerializedAppLogicAction](./serializedapplogicaction-definitions-serializedupdateappactivitiesaction-properties-removed-items.md) – `https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedUpdateAppActivitiesAction/properties/removed/items` -- [Untitled array in SerializedAppLogicAction](./serializedapplogicaction-definitions-serializedupdateappactivitiesaction-properties-updatedoradded.md) – `https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedUpdateAppActivitiesAction/properties/updatedOrAdded` -- [Untitled array in SerializedAppLogicAction](./serializedapplogicaction-definitions-serializedupdateappactivitiesaction-properties-removed.md) – `https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedUpdateAppActivitiesAction/properties/removed` - [Untitled array in SerializedParentAction](./serializedparentaction-definitions-serializedaddcategoryappsaction-properties-packagenames.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedAddCategoryAppsAction/properties/packageNames` - [Untitled array in SerializedParentAction](./serializedparentaction-definitions-serializedremovecategoryappsaction-properties-packagenames.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedRemoveCategoryAppsAction/properties/packageNames` - [Untitled array in SerializedParentAction](./serializedparentaction-definitions-serializedupdatecategorysortingaction-properties-categoryids.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedUpdateCategorySortingAction/properties/categoryIds` - [Untitled array in SerializedParentAction](./serializedparentaction-definitions-serializedaddcategoryappsaction-properties-packagenames.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedAddCategoryAppsAction/properties/packageNames` - [Untitled array in SerializedParentAction](./serializedparentaction-definitions-serializedremovecategoryappsaction-properties-packagenames.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedRemoveCategoryAppsAction/properties/packageNames` - [Untitled array in SerializedParentAction](./serializedparentaction-definitions-serializedupdatecategorysortingaction-properties-categoryids.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedUpdateCategorySortingAction/properties/categoryIds` -- [Untitled array in ServerDataStatus](./serverdatastatus-definitions-serveruserlist-properties-data.md) – `https://timelimit.io/ServerDataStatus#/definitions/ServerUserList/properties/data` -- [Untitled array in ServerDataStatus](./serverdatastatus-properties-apps.md) – `https://timelimit.io/ServerDataStatus#/properties/apps` +- [Untitled array in ServerDataStatus](./serverdatastatus-properties-rules.md) – `https://timelimit.io/ServerDataStatus#/properties/rules` +- [Untitled array in ServerDataStatus](./serverdatastatus-definitions-serverdevicelist-properties-data.md) – `https://timelimit.io/ServerDataStatus#/definitions/ServerDeviceList/properties/data` - [Untitled array in ServerDataStatus](./serverdatastatus-definitions-serverinstalledappsdata-properties-apps.md) – `https://timelimit.io/ServerDataStatus#/definitions/ServerInstalledAppsData/properties/apps` - [Untitled array in ServerDataStatus](./serverdatastatus-definitions-serverinstalledappsdata-properties-activities.md) – `https://timelimit.io/ServerDataStatus#/definitions/ServerInstalledAppsData/properties/activities` - [Untitled array in ServerDataStatus](./serverdatastatus-properties-rmcategories.md) – `https://timelimit.io/ServerDataStatus#/properties/rmCategories` @@ -229,7 +240,8 @@ - [Untitled array in ServerDataStatus](./serverdatastatus-definitions-serverupdatedcategoryassignedapps-properties-apps.md) – `https://timelimit.io/ServerDataStatus#/definitions/ServerUpdatedCategoryAssignedApps/properties/apps` - [Untitled array in ServerDataStatus](./serverdatastatus-properties-usedtimes.md) – `https://timelimit.io/ServerDataStatus#/properties/usedTimes` - [Untitled array in ServerDataStatus](./serverdatastatus-definitions-serverupdatedcategoryusedtimes-properties-times.md) – `https://timelimit.io/ServerDataStatus#/definitions/ServerUpdatedCategoryUsedTimes/properties/times` -- [Untitled array in ServerDataStatus](./serverdatastatus-properties-rules.md) – `https://timelimit.io/ServerDataStatus#/properties/rules` +- [Untitled array in ServerDataStatus](./serverdatastatus-definitions-serverupdatedcategoryusedtimes-properties-sessiondurations.md) – `https://timelimit.io/ServerDataStatus#/definitions/ServerUpdatedCategoryUsedTimes/properties/sessionDurations` +- [Untitled array in ServerDataStatus](./serverdatastatus-properties-apps.md) – `https://timelimit.io/ServerDataStatus#/properties/apps` - [Untitled array in ServerDataStatus](./serverdatastatus-definitions-serverupdatedtimelimitrules-properties-rules.md) – `https://timelimit.io/ServerDataStatus#/definitions/ServerUpdatedTimeLimitRules/properties/rules` - [Untitled array in ServerDataStatus](./serverdatastatus-definitions-serveruserlist-properties-data.md) – `https://timelimit.io/ServerDataStatus#/definitions/ServerUserList/properties/data` - [Untitled array in ServerDataStatus](./serverdatastatus-definitions-serverdevicelist-properties-data.md) – `https://timelimit.io/ServerDataStatus#/definitions/ServerDeviceList/properties/data` @@ -237,8 +249,9 @@ - [Untitled array in ServerDataStatus](./serverdatastatus-definitions-serverinstalledappsdata-properties-activities.md) – `https://timelimit.io/ServerDataStatus#/definitions/ServerInstalledAppsData/properties/activities` - [Untitled array in ServerDataStatus](./serverdatastatus-definitions-serverupdatedcategoryassignedapps-properties-apps.md) – `https://timelimit.io/ServerDataStatus#/definitions/ServerUpdatedCategoryAssignedApps/properties/apps` - [Untitled array in ServerDataStatus](./serverdatastatus-definitions-serverupdatedcategoryusedtimes-properties-times.md) – `https://timelimit.io/ServerDataStatus#/definitions/ServerUpdatedCategoryUsedTimes/properties/times` +- [Untitled array in ServerDataStatus](./serverdatastatus-definitions-serverupdatedcategoryusedtimes-properties-sessiondurations.md) – `https://timelimit.io/ServerDataStatus#/definitions/ServerUpdatedCategoryUsedTimes/properties/sessionDurations` - [Untitled array in ServerDataStatus](./serverdatastatus-definitions-serverupdatedtimelimitrules-properties-rules.md) – `https://timelimit.io/ServerDataStatus#/definitions/ServerUpdatedTimeLimitRules/properties/rules` -- [Untitled array in ServerDataStatus](./serverdatastatus-definitions-serverdevicelist-properties-data.md) – `https://timelimit.io/ServerDataStatus#/definitions/ServerDeviceList/properties/data` +- [Untitled array in ServerDataStatus](./serverdatastatus-definitions-serveruserlist-properties-data.md) – `https://timelimit.io/ServerDataStatus#/definitions/ServerUserList/properties/data` ## Version Note diff --git a/docs/schema/SerializedAppLogicAction.schema.json b/docs/schema/SerializedAppLogicAction.schema.json index 18b8a9d..b3609af 100644 --- a/docs/schema/SerializedAppLogicAction.schema.json +++ b/docs/schema/SerializedAppLogicAction.schema.json @@ -140,6 +140,68 @@ }, "etts": { "type": "number" + }, + "as": { + "type": "array", + "items": { + "type": "array", + "items": [ + { + "type": "number" + }, + { + "type": "number" + } + ], + "minItems": 2, + "additionalItems": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "number" + } + ] + } + } + }, + "sdl": { + "type": "array", + "items": { + "type": "array", + "items": [ + { + "type": "number" + }, + { + "type": "number" + }, + { + "type": "number" + }, + { + "type": "number" + } + ], + "minItems": 4, + "additionalItems": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "number" + }, + { + "type": "number" + }, + { + "type": "number" + } + ] + } + } } }, "additionalProperties": false, @@ -149,6 +211,9 @@ "tta" ] } + }, + "t": { + "type": "number" } }, "additionalProperties": false, diff --git a/docs/schema/SerializedParentAction.schema.json b/docs/schema/SerializedParentAction.schema.json index 3bd8cef..d14d1e6 100644 --- a/docs/schema/SerializedParentAction.schema.json +++ b/docs/schema/SerializedParentAction.schema.json @@ -307,6 +307,18 @@ }, "extraTime": { "type": "boolean" + }, + "start": { + "type": "number" + }, + "end": { + "type": "number" + }, + "dur": { + "type": "number" + }, + "pause": { + "type": "number" } }, "additionalProperties": false, @@ -1176,6 +1188,18 @@ }, "extraTime": { "type": "boolean" + }, + "start": { + "type": "number" + }, + "end": { + "type": "number" + }, + "dur": { + "type": "number" + }, + "pause": { + "type": "number" } }, "additionalProperties": false, diff --git a/docs/schema/ServerDataStatus.schema.json b/docs/schema/ServerDataStatus.schema.json index 7020e55..6207933 100644 --- a/docs/schema/ServerDataStatus.schema.json +++ b/docs/schema/ServerDataStatus.schema.json @@ -428,6 +428,12 @@ "$ref": "#/definitions/ServerUsedTimeItem" } }, + "sessionDurations": { + "type": "array", + "items": { + "$ref": "#/definitions/ServerSessionDurationItem" + } + }, "version": { "type": "string" } @@ -435,6 +441,7 @@ "additionalProperties": false, "required": [ "categoryId", + "sessionDurations", "times", "version" ], @@ -448,15 +455,62 @@ }, "time": { "type": "number" + }, + "start": { + "type": "number" + }, + "end": { + "type": "number" } }, "additionalProperties": false, "required": [ "day", + "end", + "start", "time" ], "title": "ServerUsedTimeItem" }, + "ServerSessionDurationItem": { + "type": "object", + "properties": { + "md": { + "description": "the maximum duration of a session (maxSessionDuration)", + "type": "number" + }, + "spd": { + "description": "the pause duration after a session (sessionPauseDuration)", + "type": "number" + }, + "sm": { + "description": "the start minute of the day of the session/ the rule\nwhich created this session (startMinuteOfDay)", + "type": "number" + }, + "em": { + "description": "the end minute of the day of the session/ the rule\nwhich created this session (endMinuteOfDay)", + "type": "number" + }, + "l": { + "description": "the timestamp of the last usage of this session (lastUsage)", + "type": "number" + }, + "d": { + "description": "the duration of the last/ current session (lastSessionDuration)", + "type": "number" + } + }, + "additionalProperties": false, + "required": [ + "d", + "em", + "l", + "md", + "sm", + "spd" + ], + "title": "ServerSessionDurationItem" + }, "ServerUpdatedTimeLimitRules": { "type": "object", "properties": { @@ -495,14 +549,30 @@ }, "maxTime": { "type": "number" + }, + "start": { + "type": "number" + }, + "end": { + "type": "number" + }, + "session": { + "type": "number" + }, + "pause": { + "type": "number" } }, "additionalProperties": false, "required": [ "dayMask", + "end", "extraTime", "id", - "maxTime" + "maxTime", + "pause", + "session", + "start" ], "title": "ServerTimeLimitRule" }, diff --git a/docs/schema/clientpullchangesrequest-definitions-clientdatastatus-properties-clientlevel.md b/docs/schema/clientpullchangesrequest-definitions-clientdatastatus-properties-clientlevel.md new file mode 100644 index 0000000..e03d07e --- /dev/null +++ b/docs/schema/clientpullchangesrequest-definitions-clientdatastatus-properties-clientlevel.md @@ -0,0 +1,16 @@ +# Untitled number in ClientPullChangesRequest Schema + +```txt +https://timelimit.io/ClientPullChangesRequest#/definitions/ClientDataStatus/properties/clientLevel +``` + + + + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | ---------- | -------------- | ----------------------- | :---------------- | --------------------- | ------------------- | ----------------------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [ClientPullChangesRequest.schema.json\*](ClientPullChangesRequest.schema.json "open original schema") | + +## clientLevel Type + +`number` diff --git a/docs/schema/clientpullchangesrequest-definitions-clientdatastatus.md b/docs/schema/clientpullchangesrequest-definitions-clientdatastatus.md index eef6f8b..1ccccce 100644 --- a/docs/schema/clientpullchangesrequest-definitions-clientdatastatus.md +++ b/docs/schema/clientpullchangesrequest-definitions-clientdatastatus.md @@ -17,12 +17,13 @@ https://timelimit.io/ClientPullChangesRequest#/definitions/ClientDataStatus # ClientDataStatus Properties -| Property | Type | Required | Nullable | Defined by | -| :------------------------ | -------- | -------- | -------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| [devices](#devices) | `string` | Required | cannot be null | [ClientPullChangesRequest](clientpullchangesrequest-definitions-clientdatastatus-properties-devices.md "https://timelimit.io/ClientPullChangesRequest#/definitions/ClientDataStatus/properties/devices") | -| [apps](#apps) | `object` | Required | cannot be null | [ClientPullChangesRequest](clientpullchangesrequest-definitions-clientdatastatus-properties-apps.md "https://timelimit.io/ClientPullChangesRequest#/definitions/ClientDataStatus/properties/apps") | -| [categories](#categories) | `object` | Required | cannot be null | [ClientPullChangesRequest](clientpullchangesrequest-definitions-clientdatastatus-properties-categories.md "https://timelimit.io/ClientPullChangesRequest#/definitions/ClientDataStatus/properties/categories") | -| [users](#users) | `string` | Required | cannot be null | [ClientPullChangesRequest](clientpullchangesrequest-definitions-clientdatastatus-properties-users.md "https://timelimit.io/ClientPullChangesRequest#/definitions/ClientDataStatus/properties/users") | +| Property | Type | Required | Nullable | Defined by | +| :-------------------------- | -------- | -------- | -------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [devices](#devices) | `string` | Required | cannot be null | [ClientPullChangesRequest](clientpullchangesrequest-definitions-clientdatastatus-properties-devices.md "https://timelimit.io/ClientPullChangesRequest#/definitions/ClientDataStatus/properties/devices") | +| [apps](#apps) | `object` | Required | cannot be null | [ClientPullChangesRequest](clientpullchangesrequest-definitions-clientdatastatus-properties-apps.md "https://timelimit.io/ClientPullChangesRequest#/definitions/ClientDataStatus/properties/apps") | +| [categories](#categories) | `object` | Required | cannot be null | [ClientPullChangesRequest](clientpullchangesrequest-definitions-clientdatastatus-properties-categories.md "https://timelimit.io/ClientPullChangesRequest#/definitions/ClientDataStatus/properties/categories") | +| [users](#users) | `string` | Required | cannot be null | [ClientPullChangesRequest](clientpullchangesrequest-definitions-clientdatastatus-properties-users.md "https://timelimit.io/ClientPullChangesRequest#/definitions/ClientDataStatus/properties/users") | +| [clientLevel](#clientLevel) | `number` | Optional | cannot be null | [ClientPullChangesRequest](clientpullchangesrequest-definitions-clientdatastatus-properties-clientlevel.md "https://timelimit.io/ClientPullChangesRequest#/definitions/ClientDataStatus/properties/clientLevel") | ## devices @@ -87,3 +88,19 @@ https://timelimit.io/ClientPullChangesRequest#/definitions/ClientDataStatus ### users Type `string` + +## clientLevel + + + + +`clientLevel` + +- is optional +- Type: `number` +- cannot be null +- defined in: [ClientPullChangesRequest](clientpullchangesrequest-definitions-clientdatastatus-properties-clientlevel.md "https://timelimit.io/ClientPullChangesRequest#/definitions/ClientDataStatus/properties/clientLevel") + +### clientLevel Type + +`number` diff --git a/docs/schema/clientpullchangesrequest.md b/docs/schema/clientpullchangesrequest.md index c601ef9..1aafb55 100644 --- a/docs/schema/clientpullchangesrequest.md +++ b/docs/schema/clientpullchangesrequest.md @@ -25,12 +25,13 @@ Reference this group by using {"$ref":"https://timelimit.io/ClientPullChangesRequest#/definitions/ClientDataStatus"} ``` -| Property | Type | Required | Nullable | Defined by | -| :------------------------ | -------- | -------- | -------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| [devices](#devices) | `string` | Required | cannot be null | [ClientPullChangesRequest](clientpullchangesrequest-definitions-clientdatastatus-properties-devices.md "https://timelimit.io/ClientPullChangesRequest#/definitions/ClientDataStatus/properties/devices") | -| [apps](#apps) | `object` | Required | cannot be null | [ClientPullChangesRequest](clientpullchangesrequest-definitions-clientdatastatus-properties-apps.md "https://timelimit.io/ClientPullChangesRequest#/definitions/ClientDataStatus/properties/apps") | -| [categories](#categories) | `object` | Required | cannot be null | [ClientPullChangesRequest](clientpullchangesrequest-definitions-clientdatastatus-properties-categories.md "https://timelimit.io/ClientPullChangesRequest#/definitions/ClientDataStatus/properties/categories") | -| [users](#users) | `string` | Required | cannot be null | [ClientPullChangesRequest](clientpullchangesrequest-definitions-clientdatastatus-properties-users.md "https://timelimit.io/ClientPullChangesRequest#/definitions/ClientDataStatus/properties/users") | +| Property | Type | Required | Nullable | Defined by | +| :-------------------------- | -------- | -------- | -------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [devices](#devices) | `string` | Required | cannot be null | [ClientPullChangesRequest](clientpullchangesrequest-definitions-clientdatastatus-properties-devices.md "https://timelimit.io/ClientPullChangesRequest#/definitions/ClientDataStatus/properties/devices") | +| [apps](#apps) | `object` | Required | cannot be null | [ClientPullChangesRequest](clientpullchangesrequest-definitions-clientdatastatus-properties-apps.md "https://timelimit.io/ClientPullChangesRequest#/definitions/ClientDataStatus/properties/apps") | +| [categories](#categories) | `object` | Required | cannot be null | [ClientPullChangesRequest](clientpullchangesrequest-definitions-clientdatastatus-properties-categories.md "https://timelimit.io/ClientPullChangesRequest#/definitions/ClientDataStatus/properties/categories") | +| [users](#users) | `string` | Required | cannot be null | [ClientPullChangesRequest](clientpullchangesrequest-definitions-clientdatastatus-properties-users.md "https://timelimit.io/ClientPullChangesRequest#/definitions/ClientDataStatus/properties/users") | +| [clientLevel](#clientLevel) | `number` | Optional | cannot be null | [ClientPullChangesRequest](clientpullchangesrequest-definitions-clientdatastatus-properties-clientlevel.md "https://timelimit.io/ClientPullChangesRequest#/definitions/ClientDataStatus/properties/clientLevel") | ### devices @@ -96,6 +97,22 @@ Reference this group by using `string` +### clientLevel + + + + +`clientLevel` + +- is optional +- Type: `number` +- cannot be null +- defined in: [ClientPullChangesRequest](clientpullchangesrequest-definitions-clientdatastatus-properties-clientlevel.md "https://timelimit.io/ClientPullChangesRequest#/definitions/ClientDataStatus/properties/clientLevel") + +#### clientLevel Type + +`number` + ## Definitions group CategoryDataStatus Reference this group by using diff --git a/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-as-items-additionalitems-anyof-0.md b/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-as-items-additionalitems-anyof-0.md new file mode 100644 index 0000000..eb8b7bc --- /dev/null +++ b/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-as-items-additionalitems-anyof-0.md @@ -0,0 +1,16 @@ +# Untitled number in SerializedAppLogicAction Schema + +```txt +https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddUsedTimeActionVersion2/properties/i/items/properties/as/items/additionalItems/anyOf/0 +``` + + + + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | ---------- | -------------- | ----------------------- | :---------------- | --------------------- | ------------------- | ----------------------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [SerializedAppLogicAction.schema.json\*](SerializedAppLogicAction.schema.json "open original schema") | + +## 0 Type + +`number` diff --git a/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-as-items-additionalitems-anyof-1.md b/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-as-items-additionalitems-anyof-1.md new file mode 100644 index 0000000..c5da067 --- /dev/null +++ b/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-as-items-additionalitems-anyof-1.md @@ -0,0 +1,16 @@ +# Untitled number in SerializedAppLogicAction Schema + +```txt +https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddUsedTimeActionVersion2/properties/i/items/properties/as/items/additionalItems/anyOf/1 +``` + + + + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | ---------- | -------------- | ----------------------- | :---------------- | --------------------- | ------------------- | ----------------------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [SerializedAppLogicAction.schema.json\*](SerializedAppLogicAction.schema.json "open original schema") | + +## 1 Type + +`number` diff --git a/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-as-items-additionalitems.md b/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-as-items-additionalitems.md new file mode 100644 index 0000000..085c757 --- /dev/null +++ b/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-as-items-additionalitems.md @@ -0,0 +1,21 @@ +# Untitled undefined type in SerializedAppLogicAction Schema + +```txt +https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddUsedTimeActionVersion2/properties/i/items/properties/as/items/additionalItems +``` + + + + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | ---------- | -------------- | ----------------------- | :---------------- | --------------------- | ------------------- | ----------------------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [SerializedAppLogicAction.schema.json\*](SerializedAppLogicAction.schema.json "open original schema") | + +## additionalItems Type + +merged type ([Details](serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-as-items-additionalitems.md)) + +any of + +- [Untitled number in SerializedAppLogicAction](serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-as-items-additionalitems-anyof-0.md "check type definition") +- [Untitled number in SerializedAppLogicAction](serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-as-items-additionalitems-anyof-1.md "check type definition") diff --git a/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-as-items-items-0.md b/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-as-items-items-0.md new file mode 100644 index 0000000..4c19941 --- /dev/null +++ b/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-as-items-items-0.md @@ -0,0 +1,16 @@ +# Untitled number in SerializedAppLogicAction Schema + +```txt +https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddUsedTimeActionVersion2/properties/i/items/properties/as/items/items/0 +``` + + + + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | ---------- | -------------- | ----------------------- | :---------------- | --------------------- | ------------------- | ----------------------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [SerializedAppLogicAction.schema.json\*](SerializedAppLogicAction.schema.json "open original schema") | + +## 0 Type + +`number` diff --git a/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-as-items-items-1.md b/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-as-items-items-1.md new file mode 100644 index 0000000..ff0ef24 --- /dev/null +++ b/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-as-items-items-1.md @@ -0,0 +1,16 @@ +# Untitled number in SerializedAppLogicAction Schema + +```txt +https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddUsedTimeActionVersion2/properties/i/items/properties/as/items/items/1 +``` + + + + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | ---------- | -------------- | ----------------------- | :---------------- | --------------------- | ------------------- | ----------------------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [SerializedAppLogicAction.schema.json\*](SerializedAppLogicAction.schema.json "open original schema") | + +## 1 Type + +`number` diff --git a/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-as-items.md b/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-as-items.md new file mode 100644 index 0000000..5f41e3e --- /dev/null +++ b/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-as-items.md @@ -0,0 +1,24 @@ +# Untitled array in SerializedAppLogicAction Schema + +```txt +https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddUsedTimeActionVersion2/properties/i/items/properties/as/items +``` + + + + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | ---------- | -------------- | ----------------------- | :---------------- | --------------------- | ------------------- | ----------------------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [SerializedAppLogicAction.schema.json\*](SerializedAppLogicAction.schema.json "open original schema") | + +## items Type + +an array where each item follows the corresponding schema in the following list: + +1. [Untitled number in SerializedAppLogicAction](serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-as-items-items-0.md "check type definition") +2. [Untitled number in SerializedAppLogicAction](serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-as-items-items-1.md "check type definition") +3. and all following items must follow the schema: [Untitled undefined type in SerializedAppLogicAction](serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-as-items-additionalitems.md "check type definition") + +## items Constraints + +**minimum number of items**: the minimum number of items for this array is: `2` diff --git a/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-as.md b/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-as.md new file mode 100644 index 0000000..348e1be --- /dev/null +++ b/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-as.md @@ -0,0 +1,20 @@ +# Untitled array in SerializedAppLogicAction Schema + +```txt +https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddUsedTimeActionVersion2/properties/i/items/properties/as +``` + + + + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | ---------- | -------------- | ----------------------- | :---------------- | --------------------- | ------------------- | ----------------------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [SerializedAppLogicAction.schema.json\*](SerializedAppLogicAction.schema.json "open original schema") | + +## as Type + +an array where each item follows the corresponding schema in the following list: + +1. [Untitled number in SerializedAppLogicAction](serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-as-items-items-0.md "check type definition") +2. [Untitled number in SerializedAppLogicAction](serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-as-items-items-1.md "check type definition") +3. and all following items must follow the schema: [Untitled undefined type in SerializedAppLogicAction](serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-as-items-additionalitems.md "check type definition") diff --git a/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-sdl-items-additionalitems-anyof-0.md b/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-sdl-items-additionalitems-anyof-0.md new file mode 100644 index 0000000..6ea996f --- /dev/null +++ b/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-sdl-items-additionalitems-anyof-0.md @@ -0,0 +1,16 @@ +# Untitled number in SerializedAppLogicAction Schema + +```txt +https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddUsedTimeActionVersion2/properties/i/items/properties/sdl/items/additionalItems/anyOf/0 +``` + + + + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | ---------- | -------------- | ----------------------- | :---------------- | --------------------- | ------------------- | ----------------------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [SerializedAppLogicAction.schema.json\*](SerializedAppLogicAction.schema.json "open original schema") | + +## 0 Type + +`number` diff --git a/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-sdl-items-additionalitems-anyof-1.md b/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-sdl-items-additionalitems-anyof-1.md new file mode 100644 index 0000000..aa59eaa --- /dev/null +++ b/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-sdl-items-additionalitems-anyof-1.md @@ -0,0 +1,16 @@ +# Untitled number in SerializedAppLogicAction Schema + +```txt +https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddUsedTimeActionVersion2/properties/i/items/properties/sdl/items/additionalItems/anyOf/1 +``` + + + + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | ---------- | -------------- | ----------------------- | :---------------- | --------------------- | ------------------- | ----------------------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [SerializedAppLogicAction.schema.json\*](SerializedAppLogicAction.schema.json "open original schema") | + +## 1 Type + +`number` diff --git a/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-sdl-items-additionalitems-anyof-2.md b/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-sdl-items-additionalitems-anyof-2.md new file mode 100644 index 0000000..37983fd --- /dev/null +++ b/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-sdl-items-additionalitems-anyof-2.md @@ -0,0 +1,16 @@ +# Untitled number in SerializedAppLogicAction Schema + +```txt +https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddUsedTimeActionVersion2/properties/i/items/properties/sdl/items/additionalItems/anyOf/2 +``` + + + + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | ---------- | -------------- | ----------------------- | :---------------- | --------------------- | ------------------- | ----------------------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [SerializedAppLogicAction.schema.json\*](SerializedAppLogicAction.schema.json "open original schema") | + +## 2 Type + +`number` diff --git a/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-sdl-items-additionalitems-anyof-3.md b/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-sdl-items-additionalitems-anyof-3.md new file mode 100644 index 0000000..26bbe32 --- /dev/null +++ b/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-sdl-items-additionalitems-anyof-3.md @@ -0,0 +1,16 @@ +# Untitled number in SerializedAppLogicAction Schema + +```txt +https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddUsedTimeActionVersion2/properties/i/items/properties/sdl/items/additionalItems/anyOf/3 +``` + + + + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | ---------- | -------------- | ----------------------- | :---------------- | --------------------- | ------------------- | ----------------------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [SerializedAppLogicAction.schema.json\*](SerializedAppLogicAction.schema.json "open original schema") | + +## 3 Type + +`number` diff --git a/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-sdl-items-additionalitems.md b/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-sdl-items-additionalitems.md new file mode 100644 index 0000000..fc5e18a --- /dev/null +++ b/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-sdl-items-additionalitems.md @@ -0,0 +1,23 @@ +# Untitled undefined type in SerializedAppLogicAction Schema + +```txt +https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddUsedTimeActionVersion2/properties/i/items/properties/sdl/items/additionalItems +``` + + + + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | ---------- | -------------- | ----------------------- | :---------------- | --------------------- | ------------------- | ----------------------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [SerializedAppLogicAction.schema.json\*](SerializedAppLogicAction.schema.json "open original schema") | + +## additionalItems Type + +merged type ([Details](serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-sdl-items-additionalitems.md)) + +any of + +- [Untitled number in SerializedAppLogicAction](serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-sdl-items-additionalitems-anyof-0.md "check type definition") +- [Untitled number in SerializedAppLogicAction](serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-sdl-items-additionalitems-anyof-1.md "check type definition") +- [Untitled number in SerializedAppLogicAction](serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-sdl-items-additionalitems-anyof-2.md "check type definition") +- [Untitled number in SerializedAppLogicAction](serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-sdl-items-additionalitems-anyof-3.md "check type definition") diff --git a/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-sdl-items-items-0.md b/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-sdl-items-items-0.md new file mode 100644 index 0000000..8e1e78a --- /dev/null +++ b/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-sdl-items-items-0.md @@ -0,0 +1,16 @@ +# Untitled number in SerializedAppLogicAction Schema + +```txt +https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddUsedTimeActionVersion2/properties/i/items/properties/sdl/items/items/0 +``` + + + + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | ---------- | -------------- | ----------------------- | :---------------- | --------------------- | ------------------- | ----------------------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [SerializedAppLogicAction.schema.json\*](SerializedAppLogicAction.schema.json "open original schema") | + +## 0 Type + +`number` diff --git a/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-sdl-items-items-1.md b/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-sdl-items-items-1.md new file mode 100644 index 0000000..7445a2e --- /dev/null +++ b/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-sdl-items-items-1.md @@ -0,0 +1,16 @@ +# Untitled number in SerializedAppLogicAction Schema + +```txt +https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddUsedTimeActionVersion2/properties/i/items/properties/sdl/items/items/1 +``` + + + + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | ---------- | -------------- | ----------------------- | :---------------- | --------------------- | ------------------- | ----------------------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [SerializedAppLogicAction.schema.json\*](SerializedAppLogicAction.schema.json "open original schema") | + +## 1 Type + +`number` diff --git a/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-sdl-items-items-2.md b/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-sdl-items-items-2.md new file mode 100644 index 0000000..9447a94 --- /dev/null +++ b/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-sdl-items-items-2.md @@ -0,0 +1,16 @@ +# Untitled number in SerializedAppLogicAction Schema + +```txt +https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddUsedTimeActionVersion2/properties/i/items/properties/sdl/items/items/2 +``` + + + + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | ---------- | -------------- | ----------------------- | :---------------- | --------------------- | ------------------- | ----------------------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [SerializedAppLogicAction.schema.json\*](SerializedAppLogicAction.schema.json "open original schema") | + +## 2 Type + +`number` diff --git a/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-sdl-items-items-3.md b/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-sdl-items-items-3.md new file mode 100644 index 0000000..fe82d64 --- /dev/null +++ b/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-sdl-items-items-3.md @@ -0,0 +1,16 @@ +# Untitled number in SerializedAppLogicAction Schema + +```txt +https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddUsedTimeActionVersion2/properties/i/items/properties/sdl/items/items/3 +``` + + + + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | ---------- | -------------- | ----------------------- | :---------------- | --------------------- | ------------------- | ----------------------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [SerializedAppLogicAction.schema.json\*](SerializedAppLogicAction.schema.json "open original schema") | + +## 3 Type + +`number` diff --git a/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-sdl-items.md b/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-sdl-items.md new file mode 100644 index 0000000..4b349e6 --- /dev/null +++ b/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-sdl-items.md @@ -0,0 +1,26 @@ +# Untitled array in SerializedAppLogicAction Schema + +```txt +https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddUsedTimeActionVersion2/properties/i/items/properties/sdl/items +``` + + + + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | ---------- | -------------- | ----------------------- | :---------------- | --------------------- | ------------------- | ----------------------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [SerializedAppLogicAction.schema.json\*](SerializedAppLogicAction.schema.json "open original schema") | + +## items Type + +an array where each item follows the corresponding schema in the following list: + +1. [Untitled number in SerializedAppLogicAction](serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-sdl-items-items-0.md "check type definition") +2. [Untitled number in SerializedAppLogicAction](serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-sdl-items-items-1.md "check type definition") +3. [Untitled number in SerializedAppLogicAction](serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-sdl-items-items-2.md "check type definition") +4. [Untitled number in SerializedAppLogicAction](serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-sdl-items-items-3.md "check type definition") +5. and all following items must follow the schema: [Untitled undefined type in SerializedAppLogicAction](serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-sdl-items-additionalitems.md "check type definition") + +## items Constraints + +**minimum number of items**: the minimum number of items for this array is: `4` diff --git a/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-sdl.md b/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-sdl.md new file mode 100644 index 0000000..c171cd5 --- /dev/null +++ b/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-sdl.md @@ -0,0 +1,22 @@ +# Untitled array in SerializedAppLogicAction Schema + +```txt +https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddUsedTimeActionVersion2/properties/i/items/properties/sdl +``` + + + + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | ---------- | -------------- | ----------------------- | :---------------- | --------------------- | ------------------- | ----------------------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [SerializedAppLogicAction.schema.json\*](SerializedAppLogicAction.schema.json "open original schema") | + +## sdl Type + +an array where each item follows the corresponding schema in the following list: + +1. [Untitled number in SerializedAppLogicAction](serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-sdl-items-items-0.md "check type definition") +2. [Untitled number in SerializedAppLogicAction](serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-sdl-items-items-1.md "check type definition") +3. [Untitled number in SerializedAppLogicAction](serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-sdl-items-items-2.md "check type definition") +4. [Untitled number in SerializedAppLogicAction](serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-sdl-items-items-3.md "check type definition") +5. and all following items must follow the schema: [Untitled undefined type in SerializedAppLogicAction](serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-sdl-items-additionalitems.md "check type definition") diff --git a/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items.md b/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items.md index d0e5776..74b6704 100644 --- a/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items.md +++ b/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items.md @@ -22,6 +22,8 @@ https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddUsedTime | [categoryId](#categoryId) | `string` | Required | cannot be null | [SerializedAppLogicAction](serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-categoryid.md "https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddUsedTimeActionVersion2/properties/i/items/properties/categoryId") | | [tta](#tta) | `number` | Required | cannot be null | [SerializedAppLogicAction](serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-tta.md "https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddUsedTimeActionVersion2/properties/i/items/properties/tta") | | [etts](#etts) | `number` | Required | cannot be null | [SerializedAppLogicAction](serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-etts.md "https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddUsedTimeActionVersion2/properties/i/items/properties/etts") | +| [as](#as) | `array` | Optional | cannot be null | [SerializedAppLogicAction](serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-as.md "https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddUsedTimeActionVersion2/properties/i/items/properties/as") | +| [sdl](#sdl) | `array` | Optional | cannot be null | [SerializedAppLogicAction](serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-sdl.md "https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddUsedTimeActionVersion2/properties/i/items/properties/sdl") | ## categoryId @@ -70,3 +72,55 @@ https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddUsedTime ### etts Type `number` + +## as + + + + +`as` + +- is optional +- Type: an array where each item follows the corresponding schema in the following list: + + 1. [Untitled number in SerializedAppLogicAction](serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-as-items-items-0.md "check type definition") + 2. [Untitled number in SerializedAppLogicAction](serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-as-items-items-1.md "check type definition") + 3. and all following items must follow the schema: [Untitled undefined type in SerializedAppLogicAction](serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-as-items-additionalitems.md "check type definition") +- cannot be null +- defined in: [SerializedAppLogicAction](serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-as.md "https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddUsedTimeActionVersion2/properties/i/items/properties/as") + +### as Type + +an array where each item follows the corresponding schema in the following list: + +1. [Untitled number in SerializedAppLogicAction](serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-as-items-items-0.md "check type definition") +2. [Untitled number in SerializedAppLogicAction](serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-as-items-items-1.md "check type definition") +3. and all following items must follow the schema: [Untitled undefined type in SerializedAppLogicAction](serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-as-items-additionalitems.md "check type definition") + +## sdl + + + + +`sdl` + +- is optional +- Type: an array where each item follows the corresponding schema in the following list: + + 1. [Untitled number in SerializedAppLogicAction](serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-sdl-items-items-0.md "check type definition") + 2. [Untitled number in SerializedAppLogicAction](serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-sdl-items-items-1.md "check type definition") + 3. [Untitled number in SerializedAppLogicAction](serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-sdl-items-items-2.md "check type definition") + 4. [Untitled number in SerializedAppLogicAction](serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-sdl-items-items-3.md "check type definition") + 5. and all following items must follow the schema: [Untitled undefined type in SerializedAppLogicAction](serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-sdl-items-additionalitems.md "check type definition") +- cannot be null +- defined in: [SerializedAppLogicAction](serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-sdl.md "https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddUsedTimeActionVersion2/properties/i/items/properties/sdl") + +### sdl Type + +an array where each item follows the corresponding schema in the following list: + +1. [Untitled number in SerializedAppLogicAction](serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-sdl-items-items-0.md "check type definition") +2. [Untitled number in SerializedAppLogicAction](serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-sdl-items-items-1.md "check type definition") +3. [Untitled number in SerializedAppLogicAction](serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-sdl-items-items-2.md "check type definition") +4. [Untitled number in SerializedAppLogicAction](serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-sdl-items-items-3.md "check type definition") +5. and all following items must follow the schema: [Untitled undefined type in SerializedAppLogicAction](serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items-properties-sdl-items-additionalitems.md "check type definition") diff --git a/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-t.md b/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-t.md new file mode 100644 index 0000000..eee6ed7 --- /dev/null +++ b/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-t.md @@ -0,0 +1,16 @@ +# Untitled number in SerializedAppLogicAction Schema + +```txt +https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddUsedTimeActionVersion2/properties/t +``` + + + + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | ---------- | -------------- | ----------------------- | :---------------- | --------------------- | ------------------- | ----------------------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [SerializedAppLogicAction.schema.json\*](SerializedAppLogicAction.schema.json "open original schema") | + +## t Type + +`number` diff --git a/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2.md b/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2.md index 2b62fb1..54c6b2a 100644 --- a/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2.md +++ b/docs/schema/serializedapplogicaction-definitions-serializedaddusedtimeactionversion2.md @@ -22,6 +22,7 @@ https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddUsedTime | [type](#type) | `string` | Required | cannot be null | [SerializedAppLogicAction](serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-type.md "https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddUsedTimeActionVersion2/properties/type") | | [d](#d) | `number` | Required | cannot be null | [SerializedAppLogicAction](serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-d.md "https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddUsedTimeActionVersion2/properties/d") | | [i](#i) | `array` | Required | cannot be null | [SerializedAppLogicAction](serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i.md "https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddUsedTimeActionVersion2/properties/i") | +| [t](#t) | `number` | Optional | cannot be null | [SerializedAppLogicAction](serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-t.md "https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddUsedTimeActionVersion2/properties/t") | ## type @@ -78,3 +79,19 @@ https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddUsedTime ### i Type `object[]` ([Details](serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items.md)) + +## t + + + + +`t` + +- is optional +- Type: `number` +- cannot be null +- defined in: [SerializedAppLogicAction](serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-t.md "https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddUsedTimeActionVersion2/properties/t") + +### t Type + +`number` diff --git a/docs/schema/serializedapplogicaction.md b/docs/schema/serializedapplogicaction.md index 8507256..fc34da2 100644 --- a/docs/schema/serializedapplogicaction.md +++ b/docs/schema/serializedapplogicaction.md @@ -298,6 +298,7 @@ Reference this group by using | [type](#type) | `string` | Required | cannot be null | [SerializedAppLogicAction](serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-type.md "https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddUsedTimeActionVersion2/properties/type") | | [d](#d) | `number` | Required | cannot be null | [SerializedAppLogicAction](serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-d.md "https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddUsedTimeActionVersion2/properties/d") | | [i](#i) | `array` | Required | cannot be null | [SerializedAppLogicAction](serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i.md "https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddUsedTimeActionVersion2/properties/i") | +| [t](#t) | `number` | Optional | cannot be null | [SerializedAppLogicAction](serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-t.md "https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddUsedTimeActionVersion2/properties/t") | ### type @@ -355,6 +356,22 @@ Reference this group by using `object[]` ([Details](serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-i-items.md)) +### t + + + + +`t` + +- is optional +- Type: `number` +- cannot be null +- defined in: [SerializedAppLogicAction](serializedapplogicaction-definitions-serializedaddusedtimeactionversion2-properties-t.md "https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddUsedTimeActionVersion2/properties/t") + +#### t Type + +`number` + ## Definitions group SerializedRemoveInstalledAppsAction Reference this group by using diff --git a/docs/schema/serializedparentaction-definitions-serializedtimelimitrule-properties-dur.md b/docs/schema/serializedparentaction-definitions-serializedtimelimitrule-properties-dur.md new file mode 100644 index 0000000..bb5f60f --- /dev/null +++ b/docs/schema/serializedparentaction-definitions-serializedtimelimitrule-properties-dur.md @@ -0,0 +1,16 @@ +# Untitled number in SerializedParentAction Schema + +```txt +https://timelimit.io/SerializedParentAction#/definitions/SerializedTimeLimitRule/properties/dur +``` + + + + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | ---------- | -------------- | ----------------------- | :---------------- | --------------------- | ------------------- | ------------------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [SerializedParentAction.schema.json\*](SerializedParentAction.schema.json "open original schema") | + +## dur Type + +`number` diff --git a/docs/schema/serializedparentaction-definitions-serializedtimelimitrule-properties-end.md b/docs/schema/serializedparentaction-definitions-serializedtimelimitrule-properties-end.md new file mode 100644 index 0000000..dc24c8b --- /dev/null +++ b/docs/schema/serializedparentaction-definitions-serializedtimelimitrule-properties-end.md @@ -0,0 +1,16 @@ +# Untitled number in SerializedParentAction Schema + +```txt +https://timelimit.io/SerializedParentAction#/definitions/SerializedTimeLimitRule/properties/end +``` + + + + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | ---------- | -------------- | ----------------------- | :---------------- | --------------------- | ------------------- | ------------------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [SerializedParentAction.schema.json\*](SerializedParentAction.schema.json "open original schema") | + +## end Type + +`number` diff --git a/docs/schema/serializedparentaction-definitions-serializedtimelimitrule-properties-pause.md b/docs/schema/serializedparentaction-definitions-serializedtimelimitrule-properties-pause.md new file mode 100644 index 0000000..a630f55 --- /dev/null +++ b/docs/schema/serializedparentaction-definitions-serializedtimelimitrule-properties-pause.md @@ -0,0 +1,16 @@ +# Untitled number in SerializedParentAction Schema + +```txt +https://timelimit.io/SerializedParentAction#/definitions/SerializedTimeLimitRule/properties/pause +``` + + + + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | ---------- | -------------- | ----------------------- | :---------------- | --------------------- | ------------------- | ------------------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [SerializedParentAction.schema.json\*](SerializedParentAction.schema.json "open original schema") | + +## pause Type + +`number` diff --git a/docs/schema/serializedparentaction-definitions-serializedtimelimitrule-properties-start.md b/docs/schema/serializedparentaction-definitions-serializedtimelimitrule-properties-start.md new file mode 100644 index 0000000..bc31994 --- /dev/null +++ b/docs/schema/serializedparentaction-definitions-serializedtimelimitrule-properties-start.md @@ -0,0 +1,16 @@ +# Untitled number in SerializedParentAction Schema + +```txt +https://timelimit.io/SerializedParentAction#/definitions/SerializedTimeLimitRule/properties/start +``` + + + + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | ---------- | -------------- | ----------------------- | :---------------- | --------------------- | ------------------- | ------------------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [SerializedParentAction.schema.json\*](SerializedParentAction.schema.json "open original schema") | + +## start Type + +`number` diff --git a/docs/schema/serializedparentaction-definitions-serializedtimelimitrule.md b/docs/schema/serializedparentaction-definitions-serializedtimelimitrule.md index 9c59e33..ccea630 100644 --- a/docs/schema/serializedparentaction-definitions-serializedtimelimitrule.md +++ b/docs/schema/serializedparentaction-definitions-serializedtimelimitrule.md @@ -24,6 +24,10 @@ https://timelimit.io/SerializedParentAction#/definitions/SerializedTimeLimitRule | [time](#time) | `number` | Required | cannot be null | [SerializedParentAction](serializedparentaction-definitions-serializedtimelimitrule-properties-time.md "https://timelimit.io/SerializedParentAction#/definitions/SerializedTimeLimitRule/properties/time") | | [days](#days) | `number` | Required | cannot be null | [SerializedParentAction](serializedparentaction-definitions-serializedtimelimitrule-properties-days.md "https://timelimit.io/SerializedParentAction#/definitions/SerializedTimeLimitRule/properties/days") | | [extraTime](#extraTime) | `boolean` | Required | cannot be null | [SerializedParentAction](serializedparentaction-definitions-serializedtimelimitrule-properties-extratime.md "https://timelimit.io/SerializedParentAction#/definitions/SerializedTimeLimitRule/properties/extraTime") | +| [start](#start) | `number` | Optional | cannot be null | [SerializedParentAction](serializedparentaction-definitions-serializedtimelimitrule-properties-start.md "https://timelimit.io/SerializedParentAction#/definitions/SerializedTimeLimitRule/properties/start") | +| [end](#end) | `number` | Optional | cannot be null | [SerializedParentAction](serializedparentaction-definitions-serializedtimelimitrule-properties-end.md "https://timelimit.io/SerializedParentAction#/definitions/SerializedTimeLimitRule/properties/end") | +| [dur](#dur) | `number` | Optional | cannot be null | [SerializedParentAction](serializedparentaction-definitions-serializedtimelimitrule-properties-dur.md "https://timelimit.io/SerializedParentAction#/definitions/SerializedTimeLimitRule/properties/dur") | +| [pause](#pause) | `number` | Optional | cannot be null | [SerializedParentAction](serializedparentaction-definitions-serializedtimelimitrule-properties-pause.md "https://timelimit.io/SerializedParentAction#/definitions/SerializedTimeLimitRule/properties/pause") | ## ruleId @@ -104,3 +108,67 @@ https://timelimit.io/SerializedParentAction#/definitions/SerializedTimeLimitRule ### extraTime Type `boolean` + +## start + + + + +`start` + +- is optional +- Type: `number` +- cannot be null +- defined in: [SerializedParentAction](serializedparentaction-definitions-serializedtimelimitrule-properties-start.md "https://timelimit.io/SerializedParentAction#/definitions/SerializedTimeLimitRule/properties/start") + +### start Type + +`number` + +## end + + + + +`end` + +- is optional +- Type: `number` +- cannot be null +- defined in: [SerializedParentAction](serializedparentaction-definitions-serializedtimelimitrule-properties-end.md "https://timelimit.io/SerializedParentAction#/definitions/SerializedTimeLimitRule/properties/end") + +### end Type + +`number` + +## dur + + + + +`dur` + +- is optional +- Type: `number` +- cannot be null +- defined in: [SerializedParentAction](serializedparentaction-definitions-serializedtimelimitrule-properties-dur.md "https://timelimit.io/SerializedParentAction#/definitions/SerializedTimeLimitRule/properties/dur") + +### dur Type + +`number` + +## pause + + + + +`pause` + +- is optional +- Type: `number` +- cannot be null +- defined in: [SerializedParentAction](serializedparentaction-definitions-serializedtimelimitrule-properties-pause.md "https://timelimit.io/SerializedParentAction#/definitions/SerializedTimeLimitRule/properties/pause") + +### pause Type + +`number` diff --git a/docs/schema/serializedparentaction-definitions-serializedupdatetimelimitruleaction-properties-dur.md b/docs/schema/serializedparentaction-definitions-serializedupdatetimelimitruleaction-properties-dur.md new file mode 100644 index 0000000..7a6d6cf --- /dev/null +++ b/docs/schema/serializedparentaction-definitions-serializedupdatetimelimitruleaction-properties-dur.md @@ -0,0 +1,16 @@ +# Untitled number in SerializedParentAction Schema + +```txt +https://timelimit.io/SerializedParentAction#/definitions/SerializedUpdateTimelimitRuleAction/properties/dur +``` + + + + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | ---------- | -------------- | ----------------------- | :---------------- | --------------------- | ------------------- | ------------------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [SerializedParentAction.schema.json\*](SerializedParentAction.schema.json "open original schema") | + +## dur Type + +`number` diff --git a/docs/schema/serializedparentaction-definitions-serializedupdatetimelimitruleaction-properties-end.md b/docs/schema/serializedparentaction-definitions-serializedupdatetimelimitruleaction-properties-end.md new file mode 100644 index 0000000..d3c96e1 --- /dev/null +++ b/docs/schema/serializedparentaction-definitions-serializedupdatetimelimitruleaction-properties-end.md @@ -0,0 +1,16 @@ +# Untitled number in SerializedParentAction Schema + +```txt +https://timelimit.io/SerializedParentAction#/definitions/SerializedUpdateTimelimitRuleAction/properties/end +``` + + + + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | ---------- | -------------- | ----------------------- | :---------------- | --------------------- | ------------------- | ------------------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [SerializedParentAction.schema.json\*](SerializedParentAction.schema.json "open original schema") | + +## end Type + +`number` diff --git a/docs/schema/serializedparentaction-definitions-serializedupdatetimelimitruleaction-properties-pause.md b/docs/schema/serializedparentaction-definitions-serializedupdatetimelimitruleaction-properties-pause.md new file mode 100644 index 0000000..b476027 --- /dev/null +++ b/docs/schema/serializedparentaction-definitions-serializedupdatetimelimitruleaction-properties-pause.md @@ -0,0 +1,16 @@ +# Untitled number in SerializedParentAction Schema + +```txt +https://timelimit.io/SerializedParentAction#/definitions/SerializedUpdateTimelimitRuleAction/properties/pause +``` + + + + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | ---------- | -------------- | ----------------------- | :---------------- | --------------------- | ------------------- | ------------------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [SerializedParentAction.schema.json\*](SerializedParentAction.schema.json "open original schema") | + +## pause Type + +`number` diff --git a/docs/schema/serializedparentaction-definitions-serializedupdatetimelimitruleaction-properties-start.md b/docs/schema/serializedparentaction-definitions-serializedupdatetimelimitruleaction-properties-start.md new file mode 100644 index 0000000..1942243 --- /dev/null +++ b/docs/schema/serializedparentaction-definitions-serializedupdatetimelimitruleaction-properties-start.md @@ -0,0 +1,16 @@ +# Untitled number in SerializedParentAction Schema + +```txt +https://timelimit.io/SerializedParentAction#/definitions/SerializedUpdateTimelimitRuleAction/properties/start +``` + + + + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | ---------- | -------------- | ----------------------- | :---------------- | --------------------- | ------------------- | ------------------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [SerializedParentAction.schema.json\*](SerializedParentAction.schema.json "open original schema") | + +## start Type + +`number` diff --git a/docs/schema/serializedparentaction-definitions-serializedupdatetimelimitruleaction.md b/docs/schema/serializedparentaction-definitions-serializedupdatetimelimitruleaction.md index 0d9ed44..9918d65 100644 --- a/docs/schema/serializedparentaction-definitions-serializedupdatetimelimitruleaction.md +++ b/docs/schema/serializedparentaction-definitions-serializedupdatetimelimitruleaction.md @@ -24,6 +24,10 @@ https://timelimit.io/SerializedParentAction#/definitions/SerializedUpdateTimelim | [time](#time) | `number` | Required | cannot be null | [SerializedParentAction](serializedparentaction-definitions-serializedupdatetimelimitruleaction-properties-time.md "https://timelimit.io/SerializedParentAction#/definitions/SerializedUpdateTimelimitRuleAction/properties/time") | | [days](#days) | `number` | Required | cannot be null | [SerializedParentAction](serializedparentaction-definitions-serializedupdatetimelimitruleaction-properties-days.md "https://timelimit.io/SerializedParentAction#/definitions/SerializedUpdateTimelimitRuleAction/properties/days") | | [extraTime](#extraTime) | `boolean` | Required | cannot be null | [SerializedParentAction](serializedparentaction-definitions-serializedupdatetimelimitruleaction-properties-extratime.md "https://timelimit.io/SerializedParentAction#/definitions/SerializedUpdateTimelimitRuleAction/properties/extraTime") | +| [start](#start) | `number` | Optional | cannot be null | [SerializedParentAction](serializedparentaction-definitions-serializedupdatetimelimitruleaction-properties-start.md "https://timelimit.io/SerializedParentAction#/definitions/SerializedUpdateTimelimitRuleAction/properties/start") | +| [end](#end) | `number` | Optional | cannot be null | [SerializedParentAction](serializedparentaction-definitions-serializedupdatetimelimitruleaction-properties-end.md "https://timelimit.io/SerializedParentAction#/definitions/SerializedUpdateTimelimitRuleAction/properties/end") | +| [dur](#dur) | `number` | Optional | cannot be null | [SerializedParentAction](serializedparentaction-definitions-serializedupdatetimelimitruleaction-properties-dur.md "https://timelimit.io/SerializedParentAction#/definitions/SerializedUpdateTimelimitRuleAction/properties/dur") | +| [pause](#pause) | `number` | Optional | cannot be null | [SerializedParentAction](serializedparentaction-definitions-serializedupdatetimelimitruleaction-properties-pause.md "https://timelimit.io/SerializedParentAction#/definitions/SerializedUpdateTimelimitRuleAction/properties/pause") | ## type @@ -112,3 +116,67 @@ https://timelimit.io/SerializedParentAction#/definitions/SerializedUpdateTimelim ### extraTime Type `boolean` + +## start + + + + +`start` + +- is optional +- Type: `number` +- cannot be null +- defined in: [SerializedParentAction](serializedparentaction-definitions-serializedupdatetimelimitruleaction-properties-start.md "https://timelimit.io/SerializedParentAction#/definitions/SerializedUpdateTimelimitRuleAction/properties/start") + +### start Type + +`number` + +## end + + + + +`end` + +- is optional +- Type: `number` +- cannot be null +- defined in: [SerializedParentAction](serializedparentaction-definitions-serializedupdatetimelimitruleaction-properties-end.md "https://timelimit.io/SerializedParentAction#/definitions/SerializedUpdateTimelimitRuleAction/properties/end") + +### end Type + +`number` + +## dur + + + + +`dur` + +- is optional +- Type: `number` +- cannot be null +- defined in: [SerializedParentAction](serializedparentaction-definitions-serializedupdatetimelimitruleaction-properties-dur.md "https://timelimit.io/SerializedParentAction#/definitions/SerializedUpdateTimelimitRuleAction/properties/dur") + +### dur Type + +`number` + +## pause + + + + +`pause` + +- is optional +- Type: `number` +- cannot be null +- defined in: [SerializedParentAction](serializedparentaction-definitions-serializedupdatetimelimitruleaction-properties-pause.md "https://timelimit.io/SerializedParentAction#/definitions/SerializedUpdateTimelimitRuleAction/properties/pause") + +### pause Type + +`number` diff --git a/docs/schema/serializedparentaction.md b/docs/schema/serializedparentaction.md index 553bd70..2a12435 100644 --- a/docs/schema/serializedparentaction.md +++ b/docs/schema/serializedparentaction.md @@ -597,6 +597,10 @@ Reference this group by using | [time](#time) | `number` | Required | cannot be null | [SerializedParentAction](serializedparentaction-definitions-serializedtimelimitrule-properties-time.md "https://timelimit.io/SerializedParentAction#/definitions/SerializedTimeLimitRule/properties/time") | | [days](#days) | `number` | Required | cannot be null | [SerializedParentAction](serializedparentaction-definitions-serializedtimelimitrule-properties-days.md "https://timelimit.io/SerializedParentAction#/definitions/SerializedTimeLimitRule/properties/days") | | [extraTime](#extraTime) | `boolean` | Required | cannot be null | [SerializedParentAction](serializedparentaction-definitions-serializedtimelimitrule-properties-extratime.md "https://timelimit.io/SerializedParentAction#/definitions/SerializedTimeLimitRule/properties/extraTime") | +| [start](#start) | `number` | Optional | cannot be null | [SerializedParentAction](serializedparentaction-definitions-serializedtimelimitrule-properties-start.md "https://timelimit.io/SerializedParentAction#/definitions/SerializedTimeLimitRule/properties/start") | +| [end](#end) | `number` | Optional | cannot be null | [SerializedParentAction](serializedparentaction-definitions-serializedtimelimitrule-properties-end.md "https://timelimit.io/SerializedParentAction#/definitions/SerializedTimeLimitRule/properties/end") | +| [dur](#dur) | `number` | Optional | cannot be null | [SerializedParentAction](serializedparentaction-definitions-serializedtimelimitrule-properties-dur.md "https://timelimit.io/SerializedParentAction#/definitions/SerializedTimeLimitRule/properties/dur") | +| [pause](#pause) | `number` | Optional | cannot be null | [SerializedParentAction](serializedparentaction-definitions-serializedtimelimitrule-properties-pause.md "https://timelimit.io/SerializedParentAction#/definitions/SerializedTimeLimitRule/properties/pause") | ### ruleId @@ -678,6 +682,70 @@ Reference this group by using `boolean` +### start + + + + +`start` + +- is optional +- Type: `number` +- cannot be null +- defined in: [SerializedParentAction](serializedparentaction-definitions-serializedtimelimitrule-properties-start.md "https://timelimit.io/SerializedParentAction#/definitions/SerializedTimeLimitRule/properties/start") + +#### start Type + +`number` + +### end + + + + +`end` + +- is optional +- Type: `number` +- cannot be null +- defined in: [SerializedParentAction](serializedparentaction-definitions-serializedtimelimitrule-properties-end.md "https://timelimit.io/SerializedParentAction#/definitions/SerializedTimeLimitRule/properties/end") + +#### end Type + +`number` + +### dur + + + + +`dur` + +- is optional +- Type: `number` +- cannot be null +- defined in: [SerializedParentAction](serializedparentaction-definitions-serializedtimelimitrule-properties-dur.md "https://timelimit.io/SerializedParentAction#/definitions/SerializedTimeLimitRule/properties/dur") + +#### dur Type + +`number` + +### pause + + + + +`pause` + +- is optional +- Type: `number` +- cannot be null +- defined in: [SerializedParentAction](serializedparentaction-definitions-serializedtimelimitrule-properties-pause.md "https://timelimit.io/SerializedParentAction#/definitions/SerializedTimeLimitRule/properties/pause") + +#### pause Type + +`number` + ## Definitions group SerializedDeleteCategoryAction Reference this group by using @@ -3200,6 +3268,10 @@ Reference this group by using | [time](#time) | `number` | Required | cannot be null | [SerializedParentAction](serializedparentaction-definitions-serializedupdatetimelimitruleaction-properties-time.md "https://timelimit.io/SerializedParentAction#/definitions/SerializedUpdateTimelimitRuleAction/properties/time") | | [days](#days) | `number` | Required | cannot be null | [SerializedParentAction](serializedparentaction-definitions-serializedupdatetimelimitruleaction-properties-days.md "https://timelimit.io/SerializedParentAction#/definitions/SerializedUpdateTimelimitRuleAction/properties/days") | | [extraTime](#extraTime) | `boolean` | Required | cannot be null | [SerializedParentAction](serializedparentaction-definitions-serializedupdatetimelimitruleaction-properties-extratime.md "https://timelimit.io/SerializedParentAction#/definitions/SerializedUpdateTimelimitRuleAction/properties/extraTime") | +| [start](#start) | `number` | Optional | cannot be null | [SerializedParentAction](serializedparentaction-definitions-serializedupdatetimelimitruleaction-properties-start.md "https://timelimit.io/SerializedParentAction#/definitions/SerializedUpdateTimelimitRuleAction/properties/start") | +| [end](#end) | `number` | Optional | cannot be null | [SerializedParentAction](serializedparentaction-definitions-serializedupdatetimelimitruleaction-properties-end.md "https://timelimit.io/SerializedParentAction#/definitions/SerializedUpdateTimelimitRuleAction/properties/end") | +| [dur](#dur) | `number` | Optional | cannot be null | [SerializedParentAction](serializedparentaction-definitions-serializedupdatetimelimitruleaction-properties-dur.md "https://timelimit.io/SerializedParentAction#/definitions/SerializedUpdateTimelimitRuleAction/properties/dur") | +| [pause](#pause) | `number` | Optional | cannot be null | [SerializedParentAction](serializedparentaction-definitions-serializedupdatetimelimitruleaction-properties-pause.md "https://timelimit.io/SerializedParentAction#/definitions/SerializedUpdateTimelimitRuleAction/properties/pause") | ### type @@ -3288,3 +3360,67 @@ Reference this group by using #### extraTime Type `boolean` + +### start + + + + +`start` + +- is optional +- Type: `number` +- cannot be null +- defined in: [SerializedParentAction](serializedparentaction-definitions-serializedupdatetimelimitruleaction-properties-start.md "https://timelimit.io/SerializedParentAction#/definitions/SerializedUpdateTimelimitRuleAction/properties/start") + +#### start Type + +`number` + +### end + + + + +`end` + +- is optional +- Type: `number` +- cannot be null +- defined in: [SerializedParentAction](serializedparentaction-definitions-serializedupdatetimelimitruleaction-properties-end.md "https://timelimit.io/SerializedParentAction#/definitions/SerializedUpdateTimelimitRuleAction/properties/end") + +#### end Type + +`number` + +### dur + + + + +`dur` + +- is optional +- Type: `number` +- cannot be null +- defined in: [SerializedParentAction](serializedparentaction-definitions-serializedupdatetimelimitruleaction-properties-dur.md "https://timelimit.io/SerializedParentAction#/definitions/SerializedUpdateTimelimitRuleAction/properties/dur") + +#### dur Type + +`number` + +### pause + + + + +`pause` + +- is optional +- Type: `number` +- cannot be null +- defined in: [SerializedParentAction](serializedparentaction-definitions-serializedupdatetimelimitruleaction-properties-pause.md "https://timelimit.io/SerializedParentAction#/definitions/SerializedUpdateTimelimitRuleAction/properties/pause") + +#### pause Type + +`number` diff --git a/docs/schema/serverdatastatus-definitions-serversessiondurationitem-properties-d.md b/docs/schema/serverdatastatus-definitions-serversessiondurationitem-properties-d.md new file mode 100644 index 0000000..ae24645 --- /dev/null +++ b/docs/schema/serverdatastatus-definitions-serversessiondurationitem-properties-d.md @@ -0,0 +1,16 @@ +# Untitled number in ServerDataStatus Schema + +```txt +https://timelimit.io/ServerDataStatus#/definitions/ServerSessionDurationItem/properties/d +``` + +the duration of the last/ current session (lastSessionDuration) + + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | ---------- | -------------- | ----------------------- | :---------------- | --------------------- | ------------------- | ------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [ServerDataStatus.schema.json\*](ServerDataStatus.schema.json "open original schema") | + +## d Type + +`number` diff --git a/docs/schema/serverdatastatus-definitions-serversessiondurationitem-properties-em.md b/docs/schema/serverdatastatus-definitions-serversessiondurationitem-properties-em.md new file mode 100644 index 0000000..6dafe5a --- /dev/null +++ b/docs/schema/serverdatastatus-definitions-serversessiondurationitem-properties-em.md @@ -0,0 +1,17 @@ +# Untitled number in ServerDataStatus Schema + +```txt +https://timelimit.io/ServerDataStatus#/definitions/ServerSessionDurationItem/properties/em +``` + +the end minute of the day of the session/ the rule +which created this session (endMinuteOfDay) + + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | ---------- | -------------- | ----------------------- | :---------------- | --------------------- | ------------------- | ------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [ServerDataStatus.schema.json\*](ServerDataStatus.schema.json "open original schema") | + +## em Type + +`number` diff --git a/docs/schema/serverdatastatus-definitions-serversessiondurationitem-properties-l.md b/docs/schema/serverdatastatus-definitions-serversessiondurationitem-properties-l.md new file mode 100644 index 0000000..21defec --- /dev/null +++ b/docs/schema/serverdatastatus-definitions-serversessiondurationitem-properties-l.md @@ -0,0 +1,16 @@ +# Untitled number in ServerDataStatus Schema + +```txt +https://timelimit.io/ServerDataStatus#/definitions/ServerSessionDurationItem/properties/l +``` + +the timestamp of the last usage of this session (lastUsage) + + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | ---------- | -------------- | ----------------------- | :---------------- | --------------------- | ------------------- | ------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [ServerDataStatus.schema.json\*](ServerDataStatus.schema.json "open original schema") | + +## l Type + +`number` diff --git a/docs/schema/serverdatastatus-definitions-serversessiondurationitem-properties-md.md b/docs/schema/serverdatastatus-definitions-serversessiondurationitem-properties-md.md new file mode 100644 index 0000000..64b7922 --- /dev/null +++ b/docs/schema/serverdatastatus-definitions-serversessiondurationitem-properties-md.md @@ -0,0 +1,16 @@ +# Untitled number in ServerDataStatus Schema + +```txt +https://timelimit.io/ServerDataStatus#/definitions/ServerSessionDurationItem/properties/md +``` + +the maximum duration of a session (maxSessionDuration) + + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | ---------- | -------------- | ----------------------- | :---------------- | --------------------- | ------------------- | ------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [ServerDataStatus.schema.json\*](ServerDataStatus.schema.json "open original schema") | + +## md Type + +`number` diff --git a/docs/schema/serverdatastatus-definitions-serversessiondurationitem-properties-sm.md b/docs/schema/serverdatastatus-definitions-serversessiondurationitem-properties-sm.md new file mode 100644 index 0000000..1d3b78c --- /dev/null +++ b/docs/schema/serverdatastatus-definitions-serversessiondurationitem-properties-sm.md @@ -0,0 +1,17 @@ +# Untitled number in ServerDataStatus Schema + +```txt +https://timelimit.io/ServerDataStatus#/definitions/ServerSessionDurationItem/properties/sm +``` + +the start minute of the day of the session/ the rule +which created this session (startMinuteOfDay) + + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | ---------- | -------------- | ----------------------- | :---------------- | --------------------- | ------------------- | ------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [ServerDataStatus.schema.json\*](ServerDataStatus.schema.json "open original schema") | + +## sm Type + +`number` diff --git a/docs/schema/serverdatastatus-definitions-serversessiondurationitem-properties-spd.md b/docs/schema/serverdatastatus-definitions-serversessiondurationitem-properties-spd.md new file mode 100644 index 0000000..946bc51 --- /dev/null +++ b/docs/schema/serverdatastatus-definitions-serversessiondurationitem-properties-spd.md @@ -0,0 +1,16 @@ +# Untitled number in ServerDataStatus Schema + +```txt +https://timelimit.io/ServerDataStatus#/definitions/ServerSessionDurationItem/properties/spd +``` + +the pause duration after a session (sessionPauseDuration) + + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | ---------- | -------------- | ----------------------- | :---------------- | --------------------- | ------------------- | ------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [ServerDataStatus.schema.json\*](ServerDataStatus.schema.json "open original schema") | + +## spd Type + +`number` diff --git a/docs/schema/serverdatastatus-definitions-serversessiondurationitem-properties.md b/docs/schema/serverdatastatus-definitions-serversessiondurationitem-properties.md new file mode 100644 index 0000000..f368020 --- /dev/null +++ b/docs/schema/serverdatastatus-definitions-serversessiondurationitem-properties.md @@ -0,0 +1,16 @@ +# Untitled undefined type in ServerDataStatus Schema + +```txt +https://timelimit.io/ServerDataStatus#/definitions/ServerSessionDurationItem/properties +``` + + + + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | ---------- | -------------- | ----------------------- | :---------------- | --------------------- | ------------------- | ------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [ServerDataStatus.schema.json\*](ServerDataStatus.schema.json "open original schema") | + +## properties Type + +unknown diff --git a/docs/schema/serverdatastatus-definitions-serversessiondurationitem.md b/docs/schema/serverdatastatus-definitions-serversessiondurationitem.md new file mode 100644 index 0000000..5dea2f5 --- /dev/null +++ b/docs/schema/serverdatastatus-definitions-serversessiondurationitem.md @@ -0,0 +1,125 @@ +# ServerSessionDurationItem Schema + +```txt +https://timelimit.io/ServerDataStatus#/definitions/ServerSessionDurationItem +``` + + + + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | ---------- | -------------- | ------------ | :---------------- | --------------------- | ------------------- | ------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | No | Forbidden | Forbidden | none | [ServerDataStatus.schema.json\*](ServerDataStatus.schema.json "open original schema") | + +## ServerSessionDurationItem Type + +`object` ([ServerSessionDurationItem](serverdatastatus-definitions-serversessiondurationitem.md)) + +# ServerSessionDurationItem Properties + +| Property | Type | Required | Nullable | Defined by | +| :---------- | -------- | -------- | -------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [md](#md) | `number` | Required | cannot be null | [ServerDataStatus](serverdatastatus-definitions-serversessiondurationitem-properties-md.md "https://timelimit.io/ServerDataStatus#/definitions/ServerSessionDurationItem/properties/md") | +| [spd](#spd) | `number` | Required | cannot be null | [ServerDataStatus](serverdatastatus-definitions-serversessiondurationitem-properties-spd.md "https://timelimit.io/ServerDataStatus#/definitions/ServerSessionDurationItem/properties/spd") | +| [sm](#sm) | `number` | Required | cannot be null | [ServerDataStatus](serverdatastatus-definitions-serversessiondurationitem-properties-sm.md "https://timelimit.io/ServerDataStatus#/definitions/ServerSessionDurationItem/properties/sm") | +| [em](#em) | `number` | Required | cannot be null | [ServerDataStatus](serverdatastatus-definitions-serversessiondurationitem-properties-em.md "https://timelimit.io/ServerDataStatus#/definitions/ServerSessionDurationItem/properties/em") | +| [l](#l) | `number` | Required | cannot be null | [ServerDataStatus](serverdatastatus-definitions-serversessiondurationitem-properties-l.md "https://timelimit.io/ServerDataStatus#/definitions/ServerSessionDurationItem/properties/l") | +| [d](#d) | `number` | Required | cannot be null | [ServerDataStatus](serverdatastatus-definitions-serversessiondurationitem-properties-d.md "https://timelimit.io/ServerDataStatus#/definitions/ServerSessionDurationItem/properties/d") | + +## md + +the maximum duration of a session (maxSessionDuration) + + +`md` + +- is required +- Type: `number` +- cannot be null +- defined in: [ServerDataStatus](serverdatastatus-definitions-serversessiondurationitem-properties-md.md "https://timelimit.io/ServerDataStatus#/definitions/ServerSessionDurationItem/properties/md") + +### md Type + +`number` + +## spd + +the pause duration after a session (sessionPauseDuration) + + +`spd` + +- is required +- Type: `number` +- cannot be null +- defined in: [ServerDataStatus](serverdatastatus-definitions-serversessiondurationitem-properties-spd.md "https://timelimit.io/ServerDataStatus#/definitions/ServerSessionDurationItem/properties/spd") + +### spd Type + +`number` + +## sm + +the start minute of the day of the session/ the rule +which created this session (startMinuteOfDay) + + +`sm` + +- is required +- Type: `number` +- cannot be null +- defined in: [ServerDataStatus](serverdatastatus-definitions-serversessiondurationitem-properties-sm.md "https://timelimit.io/ServerDataStatus#/definitions/ServerSessionDurationItem/properties/sm") + +### sm Type + +`number` + +## em + +the end minute of the day of the session/ the rule +which created this session (endMinuteOfDay) + + +`em` + +- is required +- Type: `number` +- cannot be null +- defined in: [ServerDataStatus](serverdatastatus-definitions-serversessiondurationitem-properties-em.md "https://timelimit.io/ServerDataStatus#/definitions/ServerSessionDurationItem/properties/em") + +### em Type + +`number` + +## l + +the timestamp of the last usage of this session (lastUsage) + + +`l` + +- is required +- Type: `number` +- cannot be null +- defined in: [ServerDataStatus](serverdatastatus-definitions-serversessiondurationitem-properties-l.md "https://timelimit.io/ServerDataStatus#/definitions/ServerSessionDurationItem/properties/l") + +### l Type + +`number` + +## d + +the duration of the last/ current session (lastSessionDuration) + + +`d` + +- is required +- Type: `number` +- cannot be null +- defined in: [ServerDataStatus](serverdatastatus-definitions-serversessiondurationitem-properties-d.md "https://timelimit.io/ServerDataStatus#/definitions/ServerSessionDurationItem/properties/d") + +### d Type + +`number` diff --git a/docs/schema/serverdatastatus-definitions-servertimelimitrule-properties-end.md b/docs/schema/serverdatastatus-definitions-servertimelimitrule-properties-end.md new file mode 100644 index 0000000..f403bda --- /dev/null +++ b/docs/schema/serverdatastatus-definitions-servertimelimitrule-properties-end.md @@ -0,0 +1,16 @@ +# Untitled number in ServerDataStatus Schema + +```txt +https://timelimit.io/ServerDataStatus#/definitions/ServerTimeLimitRule/properties/end +``` + + + + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | ---------- | -------------- | ----------------------- | :---------------- | --------------------- | ------------------- | ------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [ServerDataStatus.schema.json\*](ServerDataStatus.schema.json "open original schema") | + +## end Type + +`number` diff --git a/docs/schema/serverdatastatus-definitions-servertimelimitrule-properties-pause.md b/docs/schema/serverdatastatus-definitions-servertimelimitrule-properties-pause.md new file mode 100644 index 0000000..a345110 --- /dev/null +++ b/docs/schema/serverdatastatus-definitions-servertimelimitrule-properties-pause.md @@ -0,0 +1,16 @@ +# Untitled number in ServerDataStatus Schema + +```txt +https://timelimit.io/ServerDataStatus#/definitions/ServerTimeLimitRule/properties/pause +``` + + + + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | ---------- | -------------- | ----------------------- | :---------------- | --------------------- | ------------------- | ------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [ServerDataStatus.schema.json\*](ServerDataStatus.schema.json "open original schema") | + +## pause Type + +`number` diff --git a/docs/schema/serverdatastatus-definitions-servertimelimitrule-properties-session.md b/docs/schema/serverdatastatus-definitions-servertimelimitrule-properties-session.md new file mode 100644 index 0000000..6e09d1a --- /dev/null +++ b/docs/schema/serverdatastatus-definitions-servertimelimitrule-properties-session.md @@ -0,0 +1,16 @@ +# Untitled number in ServerDataStatus Schema + +```txt +https://timelimit.io/ServerDataStatus#/definitions/ServerTimeLimitRule/properties/session +``` + + + + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | ---------- | -------------- | ----------------------- | :---------------- | --------------------- | ------------------- | ------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [ServerDataStatus.schema.json\*](ServerDataStatus.schema.json "open original schema") | + +## session Type + +`number` diff --git a/docs/schema/serverdatastatus-definitions-servertimelimitrule-properties-start.md b/docs/schema/serverdatastatus-definitions-servertimelimitrule-properties-start.md new file mode 100644 index 0000000..b5cfef7 --- /dev/null +++ b/docs/schema/serverdatastatus-definitions-servertimelimitrule-properties-start.md @@ -0,0 +1,16 @@ +# Untitled number in ServerDataStatus Schema + +```txt +https://timelimit.io/ServerDataStatus#/definitions/ServerTimeLimitRule/properties/start +``` + + + + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | ---------- | -------------- | ----------------------- | :---------------- | --------------------- | ------------------- | ------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [ServerDataStatus.schema.json\*](ServerDataStatus.schema.json "open original schema") | + +## start Type + +`number` diff --git a/docs/schema/serverdatastatus-definitions-servertimelimitrule.md b/docs/schema/serverdatastatus-definitions-servertimelimitrule.md index 78f8495..62c50cf 100644 --- a/docs/schema/serverdatastatus-definitions-servertimelimitrule.md +++ b/docs/schema/serverdatastatus-definitions-servertimelimitrule.md @@ -23,6 +23,10 @@ https://timelimit.io/ServerDataStatus#/definitions/ServerTimeLimitRule | [extraTime](#extraTime) | `boolean` | Required | cannot be null | [ServerDataStatus](serverdatastatus-definitions-servertimelimitrule-properties-extratime.md "https://timelimit.io/ServerDataStatus#/definitions/ServerTimeLimitRule/properties/extraTime") | | [dayMask](#dayMask) | `number` | Required | cannot be null | [ServerDataStatus](serverdatastatus-definitions-servertimelimitrule-properties-daymask.md "https://timelimit.io/ServerDataStatus#/definitions/ServerTimeLimitRule/properties/dayMask") | | [maxTime](#maxTime) | `number` | Required | cannot be null | [ServerDataStatus](serverdatastatus-definitions-servertimelimitrule-properties-maxtime.md "https://timelimit.io/ServerDataStatus#/definitions/ServerTimeLimitRule/properties/maxTime") | +| [start](#start) | `number` | Required | cannot be null | [ServerDataStatus](serverdatastatus-definitions-servertimelimitrule-properties-start.md "https://timelimit.io/ServerDataStatus#/definitions/ServerTimeLimitRule/properties/start") | +| [end](#end) | `number` | Required | cannot be null | [ServerDataStatus](serverdatastatus-definitions-servertimelimitrule-properties-end.md "https://timelimit.io/ServerDataStatus#/definitions/ServerTimeLimitRule/properties/end") | +| [session](#session) | `number` | Required | cannot be null | [ServerDataStatus](serverdatastatus-definitions-servertimelimitrule-properties-session.md "https://timelimit.io/ServerDataStatus#/definitions/ServerTimeLimitRule/properties/session") | +| [pause](#pause) | `number` | Required | cannot be null | [ServerDataStatus](serverdatastatus-definitions-servertimelimitrule-properties-pause.md "https://timelimit.io/ServerDataStatus#/definitions/ServerTimeLimitRule/properties/pause") | ## id @@ -87,3 +91,67 @@ https://timelimit.io/ServerDataStatus#/definitions/ServerTimeLimitRule ### maxTime Type `number` + +## start + + + + +`start` + +- is required +- Type: `number` +- cannot be null +- defined in: [ServerDataStatus](serverdatastatus-definitions-servertimelimitrule-properties-start.md "https://timelimit.io/ServerDataStatus#/definitions/ServerTimeLimitRule/properties/start") + +### start Type + +`number` + +## end + + + + +`end` + +- is required +- Type: `number` +- cannot be null +- defined in: [ServerDataStatus](serverdatastatus-definitions-servertimelimitrule-properties-end.md "https://timelimit.io/ServerDataStatus#/definitions/ServerTimeLimitRule/properties/end") + +### end Type + +`number` + +## session + + + + +`session` + +- is required +- Type: `number` +- cannot be null +- defined in: [ServerDataStatus](serverdatastatus-definitions-servertimelimitrule-properties-session.md "https://timelimit.io/ServerDataStatus#/definitions/ServerTimeLimitRule/properties/session") + +### session Type + +`number` + +## pause + + + + +`pause` + +- is required +- Type: `number` +- cannot be null +- defined in: [ServerDataStatus](serverdatastatus-definitions-servertimelimitrule-properties-pause.md "https://timelimit.io/ServerDataStatus#/definitions/ServerTimeLimitRule/properties/pause") + +### pause Type + +`number` diff --git a/docs/schema/serverdatastatus-definitions-serverupdatedcategoryusedtimes-properties-sessiondurations.md b/docs/schema/serverdatastatus-definitions-serverupdatedcategoryusedtimes-properties-sessiondurations.md new file mode 100644 index 0000000..79890c5 --- /dev/null +++ b/docs/schema/serverdatastatus-definitions-serverupdatedcategoryusedtimes-properties-sessiondurations.md @@ -0,0 +1,16 @@ +# Untitled array in ServerDataStatus Schema + +```txt +https://timelimit.io/ServerDataStatus#/definitions/ServerUpdatedCategoryUsedTimes/properties/sessionDurations +``` + + + + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | ---------- | -------------- | ----------------------- | :---------------- | --------------------- | ------------------- | ------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [ServerDataStatus.schema.json\*](ServerDataStatus.schema.json "open original schema") | + +## sessionDurations Type + +`object[]` ([ServerSessionDurationItem](serverdatastatus-definitions-serversessiondurationitem.md)) diff --git a/docs/schema/serverdatastatus-definitions-serverupdatedcategoryusedtimes.md b/docs/schema/serverdatastatus-definitions-serverupdatedcategoryusedtimes.md index 85da715..49e61bd 100644 --- a/docs/schema/serverdatastatus-definitions-serverupdatedcategoryusedtimes.md +++ b/docs/schema/serverdatastatus-definitions-serverupdatedcategoryusedtimes.md @@ -17,11 +17,12 @@ https://timelimit.io/ServerDataStatus#/definitions/ServerUpdatedCategoryUsedTime # ServerUpdatedCategoryUsedTimes Properties -| Property | Type | Required | Nullable | Defined by | -| :------------------------ | -------- | -------- | -------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [categoryId](#categoryId) | `string` | Required | cannot be null | [ServerDataStatus](serverdatastatus-definitions-serverupdatedcategoryusedtimes-properties-categoryid.md "https://timelimit.io/ServerDataStatus#/definitions/ServerUpdatedCategoryUsedTimes/properties/categoryId") | -| [times](#times) | `array` | Required | cannot be null | [ServerDataStatus](serverdatastatus-definitions-serverupdatedcategoryusedtimes-properties-times.md "https://timelimit.io/ServerDataStatus#/definitions/ServerUpdatedCategoryUsedTimes/properties/times") | -| [version](#version) | `string` | Required | cannot be null | [ServerDataStatus](serverdatastatus-definitions-serverupdatedcategoryusedtimes-properties-version.md "https://timelimit.io/ServerDataStatus#/definitions/ServerUpdatedCategoryUsedTimes/properties/version") | +| Property | Type | Required | Nullable | Defined by | +| :------------------------------------ | -------- | -------- | -------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [categoryId](#categoryId) | `string` | Required | cannot be null | [ServerDataStatus](serverdatastatus-definitions-serverupdatedcategoryusedtimes-properties-categoryid.md "https://timelimit.io/ServerDataStatus#/definitions/ServerUpdatedCategoryUsedTimes/properties/categoryId") | +| [times](#times) | `array` | Required | cannot be null | [ServerDataStatus](serverdatastatus-definitions-serverupdatedcategoryusedtimes-properties-times.md "https://timelimit.io/ServerDataStatus#/definitions/ServerUpdatedCategoryUsedTimes/properties/times") | +| [sessionDurations](#sessionDurations) | `array` | Required | cannot be null | [ServerDataStatus](serverdatastatus-definitions-serverupdatedcategoryusedtimes-properties-sessiondurations.md "https://timelimit.io/ServerDataStatus#/definitions/ServerUpdatedCategoryUsedTimes/properties/sessionDurations") | +| [version](#version) | `string` | Required | cannot be null | [ServerDataStatus](serverdatastatus-definitions-serverupdatedcategoryusedtimes-properties-version.md "https://timelimit.io/ServerDataStatus#/definitions/ServerUpdatedCategoryUsedTimes/properties/version") | ## categoryId @@ -55,6 +56,22 @@ https://timelimit.io/ServerDataStatus#/definitions/ServerUpdatedCategoryUsedTime `object[]` ([ServerUsedTimeItem](serverdatastatus-definitions-serverusedtimeitem.md)) +## sessionDurations + + + + +`sessionDurations` + +- is required +- Type: `object[]` ([ServerSessionDurationItem](serverdatastatus-definitions-serversessiondurationitem.md)) +- cannot be null +- defined in: [ServerDataStatus](serverdatastatus-definitions-serverupdatedcategoryusedtimes-properties-sessiondurations.md "https://timelimit.io/ServerDataStatus#/definitions/ServerUpdatedCategoryUsedTimes/properties/sessionDurations") + +### sessionDurations Type + +`object[]` ([ServerSessionDurationItem](serverdatastatus-definitions-serversessiondurationitem.md)) + ## version diff --git a/docs/schema/serverdatastatus-definitions-serverusedtimeitem-properties-end.md b/docs/schema/serverdatastatus-definitions-serverusedtimeitem-properties-end.md new file mode 100644 index 0000000..cb14685 --- /dev/null +++ b/docs/schema/serverdatastatus-definitions-serverusedtimeitem-properties-end.md @@ -0,0 +1,16 @@ +# Untitled number in ServerDataStatus Schema + +```txt +https://timelimit.io/ServerDataStatus#/definitions/ServerUsedTimeItem/properties/end +``` + + + + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | ---------- | -------------- | ----------------------- | :---------------- | --------------------- | ------------------- | ------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [ServerDataStatus.schema.json\*](ServerDataStatus.schema.json "open original schema") | + +## end Type + +`number` diff --git a/docs/schema/serverdatastatus-definitions-serverusedtimeitem-properties-start.md b/docs/schema/serverdatastatus-definitions-serverusedtimeitem-properties-start.md new file mode 100644 index 0000000..300fdf2 --- /dev/null +++ b/docs/schema/serverdatastatus-definitions-serverusedtimeitem-properties-start.md @@ -0,0 +1,16 @@ +# Untitled number in ServerDataStatus Schema + +```txt +https://timelimit.io/ServerDataStatus#/definitions/ServerUsedTimeItem/properties/start +``` + + + + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | ---------- | -------------- | ----------------------- | :---------------- | --------------------- | ------------------- | ------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [ServerDataStatus.schema.json\*](ServerDataStatus.schema.json "open original schema") | + +## start Type + +`number` diff --git a/docs/schema/serverdatastatus-definitions-serverusedtimeitem.md b/docs/schema/serverdatastatus-definitions-serverusedtimeitem.md index 51eeea6..cb7b763 100644 --- a/docs/schema/serverdatastatus-definitions-serverusedtimeitem.md +++ b/docs/schema/serverdatastatus-definitions-serverusedtimeitem.md @@ -17,10 +17,12 @@ https://timelimit.io/ServerDataStatus#/definitions/ServerUsedTimeItem # ServerUsedTimeItem Properties -| Property | Type | Required | Nullable | Defined by | -| :------------ | -------- | -------- | -------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [day](#day) | `number` | Required | cannot be null | [ServerDataStatus](serverdatastatus-definitions-serverusedtimeitem-properties-day.md "https://timelimit.io/ServerDataStatus#/definitions/ServerUsedTimeItem/properties/day") | -| [time](#time) | `number` | Required | cannot be null | [ServerDataStatus](serverdatastatus-definitions-serverusedtimeitem-properties-time.md "https://timelimit.io/ServerDataStatus#/definitions/ServerUsedTimeItem/properties/time") | +| Property | Type | Required | Nullable | Defined by | +| :-------------- | -------- | -------- | -------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| [day](#day) | `number` | Required | cannot be null | [ServerDataStatus](serverdatastatus-definitions-serverusedtimeitem-properties-day.md "https://timelimit.io/ServerDataStatus#/definitions/ServerUsedTimeItem/properties/day") | +| [time](#time) | `number` | Required | cannot be null | [ServerDataStatus](serverdatastatus-definitions-serverusedtimeitem-properties-time.md "https://timelimit.io/ServerDataStatus#/definitions/ServerUsedTimeItem/properties/time") | +| [start](#start) | `number` | Required | cannot be null | [ServerDataStatus](serverdatastatus-definitions-serverusedtimeitem-properties-start.md "https://timelimit.io/ServerDataStatus#/definitions/ServerUsedTimeItem/properties/start") | +| [end](#end) | `number` | Required | cannot be null | [ServerDataStatus](serverdatastatus-definitions-serverusedtimeitem-properties-end.md "https://timelimit.io/ServerDataStatus#/definitions/ServerUsedTimeItem/properties/end") | ## day @@ -53,3 +55,35 @@ https://timelimit.io/ServerDataStatus#/definitions/ServerUsedTimeItem ### time Type `number` + +## start + + + + +`start` + +- is required +- Type: `number` +- cannot be null +- defined in: [ServerDataStatus](serverdatastatus-definitions-serverusedtimeitem-properties-start.md "https://timelimit.io/ServerDataStatus#/definitions/ServerUsedTimeItem/properties/start") + +### start Type + +`number` + +## end + + + + +`end` + +- is required +- Type: `number` +- cannot be null +- defined in: [ServerDataStatus](serverdatastatus-definitions-serverusedtimeitem-properties-end.md "https://timelimit.io/ServerDataStatus#/definitions/ServerUsedTimeItem/properties/end") + +### end Type + +`number` diff --git a/docs/schema/serverdatastatus.md b/docs/schema/serverdatastatus.md index c5d5d3a..b99669f 100644 --- a/docs/schema/serverdatastatus.md +++ b/docs/schema/serverdatastatus.md @@ -1285,11 +1285,12 @@ Reference this group by using {"$ref":"https://timelimit.io/ServerDataStatus#/definitions/ServerUpdatedCategoryUsedTimes"} ``` -| Property | Type | Required | Nullable | Defined by | -| :------------------------ | -------- | -------- | -------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [categoryId](#categoryId) | `string` | Required | cannot be null | [ServerDataStatus](serverdatastatus-definitions-serverupdatedcategoryusedtimes-properties-categoryid.md "https://timelimit.io/ServerDataStatus#/definitions/ServerUpdatedCategoryUsedTimes/properties/categoryId") | -| [times](#times) | `array` | Required | cannot be null | [ServerDataStatus](serverdatastatus-definitions-serverupdatedcategoryusedtimes-properties-times.md "https://timelimit.io/ServerDataStatus#/definitions/ServerUpdatedCategoryUsedTimes/properties/times") | -| [version](#version) | `string` | Required | cannot be null | [ServerDataStatus](serverdatastatus-definitions-serverupdatedcategoryusedtimes-properties-version.md "https://timelimit.io/ServerDataStatus#/definitions/ServerUpdatedCategoryUsedTimes/properties/version") | +| Property | Type | Required | Nullable | Defined by | +| :------------------------------------ | -------- | -------- | -------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [categoryId](#categoryId) | `string` | Required | cannot be null | [ServerDataStatus](serverdatastatus-definitions-serverupdatedcategoryusedtimes-properties-categoryid.md "https://timelimit.io/ServerDataStatus#/definitions/ServerUpdatedCategoryUsedTimes/properties/categoryId") | +| [times](#times) | `array` | Required | cannot be null | [ServerDataStatus](serverdatastatus-definitions-serverupdatedcategoryusedtimes-properties-times.md "https://timelimit.io/ServerDataStatus#/definitions/ServerUpdatedCategoryUsedTimes/properties/times") | +| [sessionDurations](#sessionDurations) | `array` | Required | cannot be null | [ServerDataStatus](serverdatastatus-definitions-serverupdatedcategoryusedtimes-properties-sessiondurations.md "https://timelimit.io/ServerDataStatus#/definitions/ServerUpdatedCategoryUsedTimes/properties/sessionDurations") | +| [version](#version) | `string` | Required | cannot be null | [ServerDataStatus](serverdatastatus-definitions-serverupdatedcategoryusedtimes-properties-version.md "https://timelimit.io/ServerDataStatus#/definitions/ServerUpdatedCategoryUsedTimes/properties/version") | ### categoryId @@ -1323,6 +1324,22 @@ Reference this group by using `object[]` ([ServerUsedTimeItem](serverdatastatus-definitions-serverusedtimeitem.md)) +### sessionDurations + + + + +`sessionDurations` + +- is required +- Type: `object[]` ([ServerSessionDurationItem](serverdatastatus-definitions-serversessiondurationitem.md)) +- cannot be null +- defined in: [ServerDataStatus](serverdatastatus-definitions-serverupdatedcategoryusedtimes-properties-sessiondurations.md "https://timelimit.io/ServerDataStatus#/definitions/ServerUpdatedCategoryUsedTimes/properties/sessionDurations") + +#### sessionDurations Type + +`object[]` ([ServerSessionDurationItem](serverdatastatus-definitions-serversessiondurationitem.md)) + ### version @@ -1347,10 +1364,12 @@ Reference this group by using {"$ref":"https://timelimit.io/ServerDataStatus#/definitions/ServerUsedTimeItem"} ``` -| Property | Type | Required | Nullable | Defined by | -| :------------ | -------- | -------- | -------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [day](#day) | `number` | Required | cannot be null | [ServerDataStatus](serverdatastatus-definitions-serverusedtimeitem-properties-day.md "https://timelimit.io/ServerDataStatus#/definitions/ServerUsedTimeItem/properties/day") | -| [time](#time) | `number` | Required | cannot be null | [ServerDataStatus](serverdatastatus-definitions-serverusedtimeitem-properties-time.md "https://timelimit.io/ServerDataStatus#/definitions/ServerUsedTimeItem/properties/time") | +| Property | Type | Required | Nullable | Defined by | +| :-------------- | -------- | -------- | -------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| [day](#day) | `number` | Required | cannot be null | [ServerDataStatus](serverdatastatus-definitions-serverusedtimeitem-properties-day.md "https://timelimit.io/ServerDataStatus#/definitions/ServerUsedTimeItem/properties/day") | +| [time](#time) | `number` | Required | cannot be null | [ServerDataStatus](serverdatastatus-definitions-serverusedtimeitem-properties-time.md "https://timelimit.io/ServerDataStatus#/definitions/ServerUsedTimeItem/properties/time") | +| [start](#start) | `number` | Required | cannot be null | [ServerDataStatus](serverdatastatus-definitions-serverusedtimeitem-properties-start.md "https://timelimit.io/ServerDataStatus#/definitions/ServerUsedTimeItem/properties/start") | +| [end](#end) | `number` | Required | cannot be null | [ServerDataStatus](serverdatastatus-definitions-serverusedtimeitem-properties-end.md "https://timelimit.io/ServerDataStatus#/definitions/ServerUsedTimeItem/properties/end") | ### day @@ -1384,6 +1403,153 @@ Reference this group by using `number` +### start + + + + +`start` + +- is required +- Type: `number` +- cannot be null +- defined in: [ServerDataStatus](serverdatastatus-definitions-serverusedtimeitem-properties-start.md "https://timelimit.io/ServerDataStatus#/definitions/ServerUsedTimeItem/properties/start") + +#### start Type + +`number` + +### end + + + + +`end` + +- is required +- Type: `number` +- cannot be null +- defined in: [ServerDataStatus](serverdatastatus-definitions-serverusedtimeitem-properties-end.md "https://timelimit.io/ServerDataStatus#/definitions/ServerUsedTimeItem/properties/end") + +#### end Type + +`number` + +## Definitions group ServerSessionDurationItem + +Reference this group by using + +```json +{"$ref":"https://timelimit.io/ServerDataStatus#/definitions/ServerSessionDurationItem"} +``` + +| Property | Type | Required | Nullable | Defined by | +| :---------- | -------- | -------- | -------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [md](#md) | `number` | Required | cannot be null | [ServerDataStatus](serverdatastatus-definitions-serversessiondurationitem-properties-md.md "https://timelimit.io/ServerDataStatus#/definitions/ServerSessionDurationItem/properties/md") | +| [spd](#spd) | `number` | Required | cannot be null | [ServerDataStatus](serverdatastatus-definitions-serversessiondurationitem-properties-spd.md "https://timelimit.io/ServerDataStatus#/definitions/ServerSessionDurationItem/properties/spd") | +| [sm](#sm) | `number` | Required | cannot be null | [ServerDataStatus](serverdatastatus-definitions-serversessiondurationitem-properties-sm.md "https://timelimit.io/ServerDataStatus#/definitions/ServerSessionDurationItem/properties/sm") | +| [em](#em) | `number` | Required | cannot be null | [ServerDataStatus](serverdatastatus-definitions-serversessiondurationitem-properties-em.md "https://timelimit.io/ServerDataStatus#/definitions/ServerSessionDurationItem/properties/em") | +| [l](#l) | `number` | Required | cannot be null | [ServerDataStatus](serverdatastatus-definitions-serversessiondurationitem-properties-l.md "https://timelimit.io/ServerDataStatus#/definitions/ServerSessionDurationItem/properties/l") | +| [d](#d) | `number` | Required | cannot be null | [ServerDataStatus](serverdatastatus-definitions-serversessiondurationitem-properties-d.md "https://timelimit.io/ServerDataStatus#/definitions/ServerSessionDurationItem/properties/d") | + +### md + +the maximum duration of a session (maxSessionDuration) + + +`md` + +- is required +- Type: `number` +- cannot be null +- defined in: [ServerDataStatus](serverdatastatus-definitions-serversessiondurationitem-properties-md.md "https://timelimit.io/ServerDataStatus#/definitions/ServerSessionDurationItem/properties/md") + +#### md Type + +`number` + +### spd + +the pause duration after a session (sessionPauseDuration) + + +`spd` + +- is required +- Type: `number` +- cannot be null +- defined in: [ServerDataStatus](serverdatastatus-definitions-serversessiondurationitem-properties-spd.md "https://timelimit.io/ServerDataStatus#/definitions/ServerSessionDurationItem/properties/spd") + +#### spd Type + +`number` + +### sm + +the start minute of the day of the session/ the rule +which created this session (startMinuteOfDay) + + +`sm` + +- is required +- Type: `number` +- cannot be null +- defined in: [ServerDataStatus](serverdatastatus-definitions-serversessiondurationitem-properties-sm.md "https://timelimit.io/ServerDataStatus#/definitions/ServerSessionDurationItem/properties/sm") + +#### sm Type + +`number` + +### em + +the end minute of the day of the session/ the rule +which created this session (endMinuteOfDay) + + +`em` + +- is required +- Type: `number` +- cannot be null +- defined in: [ServerDataStatus](serverdatastatus-definitions-serversessiondurationitem-properties-em.md "https://timelimit.io/ServerDataStatus#/definitions/ServerSessionDurationItem/properties/em") + +#### em Type + +`number` + +### l + +the timestamp of the last usage of this session (lastUsage) + + +`l` + +- is required +- Type: `number` +- cannot be null +- defined in: [ServerDataStatus](serverdatastatus-definitions-serversessiondurationitem-properties-l.md "https://timelimit.io/ServerDataStatus#/definitions/ServerSessionDurationItem/properties/l") + +#### l Type + +`number` + +### d + +the duration of the last/ current session (lastSessionDuration) + + +`d` + +- is required +- Type: `number` +- cannot be null +- defined in: [ServerDataStatus](serverdatastatus-definitions-serversessiondurationitem-properties-d.md "https://timelimit.io/ServerDataStatus#/definitions/ServerSessionDurationItem/properties/d") + +#### d Type + +`number` + ## Definitions group ServerUpdatedTimeLimitRules Reference this group by using @@ -1460,6 +1626,10 @@ Reference this group by using | [extraTime](#extraTime) | `boolean` | Required | cannot be null | [ServerDataStatus](serverdatastatus-definitions-servertimelimitrule-properties-extratime.md "https://timelimit.io/ServerDataStatus#/definitions/ServerTimeLimitRule/properties/extraTime") | | [dayMask](#dayMask) | `number` | Required | cannot be null | [ServerDataStatus](serverdatastatus-definitions-servertimelimitrule-properties-daymask.md "https://timelimit.io/ServerDataStatus#/definitions/ServerTimeLimitRule/properties/dayMask") | | [maxTime](#maxTime) | `number` | Required | cannot be null | [ServerDataStatus](serverdatastatus-definitions-servertimelimitrule-properties-maxtime.md "https://timelimit.io/ServerDataStatus#/definitions/ServerTimeLimitRule/properties/maxTime") | +| [start](#start) | `number` | Required | cannot be null | [ServerDataStatus](serverdatastatus-definitions-servertimelimitrule-properties-start.md "https://timelimit.io/ServerDataStatus#/definitions/ServerTimeLimitRule/properties/start") | +| [end](#end) | `number` | Required | cannot be null | [ServerDataStatus](serverdatastatus-definitions-servertimelimitrule-properties-end.md "https://timelimit.io/ServerDataStatus#/definitions/ServerTimeLimitRule/properties/end") | +| [session](#session) | `number` | Required | cannot be null | [ServerDataStatus](serverdatastatus-definitions-servertimelimitrule-properties-session.md "https://timelimit.io/ServerDataStatus#/definitions/ServerTimeLimitRule/properties/session") | +| [pause](#pause) | `number` | Required | cannot be null | [ServerDataStatus](serverdatastatus-definitions-servertimelimitrule-properties-pause.md "https://timelimit.io/ServerDataStatus#/definitions/ServerTimeLimitRule/properties/pause") | ### id @@ -1525,6 +1695,70 @@ Reference this group by using `number` +### start + + + + +`start` + +- is required +- Type: `number` +- cannot be null +- defined in: [ServerDataStatus](serverdatastatus-definitions-servertimelimitrule-properties-start.md "https://timelimit.io/ServerDataStatus#/definitions/ServerTimeLimitRule/properties/start") + +#### start Type + +`number` + +### end + + + + +`end` + +- is required +- Type: `number` +- cannot be null +- defined in: [ServerDataStatus](serverdatastatus-definitions-servertimelimitrule-properties-end.md "https://timelimit.io/ServerDataStatus#/definitions/ServerTimeLimitRule/properties/end") + +#### end Type + +`number` + +### session + + + + +`session` + +- is required +- Type: `number` +- cannot be null +- defined in: [ServerDataStatus](serverdatastatus-definitions-servertimelimitrule-properties-session.md "https://timelimit.io/ServerDataStatus#/definitions/ServerTimeLimitRule/properties/session") + +#### session Type + +`number` + +### pause + + + + +`pause` + +- is required +- Type: `number` +- cannot be null +- defined in: [ServerDataStatus](serverdatastatus-definitions-servertimelimitrule-properties-pause.md "https://timelimit.io/ServerDataStatus#/definitions/ServerTimeLimitRule/properties/pause") + +#### pause Type + +`number` + ## Definitions group ServerUserList Reference this group by using diff --git a/src/action/addusedtime2.ts b/src/action/addusedtime2.ts index 9c456f5..82ad7c4 100644 --- a/src/action/addusedtime2.ts +++ b/src/action/addusedtime2.ts @@ -16,6 +16,7 @@ */ import { uniq } from 'lodash' +import { MinuteOfDay } from '../util/minuteofday' import { assertIdWithinFamily } from '../util/token' import { AppLogicAction } from './basetypes' @@ -25,15 +26,21 @@ export class AddUsedTimeActionVersion2 extends AppLogicAction { readonly categoryId: string readonly timeToAdd: number readonly extraTimeToSubtract: number + readonly additionalCountingSlots: Array + readonly sessionDurationLimits: Array }> + readonly trustedTimestamp: number - constructor ({ dayOfEpoch, items }: { + constructor ({ dayOfEpoch, items, trustedTimestamp }: { dayOfEpoch: number items: Array<{ categoryId: string timeToAdd: number extraTimeToSubtract: number + additionalCountingSlots: Array + sessionDurationLimits: Array }> + trustedTimestamp: number }) { super() @@ -41,6 +48,10 @@ export class AddUsedTimeActionVersion2 extends AppLogicAction { throw new Error('illegal dayOfEpoch') } + if (trustedTimestamp < 0 || (!Number.isSafeInteger(trustedTimestamp))) { + throw new Error('illegal trustedTimestamp') + } + if (items.length === 0) { throw new Error('missing items') } @@ -59,10 +70,25 @@ export class AddUsedTimeActionVersion2 extends AppLogicAction { if (item.extraTimeToSubtract < 0 || (!Number.isSafeInteger(item.extraTimeToSubtract))) { throw new Error('illegal extra time to subtract') } + + if ( + uniq(item.additionalCountingSlots.map((item) => JSON.stringify(item.serialize()))).length !== + item.additionalCountingSlots.length + ) { + throw new Error() + } + + if ( + uniq(item.sessionDurationLimits.map((item) => JSON.stringify(item.serialize()))).length !== + item.sessionDurationLimits.length + ) { + throw new Error() + } }) this.dayOfEpoch = dayOfEpoch this.items = items + this.trustedTimestamp = trustedTimestamp } serialize = (): SerializedAddUsedTimeActionVersion2 => ({ @@ -72,21 +98,84 @@ export class AddUsedTimeActionVersion2 extends AppLogicAction { categoryId: item.categoryId, tta: item.timeToAdd, etts: item.extraTimeToSubtract - })) + })), + t: this.trustedTimestamp }) - static parse = ({ d, i }: SerializedAddUsedTimeActionVersion2) => ( + static parse = ({ d, i, t }: SerializedAddUsedTimeActionVersion2) => ( new AddUsedTimeActionVersion2({ dayOfEpoch: d, items: i.map((item) => ({ categoryId: item.categoryId, timeToAdd: item.tta, - extraTimeToSubtract: item.etts - })) + extraTimeToSubtract: item.etts, + sessionDurationLimits: (item.sdl ?? []).map((item) => AddUsedTimeActionItemSessionDurationLimitSlot.parse(item)), + additionalCountingSlots: (item.as ?? []).map((item) => AddUsedTimeActionItemAdditionalCountingSlot.parse(item)) + })), + trustedTimestamp: t ?? 0 }) ) } +class AddUsedTimeActionItemAdditionalCountingSlot { + readonly start: number + readonly end: number + + constructor ({ start, end }: { start: number, end: number }) { + if ((!Number.isSafeInteger(start)) || (!Number.isSafeInteger(end))) { + throw new Error() + } + + if (start < MinuteOfDay.MIN || end > MinuteOfDay.MAX || start > end) { + throw new Error() + } + + if (start === MinuteOfDay.MIN && end === MinuteOfDay.MAX) { + throw new Error() + } + + this.start = start + this.end = end + } + + serialize = () => [ this.start, this.end ] + + static parse = ([ start, end ]: [number, number]) => new AddUsedTimeActionItemAdditionalCountingSlot({ start, end }) +} + +class AddUsedTimeActionItemSessionDurationLimitSlot { + readonly start: number + readonly end: number + readonly duration: number + readonly pause: number + + constructor ({ start, end, duration, pause }: { start: number, end: number, duration: number, pause: number }) { + if ( + (!Number.isSafeInteger(start)) || (!Number.isSafeInteger(end)) || + (!Number.isSafeInteger(duration)) || (!Number.isSafeInteger(pause)) + ) { + throw new Error() + } + + if (start < MinuteOfDay.MIN || end > MinuteOfDay.MAX || start > end) { + throw new Error() + } + + if (duration <= 0 || pause <= 0) { + throw new Error() + } + + this.start = start + this.end = end + this.duration = duration + this.pause = pause + } + + serialize = () => [ this.start, this.end ] + + static parse = ([ start, end, duration, pause ]: [number, number, number, number]) => new AddUsedTimeActionItemSessionDurationLimitSlot({ start, end, duration, pause }) +} + export interface SerializedAddUsedTimeActionVersion2 { type: 'ADD_USED_TIME_V2' d: number @@ -94,5 +183,10 @@ export interface SerializedAddUsedTimeActionVersion2 { categoryId: string tta: number etts: number + // start, end + as?: Array<[number, number]> + // start, end, length, pause + sdl?: Array<[number, number, number, number]> }> + t?: number } diff --git a/src/action/updatetimelimitrule.ts b/src/action/updatetimelimitrule.ts index d43fd2b..6114317 100644 --- a/src/action/updatetimelimitrule.ts +++ b/src/action/updatetimelimitrule.ts @@ -1,6 +1,6 @@ /* * server component for the TimeLimit App - * Copyright (C) 2019 Jonas Lochmann + * Copyright (C) 2019 - 2020 Jonas Lochmann * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as @@ -15,6 +15,7 @@ * along with this program. If not, see . */ +import { MinuteOfDay } from '../util/minuteofday' import { assertIdWithinFamily } from '../util/token' import { ParentAction } from './basetypes' @@ -23,12 +24,23 @@ export class UpdateTimelimitRuleAction extends ParentAction { readonly maximumTimeInMillis: number readonly dayMask: number readonly applyToExtraTimeUsage: boolean + readonly start: number + readonly end: number + readonly sessionDurationMilliseconds: number + readonly sessionPauseMilliseconds: number - constructor ({ ruleId, maximumTimeInMillis, dayMask, applyToExtraTimeUsage }: { + constructor ({ + ruleId, maximumTimeInMillis, dayMask, applyToExtraTimeUsage, + start, end, sessionDurationMilliseconds, sessionPauseMilliseconds + }: { ruleId: string maximumTimeInMillis: number dayMask: number applyToExtraTimeUsage: boolean + start: number + end: number + sessionDurationMilliseconds: number + sessionPauseMilliseconds: number }) { super() @@ -36,6 +48,10 @@ export class UpdateTimelimitRuleAction extends ParentAction { this.maximumTimeInMillis = maximumTimeInMillis this.dayMask = dayMask this.applyToExtraTimeUsage = applyToExtraTimeUsage + this.start = start + this.end = end + this.sessionDurationMilliseconds = sessionDurationMilliseconds + this.sessionPauseMilliseconds = sessionPauseMilliseconds assertIdWithinFamily(ruleId) @@ -50,6 +66,23 @@ export class UpdateTimelimitRuleAction extends ParentAction { )) { throw new Error('invalid day mask') } + + if ( + (!Number.isSafeInteger(start)) || + (!Number.isSafeInteger(end)) || + (!Number.isSafeInteger(sessionDurationMilliseconds)) || + (!Number.isSafeInteger(sessionPauseMilliseconds)) + ) { + throw new Error() + } + + if (start < MinuteOfDay.MIN || end > MinuteOfDay.MAX || start > end) { + throw new Error() + } + + if (sessionDurationMilliseconds < 0 || sessionPauseMilliseconds < 0) { + throw new Error() + } } serialize = (): SerializedUpdateTimelimitRuleAction => ({ @@ -57,15 +90,23 @@ export class UpdateTimelimitRuleAction extends ParentAction { ruleId: this.ruleId, time: this.maximumTimeInMillis, days: this.dayMask, - extraTime: this.applyToExtraTimeUsage + extraTime: this.applyToExtraTimeUsage, + start: this.start, + end: this.end, + pause: this.sessionPauseMilliseconds, + dur: this.sessionDurationMilliseconds }) - static parse = ({ ruleId, time, days, extraTime }: SerializedUpdateTimelimitRuleAction) => ( + static parse = ({ ruleId, time, days, extraTime, start, end, dur, pause }: SerializedUpdateTimelimitRuleAction) => ( new UpdateTimelimitRuleAction({ ruleId, maximumTimeInMillis: time, dayMask: days, - applyToExtraTimeUsage: extraTime + applyToExtraTimeUsage: extraTime, + start: start ?? MinuteOfDay.MIN, + end: end ?? MinuteOfDay.MAX, + sessionDurationMilliseconds: dur ?? 0, + sessionPauseMilliseconds: pause ?? 0 }) ) } @@ -76,4 +117,8 @@ export interface SerializedUpdateTimelimitRuleAction { time: number days: number extraTime: boolean + start?: number + end?: number + dur?: number + pause?: number } diff --git a/src/api/validator.ts b/src/api/validator.ts index f362b9d..d28ac4b 100644 --- a/src/api/validator.ts +++ b/src/api/validator.ts @@ -24,6 +24,9 @@ const definitions = { }, "users": { "type": "string" + }, + "clientLevel": { + "type": "number" } }, "additionalProperties": false, @@ -252,6 +255,18 @@ const definitions = { }, "extraTime": { "type": "boolean" + }, + "start": { + "type": "number" + }, + "end": { + "type": "number" + }, + "dur": { + "type": "number" + }, + "pause": { + "type": "number" } }, "additionalProperties": false, @@ -1087,6 +1102,18 @@ const definitions = { }, "extraTime": { "type": "boolean" + }, + "start": { + "type": "number" + }, + "end": { + "type": "number" + }, + "dur": { + "type": "number" + }, + "pause": { + "type": "number" } }, "additionalProperties": false, @@ -1208,6 +1235,68 @@ const definitions = { }, "etts": { "type": "number" + }, + "as": { + "type": "array", + "items": { + "type": "array", + "items": [ + { + "type": "number" + }, + { + "type": "number" + } + ], + "minItems": 2, + "additionalItems": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "number" + } + ] + } + } + }, + "sdl": { + "type": "array", + "items": { + "type": "array", + "items": [ + { + "type": "number" + }, + { + "type": "number" + }, + { + "type": "number" + }, + { + "type": "number" + } + ], + "minItems": 4, + "additionalItems": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "number" + }, + { + "type": "number" + }, + { + "type": "number" + } + ] + } + } } }, "additionalProperties": false, @@ -1217,6 +1306,9 @@ const definitions = { "tta" ] } + }, + "t": { + "type": "number" } }, "additionalProperties": false, @@ -1750,6 +1842,12 @@ const definitions = { "$ref": "#/definitions/ServerUsedTimeItem" } }, + "sessionDurations": { + "type": "array", + "items": { + "$ref": "#/definitions/ServerSessionDurationItem" + } + }, "version": { "type": "string" } @@ -1757,6 +1855,7 @@ const definitions = { "additionalProperties": false, "required": [ "categoryId", + "sessionDurations", "times", "version" ] @@ -1769,14 +1868,60 @@ const definitions = { }, "time": { "type": "number" + }, + "start": { + "type": "number" + }, + "end": { + "type": "number" } }, "additionalProperties": false, "required": [ "day", + "end", + "start", "time" ] }, + "ServerSessionDurationItem": { + "type": "object", + "properties": { + "md": { + "description": "the maximum duration of a session (maxSessionDuration)", + "type": "number" + }, + "spd": { + "description": "the pause duration after a session (sessionPauseDuration)", + "type": "number" + }, + "sm": { + "description": "the start minute of the day of the session/ the rule\nwhich created this session (startMinuteOfDay)", + "type": "number" + }, + "em": { + "description": "the end minute of the day of the session/ the rule\nwhich created this session (endMinuteOfDay)", + "type": "number" + }, + "l": { + "description": "the timestamp of the last usage of this session (lastUsage)", + "type": "number" + }, + "d": { + "description": "the duration of the last/ current session (lastSessionDuration)", + "type": "number" + } + }, + "additionalProperties": false, + "required": [ + "d", + "em", + "l", + "md", + "sm", + "spd" + ] + }, "ServerUpdatedTimeLimitRules": { "type": "object", "properties": { @@ -1814,14 +1959,30 @@ const definitions = { }, "maxTime": { "type": "number" + }, + "start": { + "type": "number" + }, + "end": { + "type": "number" + }, + "session": { + "type": "number" + }, + "pause": { + "type": "number" } }, "additionalProperties": false, "required": [ "dayMask", + "end", "extraTime", "id", - "maxTime" + "maxTime", + "pause", + "session", + "start" ] }, "ServerUserList": { diff --git a/src/database/index.ts b/src/database/index.ts index 36adceb..c3e6c72 100644 --- a/src/database/index.ts +++ b/src/database/index.ts @@ -29,6 +29,7 @@ import { createMailLoginTokenModel, MailLoginTokenModelStatic } from './maillogi import { createUmzug } from './migration/umzug' import { createOldDeviceModel, OldDeviceModelStatic } from './olddevice' import { createPurchaseModel, PurchaseModelStatic } from './purchase' +import { createSessionDurationModel, SessionDurationModelStatic } from './sessionduration' import { createTimelimitRuleModel, TimelimitRuleModelStatic } from './timelimitrule' import { createUsedTimeModel, UsedTimeModelStatic } from './usedtime' import { createUserModel, UserModelStatic } from './user' @@ -46,6 +47,7 @@ export interface Database { mailLoginToken: MailLoginTokenModelStatic oldDevice: OldDeviceModelStatic purchase: PurchaseModelStatic + sessionDuration: SessionDurationModelStatic timelimitRule: TimelimitRuleModelStatic usedTime: UsedTimeModelStatic user: UserModelStatic @@ -65,6 +67,7 @@ const createDatabase = (sequelize: Sequelize.Sequelize): Database => ({ mailLoginToken: createMailLoginTokenModel(sequelize), oldDevice: createOldDeviceModel(sequelize), purchase: createPurchaseModel(sequelize), + sessionDuration: createSessionDurationModel(sequelize), timelimitRule: createTimelimitRuleModel(sequelize), usedTime: createUsedTimeModel(sequelize), user: createUserModel(sequelize), diff --git a/src/database/migration/migrations/20181014-setup-tables.ts b/src/database/migration/migrations/20181014-setup-tables.ts index b1a1d91..7804155 100644 --- a/src/database/migration/migrations/20181014-setup-tables.ts +++ b/src/database/migration/migrations/20181014-setup-tables.ts @@ -1,6 +1,6 @@ /* * server component for the TimeLimit App - * Copyright (C) 2019 Jonas Lochmann + * Copyright (C) 2019 - 2020 Jonas Lochmann * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as @@ -24,7 +24,7 @@ import { attributes as categoryAppAttributes } from '../../categoryapp' import { attributesVersion1 as deviceAttributes } from '../../device' import { attributes as familyAttributes } from '../../family' import { attributes as purchaseAttributes } from '../../purchase' -import { attributes as timelimitruleAttributes } from '../../timelimitrule' +import { attributesVersion1 as timelimitruleAttributes } from '../../timelimitrule' import { attributesVersion1 as usedTimeAttribute } from '../../usedtime' import { attributesVersion1 as userAttributes } from '../../user' diff --git a/src/database/migration/migrations/20200525-add-new-limit-options.ts b/src/database/migration/migrations/20200525-add-new-limit-options.ts new file mode 100644 index 0000000..ce05f2a --- /dev/null +++ b/src/database/migration/migrations/20200525-add-new-limit-options.ts @@ -0,0 +1,88 @@ +/* + * server component for the TimeLimit App + * Copyright (C) 2019 - 2020 Jonas Lochmann + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, version 3 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +import { QueryInterface, Sequelize, Transaction } from 'sequelize' +import { MinuteOfDay } from '../../../util/minuteofday' +import { attributesVersion1 as sessionDurationAttributes } from '../../sessionduration' +import { attributesVersion2 as timelimitRuleAttributes } from '../../timelimitrule' +import { + attributesVersion1 as usedTimeAttributesVersion1, + attributesVersion2 as usedTimeAttributesVersion2, + attributesVersion3 as usedTimeAttributesVersion3 +} from '../../usedtime' + +export async function up (queryInterface: QueryInterface, sequelize: Sequelize) { + await sequelize.transaction({ + type: Transaction.TYPES.EXCLUSIVE + }, async (transaction) => { + // session durations + await queryInterface.createTable('SessionDurations', sessionDurationAttributes, { transaction }) + + // timelimit rule table + await queryInterface.addColumn('TimelimitRules', 'startMinuteOfDay', { + ...timelimitRuleAttributes.startMinuteOfDay + }, { transaction }) + + await queryInterface.addColumn('TimelimitRules', 'endMinuteOfDay', { + ...timelimitRuleAttributes.endMinuteOfDay + }, { transaction }) + + await queryInterface.addColumn('TimelimitRules', 'sessionDurationMilliseconds', { + ...timelimitRuleAttributes.sessionDurationMilliseconds + }, { transaction }) + + await queryInterface.addColumn('TimelimitRules', 'sessionPauseMilliseconds', { + ...timelimitRuleAttributes.sessionPauseMilliseconds + }, { transaction }) + + // used times + await queryInterface.renameTable('UsedTimes', 'UsedTimesOld', { transaction }) + + await queryInterface.createTable('UsedTimes', { + ...usedTimeAttributesVersion1, + ...usedTimeAttributesVersion2, + ...usedTimeAttributesVersion3 + }, { transaction }) + + await sequelize.query(` + INSERT INTO UsedTimes (familyId, categoryId, dayOfEpoch, usedTime, lastUpdate, startMinuteOfDay, endMinuteOfDay) + SELECT familyId, categoryId, dayOfEpoch, usedTime, lastUpdate, + ${MinuteOfDay.MIN} AS startMinuteOfDay, ${MinuteOfDay.MAX} AS endMinuteOfDay + FROM UsedTimesOld + `, { transaction }) + + await queryInterface.dropTable('UsedTimesOld', { transaction }) + }) +} + +export async function down (queryInterface: QueryInterface, sequelize: Sequelize) { + await sequelize.transaction({ + type: Transaction.TYPES.EXCLUSIVE + }, async (transaction) => { + // session durations + await queryInterface.dropTable('SessionDurations', { transaction }) + + // timelimit rule table + await queryInterface.removeColumn('TimelimitRules', 'startMinuteOfDay', { transaction }) + await queryInterface.removeColumn('TimelimitRules', 'endMinuteOfDay', { transaction }) + await queryInterface.removeColumn('TimelimitRules', 'sessionDurationMilliseconds', { transaction }) + await queryInterface.removeColumn('TimelimitRules', 'sessionPauseMilliseconds', { transaction }) + + // used times + throw new Error('not implemented') + }) +} diff --git a/src/database/sessionduration.ts b/src/database/sessionduration.ts new file mode 100644 index 0000000..7d99eff --- /dev/null +++ b/src/database/sessionduration.ts @@ -0,0 +1,112 @@ +/* + * server component for the TimeLimit App + * Copyright (C) 2019 - 2020 Jonas Lochmann + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, version 3 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +import * as Sequelize from 'sequelize' +import { MinuteOfDay } from '../util/minuteofday' +import { familyIdColumn, idWithinFamilyColumn, timestampColumn } from './columns' +import { SequelizeAttributes } from './types' + +interface SessionDurationAttributesVersion1 { + familyId: string + categoryId: string + maxSessionDuration: number + sessionPauseDuration: number + startMinuteOfDay: number + endMinuteOfDay: number + lastUsage: string + lastSessionDuration: number + // used for deleting old items, set by the server + roundedLastUpdate: string +} + +export type SessionDurationAttributes = SessionDurationAttributesVersion1 + +export type SessionDurationModel = Sequelize.Model & SessionDurationAttributes +export type SessionDurationModelStatic = typeof Sequelize.Model & { + new (values?: object, options?: Sequelize.BuildOptions): SessionDurationModel; +} + +export const attributesVersion1: SequelizeAttributes = { + familyId: { + ...familyIdColumn, + primaryKey: true + }, + categoryId: { + ...idWithinFamilyColumn, + primaryKey: true + }, + maxSessionDuration: { + type: Sequelize.INTEGER, + primaryKey: true, + allowNull: false, + validate: { + min: 1 + } + }, + sessionPauseDuration: { + type: Sequelize.INTEGER, + primaryKey: true, + allowNull: false, + validate: { + min: 1 + } + }, + startMinuteOfDay: { + type: Sequelize.INTEGER, + allowNull: false, + primaryKey: true, + validate: { + min: MinuteOfDay.MIN, + max: MinuteOfDay.MAX + } + }, + endMinuteOfDay: { + type: Sequelize.INTEGER, + allowNull: false, + primaryKey: true, + validate: { + min: MinuteOfDay.MIN, + max: MinuteOfDay.MAX, + customValidator (endMinuteOfDay: unknown) { + const startMinuteOfDay = this.startMinuteOfDay + + if (typeof endMinuteOfDay !== 'number' || typeof startMinuteOfDay !== 'number') { + throw new Error('wrong data types') + } + + if (startMinuteOfDay > endMinuteOfDay) { + throw new Error('startMinuteOfDay must not be bigger than endMinuteOfDay') + } + } + } + }, + lastUsage: { ...timestampColumn }, + lastSessionDuration: { + type: Sequelize.INTEGER, + allowNull: false, + validate: { + min: 0 + } + }, + roundedLastUpdate: { ...timestampColumn } +} + +export const attributes: SequelizeAttributes = { + ...attributesVersion1 +} + +export const createSessionDurationModel = (sequelize: Sequelize.Sequelize): SessionDurationModelStatic => sequelize.define('SessionDuration', attributes) as SessionDurationModelStatic diff --git a/src/database/timelimitrule.ts b/src/database/timelimitrule.ts index 3fec9ed..573f99a 100644 --- a/src/database/timelimitrule.ts +++ b/src/database/timelimitrule.ts @@ -1,6 +1,6 @@ /* * server component for the TimeLimit App - * Copyright (C) 2019 Jonas Lochmann + * Copyright (C) 2019 - 2020 Jonas Lochmann * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as @@ -16,10 +16,11 @@ */ import * as Sequelize from 'sequelize' +import { MinuteOfDay } from '../util/minuteofday' import { booleanColumn, familyIdColumn, idWithinFamilyColumn } from './columns' import { SequelizeAttributes } from './types' -export interface TimelimitRuleAttributes { +interface TimelimitRuleAttributesVersion1 { familyId: string ruleId: string categoryId: string @@ -28,12 +29,21 @@ export interface TimelimitRuleAttributes { maximumTimeInMillis: number } +interface TimelimitRuleAttributesVersion2 { + startMinuteOfDay: number + endMinuteOfDay: number + sessionDurationMilliseconds: number + sessionPauseMilliseconds: number +} + +type TimelimitRuleAttributes = TimelimitRuleAttributesVersion1 & TimelimitRuleAttributesVersion2 + export type TimelimitRuleModel = Sequelize.Model & TimelimitRuleAttributes export type TimelimitRuleModelStatic = typeof Sequelize.Model & { new (values?: object, options?: Sequelize.BuildOptions): TimelimitRuleModel; } -export const attributes: SequelizeAttributes = { +export const attributesVersion1: SequelizeAttributes = { familyId: { ...familyIdColumn, primaryKey: true @@ -61,4 +71,57 @@ export const attributes: SequelizeAttributes = { } } +export const attributesVersion2: SequelizeAttributes = { + startMinuteOfDay: { + type: Sequelize.INTEGER, + validate: { + min: MinuteOfDay.MIN, + max: MinuteOfDay.MAX + }, + allowNull: false, + defaultValue: MinuteOfDay.MIN + }, + endMinuteOfDay: { + type: Sequelize.INTEGER, + validate: { + min: MinuteOfDay.MIN, + max: MinuteOfDay.MAX, + customValidator (endMinuteOfDay: unknown) { + const startMinuteOfDay = this.startMinuteOfDay + + if (typeof endMinuteOfDay !== 'number' || typeof startMinuteOfDay !== 'number') { + throw new Error('wrong data types') + } + + if (startMinuteOfDay > endMinuteOfDay) { + throw new Error('startMinuteOfDay must not be bigger than endMinuteOfDay') + } + } + }, + allowNull: false, + defaultValue: MinuteOfDay.MAX + }, + sessionDurationMilliseconds: { + type: Sequelize.INTEGER, + validate: { + min: 0 + }, + allowNull: false, + defaultValue: 0 + }, + sessionPauseMilliseconds: { + type: Sequelize.INTEGER, + validate: { + min: 0 + }, + allowNull: false, + defaultValue: 0 + } +} + +export const attributes: SequelizeAttributes = { + ...attributesVersion1, + ...attributesVersion2 +} + export const createTimelimitRuleModel = (sequelize: Sequelize.Sequelize): TimelimitRuleModelStatic => sequelize.define('TimelimitRule', attributes) as TimelimitRuleModelStatic diff --git a/src/database/usedtime.ts b/src/database/usedtime.ts index 6f2639c..63f2dde 100644 --- a/src/database/usedtime.ts +++ b/src/database/usedtime.ts @@ -1,6 +1,6 @@ /* * server component for the TimeLimit App - * Copyright (C) 2019 Jonas Lochmann + * Copyright (C) 2019 - 2020 Jonas Lochmann * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as @@ -16,6 +16,7 @@ */ import * as Sequelize from 'sequelize' +import { MinuteOfDay } from '../util/minuteofday' import { familyIdColumn, idWithinFamilyColumn, timestampColumn } from './columns' import { SequelizeAttributes } from './types' @@ -30,7 +31,13 @@ export interface UsedTimeAttributesVersion2 { lastUpdate: string } -export type UsedTimeAttributes = UsedTimeAttributesVersion1 & UsedTimeAttributesVersion2 +export interface UsedTimeAttributesVersion3 { + startMinuteOfDay: number + endMinuteOfDay: number +} + +export type UsedTimeAttributes = UsedTimeAttributesVersion1 & + UsedTimeAttributesVersion2 & UsedTimeAttributesVersion3 export type UsedTimeModel = Sequelize.Model & UsedTimeAttributes export type UsedTimeModelStatic = typeof Sequelize.Model & { @@ -70,9 +77,44 @@ export const attributesVersion2: SequelizeAttributes } } -export const attributes = { +export const attributesVersion3: SequelizeAttributes = { + startMinuteOfDay: { + type: Sequelize.INTEGER, + allowNull: false, + defaultValue: MinuteOfDay.MIN, + primaryKey: true, + validate: { + min: MinuteOfDay.MIN, + max: MinuteOfDay.MAX + } + }, + endMinuteOfDay: { + type: Sequelize.INTEGER, + allowNull: false, + defaultValue: MinuteOfDay.MAX, + primaryKey: true, + validate: { + min: MinuteOfDay.MIN, + max: MinuteOfDay.MAX, + customValidator (endMinuteOfDay: unknown) { + const startMinuteOfDay = this.startMinuteOfDay + + if (typeof endMinuteOfDay !== 'number' || typeof startMinuteOfDay !== 'number') { + throw new Error('wrong data types') + } + + if (startMinuteOfDay > endMinuteOfDay) { + throw new Error('startMinuteOfDay must not be bigger than endMinuteOfDay') + } + } + } + } +} + +export const attributes: SequelizeAttributes = { ...attributesVersion1, - ...attributesVersion2 + ...attributesVersion2, + ...attributesVersion3 } export const createUsedTimeModel = (sequelize: Sequelize.Sequelize): UsedTimeModelStatic => sequelize.define('UsedTime', attributes) as UsedTimeModelStatic diff --git a/src/function/sync/apply-actions/dispatch-app-logic-action/addusedtime.ts b/src/function/sync/apply-actions/dispatch-app-logic-action/addusedtime.ts index a259f21..a8dd8e2 100644 --- a/src/function/sync/apply-actions/dispatch-app-logic-action/addusedtime.ts +++ b/src/function/sync/apply-actions/dispatch-app-logic-action/addusedtime.ts @@ -1,6 +1,6 @@ /* * server component for the TimeLimit App - * Copyright (C) 2019 Jonas Lochmann + * Copyright (C) 2019 - 2020 Jonas Lochmann * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as @@ -17,6 +17,7 @@ import * as Sequelize from 'sequelize' import { AddUsedTimeAction } from '../../../../action' +import { MinuteOfDay } from '../../../../util/minuteofday' import { Cache } from '../cache' export const getRoundedTimestamp = () => { @@ -68,7 +69,9 @@ export async function dispatchAddUsedTime ({ deviceId, action, cache }: { where: { familyId: cache.familyId, categoryId: categoryId, - dayOfEpoch: action.dayOfEpoch + dayOfEpoch: action.dayOfEpoch, + startMinuteOfDay: MinuteOfDay.MIN, + endMinuteOfDay: MinuteOfDay.MAX }, transaction: cache.transaction }) @@ -80,7 +83,9 @@ export async function dispatchAddUsedTime ({ deviceId, action, cache }: { categoryId: categoryId, dayOfEpoch: action.dayOfEpoch, usedTime: action.timeToAdd, - lastUpdate: roundedTimestamp + lastUpdate: roundedTimestamp, + startMinuteOfDay: MinuteOfDay.MIN, + endMinuteOfDay: MinuteOfDay.MAX }, { transaction: cache.transaction }) diff --git a/src/function/sync/apply-actions/dispatch-app-logic-action/addusedtime2.ts b/src/function/sync/apply-actions/dispatch-app-logic-action/addusedtime2.ts index 04d8742..47c4f33 100644 --- a/src/function/sync/apply-actions/dispatch-app-logic-action/addusedtime2.ts +++ b/src/function/sync/apply-actions/dispatch-app-logic-action/addusedtime2.ts @@ -17,15 +17,23 @@ import * as Sequelize from 'sequelize' import { AddUsedTimeActionVersion2 } from '../../../../action' +import { MinuteOfDay } from '../../../../util/minuteofday' import { Cache } from '../cache' -import { getRoundedTimestamp } from './addusedtime' +import { getRoundedTimestamp as getRoundedTimestampForUsedTime } from './addusedtime' + +export const getRoundedTimestampForSessionDuration = () => { + const now = Date.now() + + return now - (now % (1000 * 60 * 60 * 12 /* 12 hours */)) +} export async function dispatchAddUsedTimeVersion2 ({ deviceId, action, cache }: { deviceId: string action: AddUsedTimeActionVersion2 cache: Cache }) { - const roundedTimestamp = getRoundedTimestamp().toString(10) + const roundedTimestampForUsedTime = getRoundedTimestampForUsedTime().toString(10) + const roundedTimestampForSessionDuration = getRoundedTimestampForSessionDuration().toString(10) for (let i = 0; i < action.items.length; i++) { const item = action.items[i] @@ -41,6 +49,7 @@ export async function dispatchAddUsedTimeVersion2 ({ deviceId, action, cache }: 'extraTimeInMillis' ] }) + // verify that the category exists if (!categoryEntryUnsafe) { cache.requireFullSync() @@ -53,16 +62,19 @@ export async function dispatchAddUsedTimeVersion2 ({ deviceId, action, cache }: extraTimeInMillis: categoryEntryUnsafe.extraTimeInMillis } - if (item.timeToAdd !== 0) { + // tslint:disable-next-line:no-inner-declarations + async function handle (start: number, end: number) { // try to update first const [updatedRows] = await cache.database.usedTime.update({ usedTime: Sequelize.literal(`usedTime + ${item.timeToAdd}`) as any, - lastUpdate: roundedTimestamp + lastUpdate: roundedTimestampForUsedTime }, { where: { familyId: cache.familyId, categoryId: item.categoryId, - dayOfEpoch: action.dayOfEpoch + dayOfEpoch: action.dayOfEpoch, + startMinuteOfDay: start, + endMinuteOfDay: end }, transaction: cache.transaction }) @@ -74,15 +86,75 @@ export async function dispatchAddUsedTimeVersion2 ({ deviceId, action, cache }: categoryId: item.categoryId, dayOfEpoch: action.dayOfEpoch, usedTime: item.timeToAdd, - lastUpdate: roundedTimestamp + lastUpdate: roundedTimestampForUsedTime, + startMinuteOfDay: start, + endMinuteOfDay: end }, { transaction: cache.transaction }) } - - cache.categoriesWithModifiedUsedTimes.push(item.categoryId) } + await handle(MinuteOfDay.MIN, MinuteOfDay.MAX) + + for (let j = 0; j < item.additionalCountingSlots.length; j++) { + const slot = item.additionalCountingSlots[j] + + await handle(slot.start, slot.end) + } + + const hasTrustedTimestamp = action.trustedTimestamp !== 0 + + for (let j = 0; j < item.sessionDurationLimits.length; j++) { + const limit = item.sessionDurationLimits[j] + + const oldItem = await cache.database.sessionDuration.findOne({ + where: { + familyId: cache.familyId, + categoryId: item.categoryId, + maxSessionDuration: limit.duration, + sessionPauseDuration: limit.pause, + startMinuteOfDay: limit.start, + endMinuteOfDay: limit.end + }, + transaction: cache.transaction + }) + + if (oldItem) { + if (hasTrustedTimestamp) { + oldItem.lastUsage = action.trustedTimestamp.toString(10) + } + + if ( + hasTrustedTimestamp && + action.trustedTimestamp > parseInt(oldItem.lastUsage, 10) + oldItem.sessionPauseDuration + ) { + oldItem.lastSessionDuration = item.timeToAdd + } else { + oldItem.lastSessionDuration = oldItem.lastSessionDuration + item.timeToAdd + } + + oldItem.roundedLastUpdate = roundedTimestampForSessionDuration + + await oldItem.save({ transaction: cache.transaction }) + } else { + await cache.database.sessionDuration.create({ + familyId: cache.familyId, + categoryId: item.categoryId, + maxSessionDuration: limit.duration, + sessionPauseDuration: limit.pause, + startMinuteOfDay: limit.start, + endMinuteOfDay: limit.end, + // end of primary key + lastUsage: action.trustedTimestamp, + lastSessionDuration: item.timeToAdd, + roundedLastUpdate: roundedTimestampForSessionDuration + }, { transaction: cache.transaction }) + } + } + + cache.categoriesWithModifiedUsedTimes.push(item.categoryId) + if (item.extraTimeToSubtract !== 0) { await cache.database.category.update({ extraTimeInMillis: Math.max(0, categoryEntry.extraTimeInMillis - item.extraTimeToSubtract) diff --git a/src/function/sync/apply-actions/dispatch-parent-action/createtimelimitrule.ts b/src/function/sync/apply-actions/dispatch-parent-action/createtimelimitrule.ts index ea6a135..a20beef 100644 --- a/src/function/sync/apply-actions/dispatch-parent-action/createtimelimitrule.ts +++ b/src/function/sync/apply-actions/dispatch-parent-action/createtimelimitrule.ts @@ -1,6 +1,6 @@ /* * server component for the TimeLimit App - * Copyright (C) 2019 Jonas Lochmann + * Copyright (C) 2019 - 2020 Jonas Lochmann * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as @@ -34,7 +34,11 @@ export async function dispatchCreateTimeLimitRule ({ action, cache }: { categoryId: action.rule.categoryId, applyToExtraTimeUsage: action.rule.applyToExtraTimeUsage, maximumTimeInMillis: action.rule.maxTimeInMillis, - dayMaskAsBitmask: action.rule.dayMask + dayMaskAsBitmask: action.rule.dayMask, + startMinuteOfDay: action.rule.start, + endMinuteOfDay: action.rule.end, + sessionDurationMilliseconds: action.rule.sessionDurationMilliseconds, + sessionPauseMilliseconds: action.rule.sessionPauseMilliseconds }, { transaction: cache.transaction }) cache.categoriesWithModifiedTimeLimitRules.push(action.rule.categoryId) diff --git a/src/function/sync/apply-actions/dispatch-parent-action/updatetimelimitrule.ts b/src/function/sync/apply-actions/dispatch-parent-action/updatetimelimitrule.ts index ba0f6e4..f8af940 100644 --- a/src/function/sync/apply-actions/dispatch-parent-action/updatetimelimitrule.ts +++ b/src/function/sync/apply-actions/dispatch-parent-action/updatetimelimitrule.ts @@ -1,6 +1,6 @@ /* * server component for the TimeLimit App - * Copyright (C) 2019 Jonas Lochmann + * Copyright (C) 2019 - 2020 Jonas Lochmann * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as @@ -37,6 +37,10 @@ export async function dispatchUpdateTimelimitRule ({ action, cache }: { ruleEntry.applyToExtraTimeUsage = action.applyToExtraTimeUsage ruleEntry.dayMaskAsBitmask = action.dayMask ruleEntry.maximumTimeInMillis = action.maximumTimeInMillis + ruleEntry.startMinuteOfDay = action.start + ruleEntry.endMinuteOfDay = action.end + ruleEntry.sessionDurationMilliseconds = action.sessionDurationMilliseconds + ruleEntry.sessionPauseMilliseconds = action.sessionPauseMilliseconds await ruleEntry.save({ transaction: cache.transaction }) diff --git a/src/function/sync/get-server-data-status.ts b/src/function/sync/get-server-data-status.ts index 36e444c..31907c9 100644 --- a/src/function/sync/get-server-data-status.ts +++ b/src/function/sync/get-server-data-status.ts @@ -25,6 +25,7 @@ import { ServerUpdatedCategoryBaseData, ServerUpdatedCategoryUsedTimes, ServerUpdatedTimeLimitRules } from '../../object/serverdatastatus' +import { MinuteOfDay } from '../../util/minuteofday' export const generateServerDataStatus = async ({ database, clientStatus, familyId, transaction }: { database: Database, @@ -429,7 +430,11 @@ export const generateServerDataStatus = async ({ database, clientStatus, familyI 'categoryId', 'applyToExtraTimeUsage', 'maximumTimeInMillis', - 'dayMaskAsBitmask' + 'dayMaskAsBitmask', + 'startMinuteOfDay', + 'endMinuteOfDay', + 'sessionDurationMilliseconds', + 'sessionPauseMilliseconds' ], transaction })).map((item) => ({ @@ -437,7 +442,11 @@ export const generateServerDataStatus = async ({ database, clientStatus, familyI categoryId: item.categoryId, applyToExtraTimeUsage: item.applyToExtraTimeUsage, maximumTimeInMillis: item.maximumTimeInMillis, - dayMaskAsBitmask: item.dayMaskAsBitmask + dayMaskAsBitmask: item.dayMaskAsBitmask, + startMinuteOfDay: item.startMinuteOfDay, + endMinuteOfDay: item.endMinuteOfDay, + sessionDurationMilliseconds: item.sessionDurationMilliseconds, + sessionPauseMilliseconds: item.sessionPauseMilliseconds })) const getCategoryRulesVersion = (categoryId: string) => { @@ -456,26 +465,65 @@ export const generateServerDataStatus = async ({ database, clientStatus, familyI id: item.ruleId, extraTime: item.applyToExtraTimeUsage, dayMask: item.dayMaskAsBitmask, - maxTime: item.maximumTimeInMillis + maxTime: item.maximumTimeInMillis, + start: item.startMinuteOfDay, + end: item.endMinuteOfDay, + session: item.sessionDurationMilliseconds, + pause: item.sessionPauseMilliseconds })), version: getCategoryRulesVersion(categoryId) })) } if (categoryIdsToSyncUsedTimes.length > 0) { - const dataForSyncing = (await database.usedTime.findAll({ + const usedTimesForSyncing = (await database.usedTime.findAll({ + where: { + familyId, + categoryId: { + [Sequelize.Op.in]: categoryIdsToSyncUsedTimes + }, + ...(clientStatus.clientLevel === undefined || clientStatus.clientLevel < 2) ? { + startMinuteOfDay: MinuteOfDay.MIN, + endMinuteOfDay: MinuteOfDay.MAX + } : {} + }, + attributes: [ + 'categoryId', 'dayOfEpoch', 'usedTime', 'startMinuteOfDay', 'endMinuteOfDay' + ], + transaction + })).map((item) => ({ + categoryId: item.categoryId, + dayOfEpoch: item.dayOfEpoch, + usedTime: item.usedTime, + startMinuteOfDay: item.startMinuteOfDay, + endMinuteOfDay: item.endMinuteOfDay + })) + + const sessionDurationsForSyncing = (await database.sessionDuration.findAll({ where: { familyId, categoryId: { [Sequelize.Op.in]: categoryIdsToSyncUsedTimes } }, - attributes: ['categoryId', 'dayOfEpoch', 'usedTime'], + attributes: [ + 'categoryId', + 'maxSessionDuration', + 'sessionPauseDuration', + 'startMinuteOfDay', + 'endMinuteOfDay', + 'lastUsage', + 'lastSessionDuration' + ], transaction })).map((item) => ({ categoryId: item.categoryId, - dayOfEpoch: item.dayOfEpoch, - usedTime: item.usedTime + maxSessionDuration: item.maxSessionDuration, + sessionPauseDuration: item.sessionPauseDuration, + startMinuteOfDay: item.startMinuteOfDay, + endMinuteOfDay: item.endMinuteOfDay, + lastUsage: item.lastUsage, + lastSessionDuration: item.lastSessionDuration })) const getCategoryUsedTimesVersion = (categoryId: string) => { @@ -490,9 +538,19 @@ export const generateServerDataStatus = async ({ database, clientStatus, familyI result.usedTimes = categoryIdsToSyncUsedTimes.map((categoryId): ServerUpdatedCategoryUsedTimes => ({ categoryId, - times: dataForSyncing.filter((item) => item.categoryId === categoryId).map((item) => ({ + times: usedTimesForSyncing.filter((item) => item.categoryId === categoryId).map((item) => ({ day: item.dayOfEpoch, - time: item.usedTime + time: item.usedTime, + start: item.startMinuteOfDay, + end: item.endMinuteOfDay + })), + sessionDurations: sessionDurationsForSyncing.filter((item) => item.categoryId === categoryId).map((item) => ({ + md: item.maxSessionDuration, + spd: item.sessionPauseDuration, + sm: item.startMinuteOfDay, + em: item.endMinuteOfDay, + l: parseInt(item.lastUsage, 10), + d: item.lastSessionDuration })), version: getCategoryUsedTimesVersion(categoryId) })) diff --git a/src/model/timelimitrule.ts b/src/model/timelimitrule.ts index 59c06b1..f5d9e82 100644 --- a/src/model/timelimitrule.ts +++ b/src/model/timelimitrule.ts @@ -1,6 +1,6 @@ /* * server component for the TimeLimit App - * Copyright (C) 2019 Jonas Lochmann + * Copyright (C) 2019 - 2020 Jonas Lochmann * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as @@ -15,6 +15,7 @@ * along with this program. If not, see . */ +import { MinuteOfDay } from '../util/minuteofday' import { assertIdWithinFamily } from '../util/token' export class TimelimitRule { @@ -23,19 +24,34 @@ export class TimelimitRule { readonly maxTimeInMillis: number readonly dayMask: number // stored as bitmask readonly applyToExtraTimeUsage: boolean + readonly start: number + readonly end: number + readonly sessionDurationMilliseconds: number + readonly sessionPauseMilliseconds: number - constructor ({ ruleId, categoryId, maxTimeInMillis, dayMask, applyToExtraTimeUsage }: { + constructor ({ + ruleId, categoryId, maxTimeInMillis, dayMask, applyToExtraTimeUsage, + start, end, sessionDurationMilliseconds, sessionPauseMilliseconds + }: { ruleId: string categoryId: string maxTimeInMillis: number dayMask: number applyToExtraTimeUsage: boolean + start: number + end: number + sessionDurationMilliseconds: number + sessionPauseMilliseconds: number }) { this.ruleId = ruleId this.categoryId = categoryId this.maxTimeInMillis = maxTimeInMillis this.dayMask = dayMask this.applyToExtraTimeUsage = applyToExtraTimeUsage + this.start = start + this.end = end + this.sessionDurationMilliseconds = sessionDurationMilliseconds + this.sessionPauseMilliseconds = sessionPauseMilliseconds assertIdWithinFamily(ruleId) assertIdWithinFamily(categoryId) @@ -51,6 +67,23 @@ export class TimelimitRule { )) { throw new Error('invalid day mask') } + + if ( + (!Number.isSafeInteger(start)) || + (!Number.isSafeInteger(end)) || + (!Number.isSafeInteger(sessionDurationMilliseconds)) || + (!Number.isSafeInteger(sessionPauseMilliseconds)) + ) { + throw new Error() + } + + if (start < MinuteOfDay.MIN || end > MinuteOfDay.MAX || start > end) { + throw new Error() + } + + if (sessionDurationMilliseconds < 0 || sessionPauseMilliseconds < 0) { + throw new Error() + } } serialize = (): SerializedTimeLimitRule => ({ @@ -58,16 +91,24 @@ export class TimelimitRule { categoryId: this.categoryId, time: this.maxTimeInMillis, days: this.dayMask, - extraTime: this.applyToExtraTimeUsage + extraTime: this.applyToExtraTimeUsage, + start: this.start, + end: this.end, + pause: this.sessionPauseMilliseconds, + dur: this.sessionDurationMilliseconds }) - static parse = ({ ruleId, categoryId, time, days, extraTime }: SerializedTimeLimitRule) => ( + static parse = ({ ruleId, categoryId, time, days, extraTime, start, end, dur, pause }: SerializedTimeLimitRule) => ( new TimelimitRule({ ruleId, categoryId, maxTimeInMillis: time, dayMask: days, - applyToExtraTimeUsage: extraTime + applyToExtraTimeUsage: extraTime, + start: start ?? MinuteOfDay.MIN, + end: end ?? MinuteOfDay.MAX, + sessionDurationMilliseconds: dur ?? 0, + sessionPauseMilliseconds: pause ?? 0 }) ) } @@ -78,4 +119,8 @@ export interface SerializedTimeLimitRule { time: number days: number extraTime: boolean + start?: number + end?: number + dur?: number + pause?: number } diff --git a/src/object/clientdatastatus.ts b/src/object/clientdatastatus.ts index 42676d4..32c152e 100644 --- a/src/object/clientdatastatus.ts +++ b/src/object/clientdatastatus.ts @@ -1,6 +1,6 @@ /* * server component for the TimeLimit App - * Copyright (C) 2019 Jonas Lochmann + * Copyright (C) 2019 - 2020 Jonas Lochmann * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as @@ -20,6 +20,7 @@ export interface ClientDataStatus { apps: {[key: string]: string} // installedAppsVersionsByDeviceId categories: {[key: string]: CategoryDataStatus} users: string // userListVersion + clientLevel?: number } export interface CategoryDataStatus { diff --git a/src/object/serverdatastatus.ts b/src/object/serverdatastatus.ts index 9047b9b..48f4c48 100644 --- a/src/object/serverdatastatus.ts +++ b/src/object/serverdatastatus.ts @@ -121,12 +121,44 @@ export interface ServerUpdatedCategoryAssignedApps { export interface ServerUpdatedCategoryUsedTimes { categoryId: string times: Array + sessionDurations: Array version: string } export interface ServerUsedTimeItem { day: number // day of epoch time: number // in milliseconds + start: number + end: number +} + +export interface ServerSessionDurationItem { + /** + * the maximum duration of a session (maxSessionDuration) + */ + md: number + /** + * the pause duration after a session (sessionPauseDuration) + */ + spd: number + /** + * the start minute of the day of the session/ the rule + * which created this session (startMinuteOfDay) + */ + sm: number + /** + * the end minute of the day of the session/ the rule + * which created this session (endMinuteOfDay) + */ + em: number + /** + * the timestamp of the last usage of this session (lastUsage) + */ + l: number + /** + * the duration of the last/ current session (lastSessionDuration) + */ + d: number } export interface ServerUpdatedTimeLimitRules { @@ -140,6 +172,10 @@ export interface ServerTimeLimitRule { extraTime: boolean // applyToExtraTimeUsage dayMask: number // as binary bitmask maxTime: number // maximumTimeInMillis + start: number // startMinuteOfDay + end: number // endMinuteOfDay + session: number // maximum session duration + pause: number // session pause duration } export interface ServerInstalledAppsData { diff --git a/src/util/minuteofday.ts b/src/util/minuteofday.ts new file mode 100644 index 0000000..e30b344 --- /dev/null +++ b/src/util/minuteofday.ts @@ -0,0 +1,22 @@ +/* + * server component for the TimeLimit App + * Copyright (C) 2019 - 2020 Jonas Lochmann + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, version 3 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +export const MinuteOfDay = { + MIN: 0, + MAX: 24 * 60 - 1, + LENGTH: 24 * 60 +} diff --git a/src/worker/delete-old-used-times.ts b/src/worker/delete-old-used-times.ts index c4725a3..e9c309c 100644 --- a/src/worker/delete-old-used-times.ts +++ b/src/worker/delete-old-used-times.ts @@ -1,6 +1,6 @@ /* * server component for the TimeLimit App - * Copyright (C) 2019 Jonas Lochmann + * Copyright (C) 2019 - 2020 Jonas Lochmann * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as @@ -45,7 +45,7 @@ async function deleteOldUsedTimes ({ database }: { await database.transaction(async (transaction) => { // get matching categories - const categoriesToCleanUp = await database.usedTime.findAll({ + const categoriesToCleanUpOne = await database.usedTime.findAll({ transaction, where: { lastUpdate: { @@ -56,12 +56,33 @@ async function deleteOldUsedTimes ({ database }: { 'familyId', 'categoryId' ], - limit: 100 + limit: 1000, + order: [['lastUpdate', 'ASC']] }).map((item) => ({ familyId: item.familyId, categoryId: item.categoryId })) + const categoriesToCleanUpTwo = await database.sessionDuration.findAll({ + transaction, + where: { + roundedLastUpdate: { + [Sequelize.Op.lt]: (now - 1000 * 60 * 60 * 24 * 3 /* 3 days */).toString() + } + }, + attributes: [ + 'familyId', + 'categoryId' + ], + limit: 1000, + order: [['roundedLastUpdate', 'ASC']] + }).map((item) => ({ + familyId: item.familyId, + categoryId: item.categoryId + })) + + const categoriesToCleanUp = [ ...categoriesToCleanUpOne, ...categoriesToCleanUpTwo ] + const distinctCategoriesToCleanUp = uniqBy(categoriesToCleanUp, (item) => item.familyId + '_' + item.categoryId) if (distinctCategoriesToCleanUp.length > 0) { @@ -78,6 +99,18 @@ async function deleteOldUsedTimes ({ database }: { } }) + await database.sessionDuration.destroy({ + transaction, + where: { + [Sequelize.Op.or]: ( + distinctCategoriesToCleanUp + ), + roundedLastUpdate: { + [Sequelize.Op.lt]: (now - 1000 * 60 * 60 * 24 * 3 /* 3 days */).toString() + } + } + }) + // invalidiate categories await database.category.update({ usedTimesVersion: generateVersionId()