diff --git a/docs/schema/README.md b/docs/schema/README.md index c42739c..655886c 100644 --- a/docs/schema/README.md +++ b/docs/schema/README.md @@ -39,98 +39,102 @@ - [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](./createfamilybymailtokenrequest-definitions-parentpassword.md) – `https://timelimit.io/CreateFamilyByMailTokenRequest#/definitions/ParentPassword` - [ParentPassword](./createfamilybymailtokenrequest-properties-parentpassword.md) – `https://timelimit.io/CreateFamilyByMailTokenRequest#/properties/parentPassword` +- [ParentPassword](./serializedchildaction-definitions-serializedchildchangepasswordaction-properties-parentpassword.md) – `https://timelimit.io/SerializedChildAction#/definitions/SerializedChildChangePasswordAction/properties/password` +- [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](./serializedchildaction-definitions-serializedchildchangepasswordaction-properties-parentpassword.md) – `https://timelimit.io/SerializedChildAction#/definitions/SerializedChildChangePasswordAction/properties/password` +- [ParentPassword](./serializedchildaction-definitions-parentpassword.md) – `https://timelimit.io/SerializedChildAction#/definitions/ParentPassword` - [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](./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` -- [SerialiezdTriedDisablingDeviceAdminAction](./serializedapplogicaction-anyof-serialiezdtrieddisablingdeviceadminaction.md) – `https://timelimit.io/SerializedAppLogicAction#/anyOf/5` +- [ParentPassword](./createfamilybymailtokenrequest-definitions-parentpassword.md) – `https://timelimit.io/CreateFamilyByMailTokenRequest#/definitions/ParentPassword` - [SerialiezdTriedDisablingDeviceAdminAction](./serializedapplogicaction-definitions-serialiezdtrieddisablingdeviceadminaction.md) – `https://timelimit.io/SerializedAppLogicAction#/definitions/SerialiezdTriedDisablingDeviceAdminAction` +- [SerialiezdTriedDisablingDeviceAdminAction](./serializedapplogicaction-anyof-serialiezdtrieddisablingdeviceadminaction.md) – `https://timelimit.io/SerializedAppLogicAction#/anyOf/5` - [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` +- [SerialiizedUpdateNetworkTimeVerificationAction](./serializedparentaction-anyof-serialiizedupdatenetworktimeverificationaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/37` +- [SerializeResetCategoryNetworkIdsAction](./serializedparentaction-definitions-serializeresetcategorynetworkidsaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializeResetCategoryNetworkIdsAction` +- [SerializeResetCategoryNetworkIdsAction](./serializedparentaction-anyof-serializeresetcategorynetworkidsaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/13` - [SerializedAddCategoryAppsAction](./serializedparentaction-definitions-serializedaddcategoryappsaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedAddCategoryAppsAction` +- [SerializedAddCategoryAppsAction](./serializedparentaction-anyof-serializedaddcategoryappsaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/0` +- [SerializedAddCategoryNetworkIdAction](./serializedparentaction-definitions-serializedaddcategorynetworkidaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedAddCategoryNetworkIdAction` +- [SerializedAddCategoryNetworkIdAction](./serializedparentaction-anyof-serializedaddcategorynetworkidaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/1` - [SerializedAddInstalledAppsAction](./serializedapplogicaction-definitions-serializedaddinstalledappsaction.md) – `https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddInstalledAppsAction` - [SerializedAddInstalledAppsAction](./serializedapplogicaction-anyof-serializedaddinstalledappsaction.md) – `https://timelimit.io/SerializedAppLogicAction#/anyOf/0` - [SerializedAddUsedTimeAction](./serializedapplogicaction-anyof-serializedaddusedtimeaction.md) – `https://timelimit.io/SerializedAppLogicAction#/anyOf/1` - [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` +- [SerializedAddUserAction](./serializedparentaction-anyof-serializedadduseraction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/2` +- [SerializedAppActivityItem](./serializedapplogicaction-definitions-serializedupdateappactivitiesaction-properties-updatedoradded-serializedappactivityitem.md) – `https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedUpdateAppActivitiesAction/properties/updatedOrAdded/items` +- [SerializedAppActivityItem](./serializedapplogicaction-definitions-serializedupdateappactivitiesaction-properties-updatedoradded-serializedappactivityitem.md) – `https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedUpdateAppActivitiesAction/properties/updatedOrAdded/items` +- [SerializedAppActivityItem](./serverdatastatus-definitions-serializedappactivityitem.md) – `https://timelimit.io/ServerDataStatus#/definitions/SerializedAppActivityItem` - [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-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` +- [SerializedAppActivityItem](./serverdatastatus-definitions-serverinstalledappsdata-properties-activities-serializedappactivityitem.md) – `https://timelimit.io/ServerDataStatus#/definitions/ServerInstalledAppsData/properties/activities/items` - [SerializedChangeParentPasswordAction](./serializedparentaction-definitions-serializedchangeparentpasswordaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedChangeParentPasswordAction` +- [SerializedChangeParentPasswordAction](./serializedparentaction-anyof-serializedchangeparentpasswordaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/3` - [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/4` - [SerializedCreateCategoryAction](./serializedparentaction-definitions-serializedcreatecategoryaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedCreateCategoryAction` -- [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` +- [SerializedCreateTimelimtRuleAction](./serializedparentaction-anyof-serializedcreatetimelimtruleaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/5` - [SerializedDeleteCategoryAction](./serializedparentaction-definitions-serializeddeletecategoryaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedDeleteCategoryAction` +- [SerializedDeleteCategoryAction](./serializedparentaction-anyof-serializeddeletecategoryaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/6` +- [SerializedDeleteTimeLimitRuleAction](./serializedparentaction-anyof-serializeddeletetimelimitruleaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/7` - [SerializedDeleteTimeLimitRuleAction](./serializedparentaction-definitions-serializeddeletetimelimitruleaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedDeleteTimeLimitRuleAction` -- [SerializedDeleteTimeLimitRuleAction](./serializedparentaction-anyof-serializeddeletetimelimitruleaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/6` - [SerializedIgnoreManipulationAction](./serializedparentaction-definitions-serializedignoremanipulationaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedIgnoreManipulationAction` -- [SerializedIgnoreManipulationAction](./serializedparentaction-anyof-serializedignoremanipulationaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/7` -- [SerializedIncrementCategoryExtraTimeAction](./serializedparentaction-anyof-serializedincrementcategoryextratimeaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/8` +- [SerializedIgnoreManipulationAction](./serializedparentaction-anyof-serializedignoremanipulationaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/8` - [SerializedIncrementCategoryExtraTimeAction](./serializedparentaction-definitions-serializedincrementcategoryextratimeaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedIncrementCategoryExtraTimeAction` -- [SerializedInstalledApp](./serializedapplogicaction-definitions-serializedaddinstalledappsaction-properties-apps-serializedinstalledapp.md) – `https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedAddInstalledAppsAction/properties/apps/items` +- [SerializedIncrementCategoryExtraTimeAction](./serializedparentaction-anyof-serializedincrementcategoryextratimeaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/9` - [SerializedInstalledApp](./serverdatastatus-definitions-serverinstalledappsdata-properties-apps-serializedinstalledapp.md) – `https://timelimit.io/ServerDataStatus#/definitions/ServerInstalledAppsData/properties/apps/items` -- [SerializedInstalledApp](./serializedapplogicaction-definitions-serializedinstalledapp.md) – `https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedInstalledApp` +- [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](./serverdatastatus-definitions-serializedinstalledapp.md) – `https://timelimit.io/ServerDataStatus#/definitions/SerializedInstalledApp` +- [SerializedInstalledApp](./serializedapplogicaction-definitions-serializedinstalledapp.md) – `https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedInstalledApp` - [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` - [SerializedRemoveCategoryAppsAction](./serializedparentaction-definitions-serializedremovecategoryappsaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedRemoveCategoryAppsAction` -- [SerializedRemoveCategoryAppsAction](./serializedparentaction-anyof-serializedremovecategoryappsaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/9` +- [SerializedRemoveCategoryAppsAction](./serializedparentaction-anyof-serializedremovecategoryappsaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/10` - [SerializedRemoveInstalledAppsAction](./serializedapplogicaction-anyof-serializedremoveinstalledappsaction.md) – `https://timelimit.io/SerializedAppLogicAction#/anyOf/3` - [SerializedRemoveInstalledAppsAction](./serializedapplogicaction-definitions-serializedremoveinstalledappsaction.md) – `https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedRemoveInstalledAppsAction` +- [SerializedRemoveUserAction](./serializedparentaction-anyof-serializedremoveuseraction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/11` - [SerializedRemoveUserAction](./serializedparentaction-definitions-serializedremoveuseraction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedRemoveUserAction` -- [SerializedRemoveUserAction](./serializedparentaction-anyof-serializedremoveuseraction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/10` -- [SerializedRenameChildAction](./serializedparentaction-anyof-serializedrenamechildaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/11` - [SerializedRenameChildAction](./serializedparentaction-definitions-serializedrenamechildaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedRenameChildAction` -- [SerializedResetParentBlockedTimesAction](./serializedparentaction-anyof-serializedresetparentblockedtimesaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/12` +- [SerializedRenameChildAction](./serializedparentaction-anyof-serializedrenamechildaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/12` - [SerializedResetParentBlockedTimesAction](./serializedparentaction-definitions-serializedresetparentblockedtimesaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedResetParentBlockedTimesAction` -- [SerializedSetCategoryExtraTimeAction](./serializedparentaction-anyof-serializedsetcategoryextratimeaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/13` +- [SerializedResetParentBlockedTimesAction](./serializedparentaction-anyof-serializedresetparentblockedtimesaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/14` +- [SerializedSetCategoryExtraTimeAction](./serializedparentaction-anyof-serializedsetcategoryextratimeaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/15` - [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` +- [SerializedSetCategoryForUnassignedAppsAction](./serializedparentaction-anyof-serializedsetcategoryforunassignedappsaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/16` - [SerializedSetChildPasswordAction](./serializedparentaction-definitions-serializedsetchildpasswordaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedSetChildPasswordAction` +- [SerializedSetChildPasswordAction](./serializedparentaction-anyof-serializedsetchildpasswordaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/17` +- [SerializedSetConsiderRebootManipulationAction](./serializedparentaction-anyof-serializedsetconsiderrebootmanipulationaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/18` - [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` +- [SerializedSetDeviceDefaultUserAction](./serializedparentaction-anyof-serializedsetdevicedefaultuseraction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/19` - [SerializedSetDeviceDefaultUserAction](./serializedparentaction-definitions-serializedsetdevicedefaultuseraction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedSetDeviceDefaultUserAction` -- [SerializedSetDeviceDefaultUserTimeoutAction](./serializedparentaction-anyof-serializedsetdevicedefaultusertimeoutaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/18` +- [SerializedSetDeviceDefaultUserTimeoutAction](./serializedparentaction-anyof-serializedsetdevicedefaultusertimeoutaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/20` - [SerializedSetDeviceDefaultUserTimeoutAction](./serializedparentaction-definitions-serializedsetdevicedefaultusertimeoutaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedSetDeviceDefaultUserTimeoutAction` -- [SerializedSetDeviceUserAction](./serializedparentaction-anyof-serializedsetdeviceuseraction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/19` +- [SerializedSetDeviceUserAction](./serializedparentaction-anyof-serializedsetdeviceuseraction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/21` - [SerializedSetDeviceUserAction](./serializedparentaction-definitions-serializedsetdeviceuseraction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedSetDeviceUserAction` -- [SerializedSetKeepSignedInAction](./serializedparentaction-anyof-serializedsetkeepsignedinaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/20` +- [SerializedSetKeepSignedInAction](./serializedparentaction-anyof-serializedsetkeepsignedinaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/22` - [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-anyof-serializedsetrelaxprimarydeviceaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/22` +- [SerializedSetParentCategoryAction](./serializedparentaction-anyof-serializedsetparentcategoryaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/23` - [SerializedSetRelaxPrimaryDeviceAction](./serializedparentaction-definitions-serializedsetrelaxprimarydeviceaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedSetRelaxPrimaryDeviceAction` -- [SerializedSetSendDeviceConnected](./serializedparentaction-anyof-serializedsetsenddeviceconnected.md) – `https://timelimit.io/SerializedParentAction#/anyOf/23` +- [SerializedSetRelaxPrimaryDeviceAction](./serializedparentaction-anyof-serializedsetrelaxprimarydeviceaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/24` - [SerializedSetSendDeviceConnected](./serializedparentaction-definitions-serializedsetsenddeviceconnected.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedSetSendDeviceConnected` +- [SerializedSetSendDeviceConnected](./serializedparentaction-anyof-serializedsetsenddeviceconnected.md) – `https://timelimit.io/SerializedParentAction#/anyOf/25` - [SerializedSetUserDisableLimitsUntilAction](./serializedparentaction-definitions-serializedsetuserdisablelimitsuntilaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedSetUserDisableLimitsUntilAction` -- [SerializedSetUserDisableLimitsUntilAction](./serializedparentaction-anyof-serializedsetuserdisablelimitsuntilaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/24` +- [SerializedSetUserDisableLimitsUntilAction](./serializedparentaction-anyof-serializedsetuserdisablelimitsuntilaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/26` - [SerializedSetUserTimezoneAction](./serializedparentaction-definitions-serializedsetusertimezoneaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedSetUserTimezoneAction` -- [SerializedSetUserTimezoneAction](./serializedparentaction-anyof-serializedsetusertimezoneaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/25` +- [SerializedSetUserTimezoneAction](./serializedparentaction-anyof-serializedsetusertimezoneaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/27` - [SerializedSignOutAtDeviceAction](./serializedapplogicaction-anyof-serializedsignoutatdeviceaction.md) – `https://timelimit.io/SerializedAppLogicAction#/anyOf/4` - [SerializedSignOutAtDeviceAction](./serializedapplogicaction-definitions-serializedsignoutatdeviceaction.md) – `https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedSignOutAtDeviceAction` - [SerializedTimeLimitRule](./serializedparentaction-definitions-serializedcreatetimelimtruleaction-properties-serializedtimelimitrule.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedCreateTimelimtRuleAction/properties/rule` @@ -138,36 +142,39 @@ - [SerializedTimeLimitRule](./serializedparentaction-definitions-serializedtimelimitrule.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedTimeLimitRule` - [SerializedUpdateAppActivitiesAction](./serializedapplogicaction-anyof-serializedupdateappactivitiesaction.md) – `https://timelimit.io/SerializedAppLogicAction#/anyOf/6` - [SerializedUpdateAppActivitiesAction](./serializedapplogicaction-definitions-serializedupdateappactivitiesaction.md) – `https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedUpdateAppActivitiesAction` -- [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` +- [SerializedUpdateCategoryBatteryLimitAction](./serializedparentaction-anyof-serializedupdatecategorybatterylimitaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/28` - [SerializedUpdateCategoryBlockAllNotificationsAction](./serializedparentaction-definitions-serializedupdatecategoryblockallnotificationsaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedUpdateCategoryBlockAllNotificationsAction` -- [SerializedUpdateCategoryBlockedTimesAction](./serializedparentaction-anyof-serializedupdatecategoryblockedtimesaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/28` +- [SerializedUpdateCategoryBlockAllNotificationsAction](./serializedparentaction-anyof-serializedupdatecategoryblockallnotificationsaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/29` - [SerializedUpdateCategoryBlockedTimesAction](./serializedparentaction-definitions-serializedupdatecategoryblockedtimesaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedUpdateCategoryBlockedTimesAction` +- [SerializedUpdateCategoryBlockedTimesAction](./serializedparentaction-anyof-serializedupdatecategoryblockedtimesaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/30` +- [SerializedUpdateCategorySortingAction](./serializedparentaction-anyof-serializedupdatecategorysortingaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/31` - [SerializedUpdateCategorySortingAction](./serializedparentaction-definitions-serializedupdatecategorysortingaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedUpdateCategorySortingAction` -- [SerializedUpdateCategorySortingAction](./serializedparentaction-anyof-serializedupdatecategorysortingaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/29` - [SerializedUpdateCategoryTemporarilyBlockedAction](./serializedparentaction-definitions-serializedupdatecategorytemporarilyblockedaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedUpdateCategoryTemporarilyBlockedAction` -- [SerializedUpdateCategoryTemporarilyBlockedAction](./serializedparentaction-anyof-serializedupdatecategorytemporarilyblockedaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/30` -- [SerializedUpdateCategoryTimeWarningsAction](./serializedparentaction-anyof-serializedupdatecategorytimewarningsaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/31` +- [SerializedUpdateCategoryTemporarilyBlockedAction](./serializedparentaction-anyof-serializedupdatecategorytemporarilyblockedaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/32` +- [SerializedUpdateCategoryTimeWarningsAction](./serializedparentaction-anyof-serializedupdatecategorytimewarningsaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/33` - [SerializedUpdateCategoryTimeWarningsAction](./serializedparentaction-definitions-serializedupdatecategorytimewarningsaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedUpdateCategoryTimeWarningsAction` -- [SerializedUpdateCategoryTitleAction](./serializedparentaction-anyof-serializedupdatecategorytitleaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/32` - [SerializedUpdateCategoryTitleAction](./serializedparentaction-definitions-serializedupdatecategorytitleaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedUpdateCategoryTitleAction` -- [SerializedUpdateDeviceNameAction](./serializedparentaction-anyof-serializedupdatedevicenameaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/33` +- [SerializedUpdateCategoryTitleAction](./serializedparentaction-anyof-serializedupdatecategorytitleaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/34` +- [SerializedUpdateDeviceNameAction](./serializedparentaction-anyof-serializedupdatedevicenameaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/35` - [SerializedUpdateDeviceNameAction](./serializedparentaction-definitions-serializedupdatedevicenameaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedUpdateDeviceNameAction` - [SerializedUpdateDeviceStatusAction](./serializedapplogicaction-anyof-serializedupdatedevicestatusaction.md) – `https://timelimit.io/SerializedAppLogicAction#/anyOf/7` - [SerializedUpdateDeviceStatusAction](./serializedapplogicaction-definitions-serializedupdatedevicestatusaction.md) – `https://timelimit.io/SerializedAppLogicAction#/definitions/SerializedUpdateDeviceStatusAction` -- [SerializedUpdateEnableActivityLevelBlockingAction](./serializedparentaction-anyof-serializedupdateenableactivitylevelblockingaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/34` +- [SerializedUpdateEnableActivityLevelBlockingAction](./serializedparentaction-anyof-serializedupdateenableactivitylevelblockingaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/36` - [SerializedUpdateEnableActivityLevelBlockingAction](./serializedparentaction-definitions-serializedupdateenableactivitylevelblockingaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedUpdateEnableActivityLevelBlockingAction` +- [SerializedUpdateParentBlockedTimesAction](./serializedparentaction-anyof-serializedupdateparentblockedtimesaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/38` - [SerializedUpdateParentBlockedTimesAction](./serializedparentaction-definitions-serializedupdateparentblockedtimesaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedUpdateParentBlockedTimesAction` -- [SerializedUpdateParentBlockedTimesAction](./serializedparentaction-anyof-serializedupdateparentblockedtimesaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/36` -- [SerializedUpdateParentNotificationFlagsAction](./serializedparentaction-anyof-serializedupdateparentnotificationflagsaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/37` +- [SerializedUpdateParentNotificationFlagsAction](./serializedparentaction-anyof-serializedupdateparentnotificationflagsaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/39` - [SerializedUpdateParentNotificationFlagsAction](./serializedparentaction-definitions-serializedupdateparentnotificationflagsaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedUpdateParentNotificationFlagsAction` -- [SerializedUpdateTimelimitRuleAction](./serializedparentaction-anyof-serializedupdatetimelimitruleaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/38` +- [SerializedUpdateTimelimitRuleAction](./serializedparentaction-anyof-serializedupdatetimelimitruleaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/40` - [SerializedUpdateTimelimitRuleAction](./serializedparentaction-definitions-serializedupdatetimelimitruleaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedUpdateTimelimitRuleAction` - [SerializedUpdateUserFlagsAction](./serializedparentaction-definitions-serializedupdateuserflagsaction.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedUpdateUserFlagsAction` -- [SerializedUpdateUserFlagsAction](./serializedparentaction-anyof-serializedupdateuserflagsaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/39` +- [SerializedUpdateUserFlagsAction](./serializedparentaction-anyof-serializedupdateuserflagsaction.md) – `https://timelimit.io/SerializedParentAction#/anyOf/41` - [SerializedUpdateUserLimitLoginCategory](./serializedparentaction-definitions-serializedupdateuserlimitlogincategory.md) – `https://timelimit.io/SerializedParentAction#/definitions/SerializedUpdateUserLimitLoginCategory` -- [SerializedUpdateUserLimitLoginCategory](./serializedparentaction-anyof-serializedupdateuserlimitlogincategory.md) – `https://timelimit.io/SerializedParentAction#/anyOf/40` +- [SerializedUpdateUserLimitLoginCategory](./serializedparentaction-anyof-serializedupdateuserlimitlogincategory.md) – `https://timelimit.io/SerializedParentAction#/anyOf/42` +- [ServerCategoryNetworkId](./serverdatastatus-definitions-servercategorynetworkid.md) – `https://timelimit.io/ServerDataStatus#/definitions/ServerCategoryNetworkId` +- [ServerCategoryNetworkId](./serverdatastatus-definitions-serverupdatedcategorybasedata-properties-networks-servercategorynetworkid.md) – `https://timelimit.io/ServerDataStatus#/definitions/ServerUpdatedCategoryBaseData/properties/networks/items` +- [ServerCategoryNetworkId](./serverdatastatus-definitions-serverupdatedcategorybasedata-properties-networks-servercategorynetworkid.md) – `https://timelimit.io/ServerDataStatus#/definitions/ServerUpdatedCategoryBaseData/properties/networks/items` - [ServerDeviceData](./serverdatastatus-definitions-serverdevicelist-properties-data-serverdevicedata.md) – `https://timelimit.io/ServerDataStatus#/definitions/ServerDeviceList/properties/data/items` - [ServerDeviceData](./serverdatastatus-definitions-serverdevicedata.md) – `https://timelimit.io/ServerDataStatus#/definitions/ServerDeviceData` - [ServerDeviceData](./serverdatastatus-definitions-serverdevicelist-properties-data-serverdevicedata.md) – `https://timelimit.io/ServerDataStatus#/definitions/ServerDeviceList/properties/data/items` @@ -175,9 +182,9 @@ - [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` +- [ServerSessionDurationItem](./serverdatastatus-definitions-serverupdatedcategoryusedtimes-properties-sessiondurations-serversessiondurationitem.md) – `https://timelimit.io/ServerDataStatus#/definitions/ServerUpdatedCategoryUsedTimes/properties/sessionDurations/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` -- [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` @@ -187,20 +194,20 @@ - [ServerUpdatedCategoryBaseData](./serverdatastatus-definitions-serverupdatedcategorybasedata.md) – `https://timelimit.io/ServerDataStatus#/definitions/ServerUpdatedCategoryBaseData` - [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` +- [ServerUpdatedTimeLimitRules](./serverdatastatus-properties-rules-serverupdatedtimelimitrules.md) – `https://timelimit.io/ServerDataStatus#/properties/rules/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` - [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` +- [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-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-categories.md) – `https://timelimit.io/ClientPullChangesRequest#/definitions/ClientDataStatus/properties/categories` - [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` @@ -240,6 +247,7 @@ - [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` - [Untitled array in ServerDataStatus](./serverdatastatus-properties-categorybase.md) – `https://timelimit.io/ServerDataStatus#/properties/categoryBase` +- [Untitled array in ServerDataStatus](./serverdatastatus-definitions-serverupdatedcategorybasedata-properties-networks.md) – `https://timelimit.io/ServerDataStatus#/definitions/ServerUpdatedCategoryBaseData/properties/networks` - [Untitled array in ServerDataStatus](./serverdatastatus-properties-categoryapp.md) – `https://timelimit.io/ServerDataStatus#/properties/categoryApp` - [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` @@ -251,6 +259,7 @@ - [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-definitions-serverupdatedcategorybasedata-properties-networks.md) – `https://timelimit.io/ServerDataStatus#/definitions/ServerUpdatedCategoryBaseData/properties/networks` - [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` diff --git a/docs/schema/SerializedParentAction.schema.json b/docs/schema/SerializedParentAction.schema.json index 704c69a..94f8280 100644 --- a/docs/schema/SerializedParentAction.schema.json +++ b/docs/schema/SerializedParentAction.schema.json @@ -3,6 +3,9 @@ { "$ref": "#/definitions/SerializedAddCategoryAppsAction" }, + { + "$ref": "#/definitions/SerializedAddCategoryNetworkIdAction" + }, { "$ref": "#/definitions/SerializedAddUserAction" }, @@ -36,6 +39,9 @@ { "$ref": "#/definitions/SerializedRenameChildAction" }, + { + "$ref": "#/definitions/SerializeResetCategoryNetworkIdsAction" + }, { "$ref": "#/definitions/SerializedResetParentBlockedTimesAction" }, @@ -152,6 +158,34 @@ ], "title": "SerializedAddCategoryAppsAction" }, + "SerializedAddCategoryNetworkIdAction": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "ADD_CATEGORY_NETWORK_ID" + ] + }, + "categoryId": { + "type": "string" + }, + "itemId": { + "type": "string" + }, + "hashedNetworkId": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "categoryId", + "hashedNetworkId", + "itemId", + "type" + ], + "title": "SerializedAddCategoryNetworkIdAction" + }, "SerializedAddUserAction": { "type": "object", "properties": { @@ -534,6 +568,26 @@ ], "title": "SerializedRenameChildAction" }, + "SerializeResetCategoryNetworkIdsAction": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "RESET_CATEGORY_NETWORK_IDS" + ] + }, + "categoryId": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "categoryId", + "type" + ], + "title": "SerializeResetCategoryNetworkIdsAction" + }, "SerializedResetParentBlockedTimesAction": { "type": "object", "properties": { diff --git a/docs/schema/ServerDataStatus.schema.json b/docs/schema/ServerDataStatus.schema.json index 861f294..0064f41 100644 --- a/docs/schema/ServerDataStatus.schema.json +++ b/docs/schema/ServerDataStatus.schema.json @@ -370,6 +370,12 @@ }, "sort": { "type": "number" + }, + "networks": { + "type": "array", + "items": { + "$ref": "#/definitions/ServerCategoryNetworkId" + } } }, "additionalProperties": false, @@ -382,6 +388,7 @@ "extraTimeDay", "mblCharging", "mblMobile", + "networks", "parentCategoryId", "sort", "tempBlockTime", @@ -392,6 +399,23 @@ ], "title": "ServerUpdatedCategoryBaseData" }, + "ServerCategoryNetworkId": { + "type": "object", + "properties": { + "itemId": { + "type": "string" + }, + "hashedNetworkId": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "hashedNetworkId", + "itemId" + ], + "title": "ServerCategoryNetworkId" + }, "ServerUpdatedCategoryAssignedApps": { "type": "object", "properties": { diff --git a/docs/schema/serializedparentaction-definitions-serializedaddcategorynetworkidaction-properties-categoryid.md b/docs/schema/serializedparentaction-definitions-serializedaddcategorynetworkidaction-properties-categoryid.md new file mode 100644 index 0000000..f33067b --- /dev/null +++ b/docs/schema/serializedparentaction-definitions-serializedaddcategorynetworkidaction-properties-categoryid.md @@ -0,0 +1,16 @@ +# Untitled string in SerializedParentAction Schema + +```txt +https://timelimit.io/SerializedParentAction#/definitions/SerializedAddCategoryNetworkIdAction/properties/categoryId +``` + + + + +| 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") | + +## categoryId Type + +`string` diff --git a/docs/schema/serializedparentaction-definitions-serializedaddcategorynetworkidaction-properties-hashednetworkid.md b/docs/schema/serializedparentaction-definitions-serializedaddcategorynetworkidaction-properties-hashednetworkid.md new file mode 100644 index 0000000..131b075 --- /dev/null +++ b/docs/schema/serializedparentaction-definitions-serializedaddcategorynetworkidaction-properties-hashednetworkid.md @@ -0,0 +1,16 @@ +# Untitled string in SerializedParentAction Schema + +```txt +https://timelimit.io/SerializedParentAction#/definitions/SerializedAddCategoryNetworkIdAction/properties/hashedNetworkId +``` + + + + +| 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") | + +## hashedNetworkId Type + +`string` diff --git a/docs/schema/serializedparentaction-definitions-serializedaddcategorynetworkidaction-properties-itemid.md b/docs/schema/serializedparentaction-definitions-serializedaddcategorynetworkidaction-properties-itemid.md new file mode 100644 index 0000000..05cf22b --- /dev/null +++ b/docs/schema/serializedparentaction-definitions-serializedaddcategorynetworkidaction-properties-itemid.md @@ -0,0 +1,16 @@ +# Untitled string in SerializedParentAction Schema + +```txt +https://timelimit.io/SerializedParentAction#/definitions/SerializedAddCategoryNetworkIdAction/properties/itemId +``` + + + + +| 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") | + +## itemId Type + +`string` diff --git a/docs/schema/serializedparentaction-definitions-serializedaddcategorynetworkidaction-properties-type.md b/docs/schema/serializedparentaction-definitions-serializedaddcategorynetworkidaction-properties-type.md new file mode 100644 index 0000000..226589e --- /dev/null +++ b/docs/schema/serializedparentaction-definitions-serializedaddcategorynetworkidaction-properties-type.md @@ -0,0 +1,24 @@ +# Untitled string in SerializedParentAction Schema + +```txt +https://timelimit.io/SerializedParentAction#/definitions/SerializedAddCategoryNetworkIdAction/properties/type +``` + + + + +| 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") | + +## type Type + +`string` + +## type Constraints + +**enum**: the value of this property must be equal to one of the following values: + +| Value | Explanation | +| :-------------------------- | ----------- | +| `"ADD_CATEGORY_NETWORK_ID"` | | diff --git a/docs/schema/serializedparentaction-definitions-serializedaddcategorynetworkidaction-properties.md b/docs/schema/serializedparentaction-definitions-serializedaddcategorynetworkidaction-properties.md new file mode 100644 index 0000000..5b918bb --- /dev/null +++ b/docs/schema/serializedparentaction-definitions-serializedaddcategorynetworkidaction-properties.md @@ -0,0 +1,16 @@ +# Untitled undefined type in SerializedParentAction Schema + +```txt +https://timelimit.io/SerializedParentAction#/definitions/SerializedAddCategoryNetworkIdAction/properties +``` + + + + +| 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") | + +## properties Type + +unknown diff --git a/docs/schema/serializedparentaction-definitions-serializedaddcategorynetworkidaction.md b/docs/schema/serializedparentaction-definitions-serializedaddcategorynetworkidaction.md new file mode 100644 index 0000000..2a378ed --- /dev/null +++ b/docs/schema/serializedparentaction-definitions-serializedaddcategorynetworkidaction.md @@ -0,0 +1,97 @@ +# SerializedAddCategoryNetworkIdAction Schema + +```txt +https://timelimit.io/SerializedParentAction#/definitions/SerializedAddCategoryNetworkIdAction +``` + + + + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | ---------- | -------------- | ------------ | :---------------- | --------------------- | ------------------- | ------------------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | No | Forbidden | Forbidden | none | [SerializedParentAction.schema.json\*](SerializedParentAction.schema.json "open original schema") | + +## SerializedAddCategoryNetworkIdAction Type + +`object` ([SerializedAddCategoryNetworkIdAction](serializedparentaction-definitions-serializedaddcategorynetworkidaction.md)) + +# SerializedAddCategoryNetworkIdAction Properties + +| Property | Type | Required | Nullable | Defined by | +| :---------------------------------- | -------- | -------- | -------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [type](#type) | `string` | Required | cannot be null | [SerializedParentAction](serializedparentaction-definitions-serializedaddcategorynetworkidaction-properties-type.md "https://timelimit.io/SerializedParentAction#/definitions/SerializedAddCategoryNetworkIdAction/properties/type") | +| [categoryId](#categoryId) | `string` | Required | cannot be null | [SerializedParentAction](serializedparentaction-definitions-serializedaddcategorynetworkidaction-properties-categoryid.md "https://timelimit.io/SerializedParentAction#/definitions/SerializedAddCategoryNetworkIdAction/properties/categoryId") | +| [itemId](#itemId) | `string` | Required | cannot be null | [SerializedParentAction](serializedparentaction-definitions-serializedaddcategorynetworkidaction-properties-itemid.md "https://timelimit.io/SerializedParentAction#/definitions/SerializedAddCategoryNetworkIdAction/properties/itemId") | +| [hashedNetworkId](#hashedNetworkId) | `string` | Required | cannot be null | [SerializedParentAction](serializedparentaction-definitions-serializedaddcategorynetworkidaction-properties-hashednetworkid.md "https://timelimit.io/SerializedParentAction#/definitions/SerializedAddCategoryNetworkIdAction/properties/hashedNetworkId") | + +## type + + + + +`type` + +- is required +- Type: `string` +- cannot be null +- defined in: [SerializedParentAction](serializedparentaction-definitions-serializedaddcategorynetworkidaction-properties-type.md "https://timelimit.io/SerializedParentAction#/definitions/SerializedAddCategoryNetworkIdAction/properties/type") + +### type Type + +`string` + +### type Constraints + +**enum**: the value of this property must be equal to one of the following values: + +| Value | Explanation | +| :-------------------------- | ----------- | +| `"ADD_CATEGORY_NETWORK_ID"` | | + +## categoryId + + + + +`categoryId` + +- is required +- Type: `string` +- cannot be null +- defined in: [SerializedParentAction](serializedparentaction-definitions-serializedaddcategorynetworkidaction-properties-categoryid.md "https://timelimit.io/SerializedParentAction#/definitions/SerializedAddCategoryNetworkIdAction/properties/categoryId") + +### categoryId Type + +`string` + +## itemId + + + + +`itemId` + +- is required +- Type: `string` +- cannot be null +- defined in: [SerializedParentAction](serializedparentaction-definitions-serializedaddcategorynetworkidaction-properties-itemid.md "https://timelimit.io/SerializedParentAction#/definitions/SerializedAddCategoryNetworkIdAction/properties/itemId") + +### itemId Type + +`string` + +## hashedNetworkId + + + + +`hashedNetworkId` + +- is required +- Type: `string` +- cannot be null +- defined in: [SerializedParentAction](serializedparentaction-definitions-serializedaddcategorynetworkidaction-properties-hashednetworkid.md "https://timelimit.io/SerializedParentAction#/definitions/SerializedAddCategoryNetworkIdAction/properties/hashedNetworkId") + +### hashedNetworkId Type + +`string` diff --git a/docs/schema/serializedparentaction-definitions-serializeresetcategorynetworkidsaction-properties-categoryid.md b/docs/schema/serializedparentaction-definitions-serializeresetcategorynetworkidsaction-properties-categoryid.md new file mode 100644 index 0000000..d839622 --- /dev/null +++ b/docs/schema/serializedparentaction-definitions-serializeresetcategorynetworkidsaction-properties-categoryid.md @@ -0,0 +1,16 @@ +# Untitled string in SerializedParentAction Schema + +```txt +https://timelimit.io/SerializedParentAction#/definitions/SerializeResetCategoryNetworkIdsAction/properties/categoryId +``` + + + + +| 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") | + +## categoryId Type + +`string` diff --git a/docs/schema/serializedparentaction-definitions-serializeresetcategorynetworkidsaction-properties-type.md b/docs/schema/serializedparentaction-definitions-serializeresetcategorynetworkidsaction-properties-type.md new file mode 100644 index 0000000..090df65 --- /dev/null +++ b/docs/schema/serializedparentaction-definitions-serializeresetcategorynetworkidsaction-properties-type.md @@ -0,0 +1,24 @@ +# Untitled string in SerializedParentAction Schema + +```txt +https://timelimit.io/SerializedParentAction#/definitions/SerializeResetCategoryNetworkIdsAction/properties/type +``` + + + + +| 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") | + +## type Type + +`string` + +## type Constraints + +**enum**: the value of this property must be equal to one of the following values: + +| Value | Explanation | +| :----------------------------- | ----------- | +| `"RESET_CATEGORY_NETWORK_IDS"` | | diff --git a/docs/schema/serializedparentaction-definitions-serializeresetcategorynetworkidsaction-properties.md b/docs/schema/serializedparentaction-definitions-serializeresetcategorynetworkidsaction-properties.md new file mode 100644 index 0000000..dd66264 --- /dev/null +++ b/docs/schema/serializedparentaction-definitions-serializeresetcategorynetworkidsaction-properties.md @@ -0,0 +1,16 @@ +# Untitled undefined type in SerializedParentAction Schema + +```txt +https://timelimit.io/SerializedParentAction#/definitions/SerializeResetCategoryNetworkIdsAction/properties +``` + + + + +| 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") | + +## properties Type + +unknown diff --git a/docs/schema/serializedparentaction-definitions-serializeresetcategorynetworkidsaction.md b/docs/schema/serializedparentaction-definitions-serializeresetcategorynetworkidsaction.md new file mode 100644 index 0000000..9507ef9 --- /dev/null +++ b/docs/schema/serializedparentaction-definitions-serializeresetcategorynetworkidsaction.md @@ -0,0 +1,63 @@ +# SerializeResetCategoryNetworkIdsAction Schema + +```txt +https://timelimit.io/SerializedParentAction#/definitions/SerializeResetCategoryNetworkIdsAction +``` + + + + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | ---------- | -------------- | ------------ | :---------------- | --------------------- | ------------------- | ------------------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | No | Forbidden | Forbidden | none | [SerializedParentAction.schema.json\*](SerializedParentAction.schema.json "open original schema") | + +## SerializeResetCategoryNetworkIdsAction Type + +`object` ([SerializeResetCategoryNetworkIdsAction](serializedparentaction-definitions-serializeresetcategorynetworkidsaction.md)) + +# SerializeResetCategoryNetworkIdsAction Properties + +| Property | Type | Required | Nullable | Defined by | +| :------------------------ | -------- | -------- | -------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [type](#type) | `string` | Required | cannot be null | [SerializedParentAction](serializedparentaction-definitions-serializeresetcategorynetworkidsaction-properties-type.md "https://timelimit.io/SerializedParentAction#/definitions/SerializeResetCategoryNetworkIdsAction/properties/type") | +| [categoryId](#categoryId) | `string` | Required | cannot be null | [SerializedParentAction](serializedparentaction-definitions-serializeresetcategorynetworkidsaction-properties-categoryid.md "https://timelimit.io/SerializedParentAction#/definitions/SerializeResetCategoryNetworkIdsAction/properties/categoryId") | + +## type + + + + +`type` + +- is required +- Type: `string` +- cannot be null +- defined in: [SerializedParentAction](serializedparentaction-definitions-serializeresetcategorynetworkidsaction-properties-type.md "https://timelimit.io/SerializedParentAction#/definitions/SerializeResetCategoryNetworkIdsAction/properties/type") + +### type Type + +`string` + +### type Constraints + +**enum**: the value of this property must be equal to one of the following values: + +| Value | Explanation | +| :----------------------------- | ----------- | +| `"RESET_CATEGORY_NETWORK_IDS"` | | + +## categoryId + + + + +`categoryId` + +- is required +- Type: `string` +- cannot be null +- defined in: [SerializedParentAction](serializedparentaction-definitions-serializeresetcategorynetworkidsaction-properties-categoryid.md "https://timelimit.io/SerializedParentAction#/definitions/SerializeResetCategoryNetworkIdsAction/properties/categoryId") + +### categoryId Type + +`string` diff --git a/docs/schema/serializedparentaction.md b/docs/schema/serializedparentaction.md index d3c90cc..f167bdf 100644 --- a/docs/schema/serializedparentaction.md +++ b/docs/schema/serializedparentaction.md @@ -18,6 +18,7 @@ merged type ([SerializedParentAction](serializedparentaction.md)) any of - [SerializedAddCategoryAppsAction](serializedparentaction-definitions-serializedaddcategoryappsaction.md "check type definition") +- [SerializedAddCategoryNetworkIdAction](serializedparentaction-definitions-serializedaddcategorynetworkidaction.md "check type definition") - [SerializedAddUserAction](serializedparentaction-definitions-serializedadduseraction.md "check type definition") - [SerializedChangeParentPasswordAction](serializedparentaction-definitions-serializedchangeparentpasswordaction.md "check type definition") - [SerializedCreateCategoryAction](serializedparentaction-definitions-serializedcreatecategoryaction.md "check type definition") @@ -29,6 +30,7 @@ any of - [SerializedRemoveCategoryAppsAction](serializedparentaction-definitions-serializedremovecategoryappsaction.md "check type definition") - [SerializedRemoveUserAction](serializedparentaction-definitions-serializedremoveuseraction.md "check type definition") - [SerializedRenameChildAction](serializedparentaction-definitions-serializedrenamechildaction.md "check type definition") +- [SerializeResetCategoryNetworkIdsAction](serializedparentaction-definitions-serializeresetcategorynetworkidsaction.md "check type definition") - [SerializedResetParentBlockedTimesAction](serializedparentaction-definitions-serializedresetparentblockedtimesaction.md "check type definition") - [SerializedSetCategoryExtraTimeAction](serializedparentaction-definitions-serializedsetcategoryextratimeaction.md "check type definition") - [SerializedSetCategoryForUnassignedAppsAction](serializedparentaction-definitions-serializedsetcategoryforunassignedappsaction.md "check type definition") @@ -131,6 +133,93 @@ Reference this group by using `string[]` +## Definitions group SerializedAddCategoryNetworkIdAction + +Reference this group by using + +```json +{"$ref":"https://timelimit.io/SerializedParentAction#/definitions/SerializedAddCategoryNetworkIdAction"} +``` + +| Property | Type | Required | Nullable | Defined by | +| :---------------------------------- | -------- | -------- | -------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [type](#type) | `string` | Required | cannot be null | [SerializedParentAction](serializedparentaction-definitions-serializedaddcategorynetworkidaction-properties-type.md "https://timelimit.io/SerializedParentAction#/definitions/SerializedAddCategoryNetworkIdAction/properties/type") | +| [categoryId](#categoryId) | `string` | Required | cannot be null | [SerializedParentAction](serializedparentaction-definitions-serializedaddcategorynetworkidaction-properties-categoryid.md "https://timelimit.io/SerializedParentAction#/definitions/SerializedAddCategoryNetworkIdAction/properties/categoryId") | +| [itemId](#itemId) | `string` | Required | cannot be null | [SerializedParentAction](serializedparentaction-definitions-serializedaddcategorynetworkidaction-properties-itemid.md "https://timelimit.io/SerializedParentAction#/definitions/SerializedAddCategoryNetworkIdAction/properties/itemId") | +| [hashedNetworkId](#hashedNetworkId) | `string` | Required | cannot be null | [SerializedParentAction](serializedparentaction-definitions-serializedaddcategorynetworkidaction-properties-hashednetworkid.md "https://timelimit.io/SerializedParentAction#/definitions/SerializedAddCategoryNetworkIdAction/properties/hashedNetworkId") | + +### type + + + + +`type` + +- is required +- Type: `string` +- cannot be null +- defined in: [SerializedParentAction](serializedparentaction-definitions-serializedaddcategorynetworkidaction-properties-type.md "https://timelimit.io/SerializedParentAction#/definitions/SerializedAddCategoryNetworkIdAction/properties/type") + +#### type Type + +`string` + +#### type Constraints + +**enum**: the value of this property must be equal to one of the following values: + +| Value | Explanation | +| :-------------------------- | ----------- | +| `"ADD_CATEGORY_NETWORK_ID"` | | + +### categoryId + + + + +`categoryId` + +- is required +- Type: `string` +- cannot be null +- defined in: [SerializedParentAction](serializedparentaction-definitions-serializedaddcategorynetworkidaction-properties-categoryid.md "https://timelimit.io/SerializedParentAction#/definitions/SerializedAddCategoryNetworkIdAction/properties/categoryId") + +#### categoryId Type + +`string` + +### itemId + + + + +`itemId` + +- is required +- Type: `string` +- cannot be null +- defined in: [SerializedParentAction](serializedparentaction-definitions-serializedaddcategorynetworkidaction-properties-itemid.md "https://timelimit.io/SerializedParentAction#/definitions/SerializedAddCategoryNetworkIdAction/properties/itemId") + +#### itemId Type + +`string` + +### hashedNetworkId + + + + +`hashedNetworkId` + +- is required +- Type: `string` +- cannot be null +- defined in: [SerializedParentAction](serializedparentaction-definitions-serializedaddcategorynetworkidaction-properties-hashednetworkid.md "https://timelimit.io/SerializedParentAction#/definitions/SerializedAddCategoryNetworkIdAction/properties/hashedNetworkId") + +#### hashedNetworkId Type + +`string` + ## Definitions group SerializedAddUserAction Reference this group by using @@ -1374,6 +1463,59 @@ Reference this group by using `string` +## Definitions group SerializeResetCategoryNetworkIdsAction + +Reference this group by using + +```json +{"$ref":"https://timelimit.io/SerializedParentAction#/definitions/SerializeResetCategoryNetworkIdsAction"} +``` + +| Property | Type | Required | Nullable | Defined by | +| :------------------------ | -------- | -------- | -------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [type](#type) | `string` | Required | cannot be null | [SerializedParentAction](serializedparentaction-definitions-serializeresetcategorynetworkidsaction-properties-type.md "https://timelimit.io/SerializedParentAction#/definitions/SerializeResetCategoryNetworkIdsAction/properties/type") | +| [categoryId](#categoryId) | `string` | Required | cannot be null | [SerializedParentAction](serializedparentaction-definitions-serializeresetcategorynetworkidsaction-properties-categoryid.md "https://timelimit.io/SerializedParentAction#/definitions/SerializeResetCategoryNetworkIdsAction/properties/categoryId") | + +### type + + + + +`type` + +- is required +- Type: `string` +- cannot be null +- defined in: [SerializedParentAction](serializedparentaction-definitions-serializeresetcategorynetworkidsaction-properties-type.md "https://timelimit.io/SerializedParentAction#/definitions/SerializeResetCategoryNetworkIdsAction/properties/type") + +#### type Type + +`string` + +#### type Constraints + +**enum**: the value of this property must be equal to one of the following values: + +| Value | Explanation | +| :----------------------------- | ----------- | +| `"RESET_CATEGORY_NETWORK_IDS"` | | + +### categoryId + + + + +`categoryId` + +- is required +- Type: `string` +- cannot be null +- defined in: [SerializedParentAction](serializedparentaction-definitions-serializeresetcategorynetworkidsaction-properties-categoryid.md "https://timelimit.io/SerializedParentAction#/definitions/SerializeResetCategoryNetworkIdsAction/properties/categoryId") + +#### categoryId Type + +`string` + ## Definitions group SerializedResetParentBlockedTimesAction Reference this group by using diff --git a/docs/schema/serverdatastatus-definitions-servercategorynetworkid-properties-hashednetworkid.md b/docs/schema/serverdatastatus-definitions-servercategorynetworkid-properties-hashednetworkid.md new file mode 100644 index 0000000..2db94cb --- /dev/null +++ b/docs/schema/serverdatastatus-definitions-servercategorynetworkid-properties-hashednetworkid.md @@ -0,0 +1,16 @@ +# Untitled string in ServerDataStatus Schema + +```txt +https://timelimit.io/ServerDataStatus#/definitions/ServerCategoryNetworkId/properties/hashedNetworkId +``` + + + + +| 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") | + +## hashedNetworkId Type + +`string` diff --git a/docs/schema/serverdatastatus-definitions-servercategorynetworkid-properties-itemid.md b/docs/schema/serverdatastatus-definitions-servercategorynetworkid-properties-itemid.md new file mode 100644 index 0000000..d57538a --- /dev/null +++ b/docs/schema/serverdatastatus-definitions-servercategorynetworkid-properties-itemid.md @@ -0,0 +1,16 @@ +# Untitled string in ServerDataStatus Schema + +```txt +https://timelimit.io/ServerDataStatus#/definitions/ServerCategoryNetworkId/properties/itemId +``` + + + + +| 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") | + +## itemId Type + +`string` diff --git a/docs/schema/serverdatastatus-definitions-servercategorynetworkid-properties.md b/docs/schema/serverdatastatus-definitions-servercategorynetworkid-properties.md new file mode 100644 index 0000000..5e42d69 --- /dev/null +++ b/docs/schema/serverdatastatus-definitions-servercategorynetworkid-properties.md @@ -0,0 +1,16 @@ +# Untitled undefined type in ServerDataStatus Schema + +```txt +https://timelimit.io/ServerDataStatus#/definitions/ServerCategoryNetworkId/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-servercategorynetworkid.md b/docs/schema/serverdatastatus-definitions-servercategorynetworkid.md new file mode 100644 index 0000000..3434a37 --- /dev/null +++ b/docs/schema/serverdatastatus-definitions-servercategorynetworkid.md @@ -0,0 +1,55 @@ +# ServerCategoryNetworkId Schema + +```txt +https://timelimit.io/ServerDataStatus#/definitions/ServerCategoryNetworkId +``` + + + + +| 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") | + +## ServerCategoryNetworkId Type + +`object` ([ServerCategoryNetworkId](serverdatastatus-definitions-servercategorynetworkid.md)) + +# ServerCategoryNetworkId Properties + +| Property | Type | Required | Nullable | Defined by | +| :---------------------------------- | -------- | -------- | -------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| [itemId](#itemId) | `string` | Required | cannot be null | [ServerDataStatus](serverdatastatus-definitions-servercategorynetworkid-properties-itemid.md "https://timelimit.io/ServerDataStatus#/definitions/ServerCategoryNetworkId/properties/itemId") | +| [hashedNetworkId](#hashedNetworkId) | `string` | Required | cannot be null | [ServerDataStatus](serverdatastatus-definitions-servercategorynetworkid-properties-hashednetworkid.md "https://timelimit.io/ServerDataStatus#/definitions/ServerCategoryNetworkId/properties/hashedNetworkId") | + +## itemId + + + + +`itemId` + +- is required +- Type: `string` +- cannot be null +- defined in: [ServerDataStatus](serverdatastatus-definitions-servercategorynetworkid-properties-itemid.md "https://timelimit.io/ServerDataStatus#/definitions/ServerCategoryNetworkId/properties/itemId") + +### itemId Type + +`string` + +## hashedNetworkId + + + + +`hashedNetworkId` + +- is required +- Type: `string` +- cannot be null +- defined in: [ServerDataStatus](serverdatastatus-definitions-servercategorynetworkid-properties-hashednetworkid.md "https://timelimit.io/ServerDataStatus#/definitions/ServerCategoryNetworkId/properties/hashedNetworkId") + +### hashedNetworkId Type + +`string` diff --git a/docs/schema/serverdatastatus-definitions-serverupdatedcategorybasedata-properties-networks.md b/docs/schema/serverdatastatus-definitions-serverupdatedcategorybasedata-properties-networks.md new file mode 100644 index 0000000..6d89e9f --- /dev/null +++ b/docs/schema/serverdatastatus-definitions-serverupdatedcategorybasedata-properties-networks.md @@ -0,0 +1,16 @@ +# Untitled array in ServerDataStatus Schema + +```txt +https://timelimit.io/ServerDataStatus#/definitions/ServerUpdatedCategoryBaseData/properties/networks +``` + + + + +| 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") | + +## networks Type + +`object[]` ([ServerCategoryNetworkId](serverdatastatus-definitions-servercategorynetworkid.md)) diff --git a/docs/schema/serverdatastatus-definitions-serverupdatedcategorybasedata.md b/docs/schema/serverdatastatus-definitions-serverupdatedcategorybasedata.md index 9761e26..b522d08 100644 --- a/docs/schema/serverdatastatus-definitions-serverupdatedcategorybasedata.md +++ b/docs/schema/serverdatastatus-definitions-serverupdatedcategorybasedata.md @@ -34,6 +34,7 @@ https://timelimit.io/ServerDataStatus#/definitions/ServerUpdatedCategoryBaseData | [mblCharging](#mblCharging) | `number` | Required | cannot be null | [ServerDataStatus](serverdatastatus-definitions-serverupdatedcategorybasedata-properties-mblcharging.md "https://timelimit.io/ServerDataStatus#/definitions/ServerUpdatedCategoryBaseData/properties/mblCharging") | | [mblMobile](#mblMobile) | `number` | Required | cannot be null | [ServerDataStatus](serverdatastatus-definitions-serverupdatedcategorybasedata-properties-mblmobile.md "https://timelimit.io/ServerDataStatus#/definitions/ServerUpdatedCategoryBaseData/properties/mblMobile") | | [sort](#sort) | `number` | Required | cannot be null | [ServerDataStatus](serverdatastatus-definitions-serverupdatedcategorybasedata-properties-sort.md "https://timelimit.io/ServerDataStatus#/definitions/ServerUpdatedCategoryBaseData/properties/sort") | +| [networks](#networks) | `array` | Required | cannot be null | [ServerDataStatus](serverdatastatus-definitions-serverupdatedcategorybasedata-properties-networks.md "https://timelimit.io/ServerDataStatus#/definitions/ServerUpdatedCategoryBaseData/properties/networks") | ## categoryId @@ -274,3 +275,19 @@ https://timelimit.io/ServerDataStatus#/definitions/ServerUpdatedCategoryBaseData ### sort Type `number` + +## networks + + + + +`networks` + +- is required +- Type: `object[]` ([ServerCategoryNetworkId](serverdatastatus-definitions-servercategorynetworkid.md)) +- cannot be null +- defined in: [ServerDataStatus](serverdatastatus-definitions-serverupdatedcategorybasedata-properties-networks.md "https://timelimit.io/ServerDataStatus#/definitions/ServerUpdatedCategoryBaseData/properties/networks") + +### networks Type + +`object[]` ([ServerCategoryNetworkId](serverdatastatus-definitions-servercategorynetworkid.md)) diff --git a/docs/schema/serverdatastatus.md b/docs/schema/serverdatastatus.md index d216b1a..410e6ca 100644 --- a/docs/schema/serverdatastatus.md +++ b/docs/schema/serverdatastatus.md @@ -974,6 +974,7 @@ Reference this group by using | [mblCharging](#mblCharging) | `number` | Required | cannot be null | [ServerDataStatus](serverdatastatus-definitions-serverupdatedcategorybasedata-properties-mblcharging.md "https://timelimit.io/ServerDataStatus#/definitions/ServerUpdatedCategoryBaseData/properties/mblCharging") | | [mblMobile](#mblMobile) | `number` | Required | cannot be null | [ServerDataStatus](serverdatastatus-definitions-serverupdatedcategorybasedata-properties-mblmobile.md "https://timelimit.io/ServerDataStatus#/definitions/ServerUpdatedCategoryBaseData/properties/mblMobile") | | [sort](#sort) | `number` | Required | cannot be null | [ServerDataStatus](serverdatastatus-definitions-serverupdatedcategorybasedata-properties-sort.md "https://timelimit.io/ServerDataStatus#/definitions/ServerUpdatedCategoryBaseData/properties/sort") | +| [networks](#networks) | `array` | Required | cannot be null | [ServerDataStatus](serverdatastatus-definitions-serverupdatedcategorybasedata-properties-networks.md "https://timelimit.io/ServerDataStatus#/definitions/ServerUpdatedCategoryBaseData/properties/networks") | ### categoryId @@ -1215,6 +1216,67 @@ Reference this group by using `number` +### networks + + + + +`networks` + +- is required +- Type: `object[]` ([ServerCategoryNetworkId](serverdatastatus-definitions-servercategorynetworkid.md)) +- cannot be null +- defined in: [ServerDataStatus](serverdatastatus-definitions-serverupdatedcategorybasedata-properties-networks.md "https://timelimit.io/ServerDataStatus#/definitions/ServerUpdatedCategoryBaseData/properties/networks") + +#### networks Type + +`object[]` ([ServerCategoryNetworkId](serverdatastatus-definitions-servercategorynetworkid.md)) + +## Definitions group ServerCategoryNetworkId + +Reference this group by using + +```json +{"$ref":"https://timelimit.io/ServerDataStatus#/definitions/ServerCategoryNetworkId"} +``` + +| Property | Type | Required | Nullable | Defined by | +| :---------------------------------- | -------- | -------- | -------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| [itemId](#itemId) | `string` | Required | cannot be null | [ServerDataStatus](serverdatastatus-definitions-servercategorynetworkid-properties-itemid.md "https://timelimit.io/ServerDataStatus#/definitions/ServerCategoryNetworkId/properties/itemId") | +| [hashedNetworkId](#hashedNetworkId) | `string` | Required | cannot be null | [ServerDataStatus](serverdatastatus-definitions-servercategorynetworkid-properties-hashednetworkid.md "https://timelimit.io/ServerDataStatus#/definitions/ServerCategoryNetworkId/properties/hashedNetworkId") | + +### itemId + + + + +`itemId` + +- is required +- Type: `string` +- cannot be null +- defined in: [ServerDataStatus](serverdatastatus-definitions-servercategorynetworkid-properties-itemid.md "https://timelimit.io/ServerDataStatus#/definitions/ServerCategoryNetworkId/properties/itemId") + +#### itemId Type + +`string` + +### hashedNetworkId + + + + +`hashedNetworkId` + +- is required +- Type: `string` +- cannot be null +- defined in: [ServerDataStatus](serverdatastatus-definitions-servercategorynetworkid-properties-hashednetworkid.md "https://timelimit.io/ServerDataStatus#/definitions/ServerCategoryNetworkId/properties/hashedNetworkId") + +#### hashedNetworkId Type + +`string` + ## Definitions group ServerUpdatedCategoryAssignedApps Reference this group by using diff --git a/src/action/addcategorynetworkid.ts b/src/action/addcategorynetworkid.ts new file mode 100644 index 0000000..e885640 --- /dev/null +++ b/src/action/addcategorynetworkid.ts @@ -0,0 +1,66 @@ +/* + * 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 { anonymizedNetworkIdLength } from '../database/categorynetworkid' +import { assertIsHexString } from '../util/hexstring' +import { assertIdWithinFamily } from '../util/token' +import { ParentAction } from './basetypes' + +export class AddCategoryNetworkIdAction extends ParentAction { + readonly categoryId: string + readonly itemId: string + readonly hashedNetworkId: string + + constructor ({ categoryId, itemId, hashedNetworkId }: { + categoryId: string + itemId: string + hashedNetworkId: string + }) { + super() + + assertIdWithinFamily(categoryId) + assertIdWithinFamily(itemId) + assertIsHexString(hashedNetworkId) + if (hashedNetworkId.length !== anonymizedNetworkIdLength) throw new Error('wrong network id length') + + this.categoryId = categoryId + this.itemId = itemId + this.hashedNetworkId = hashedNetworkId + } + + serialize = (): SerializedAddCategoryNetworkIdAction => ({ + type: 'ADD_CATEGORY_NETWORK_ID', + categoryId: this.categoryId, + itemId: this.itemId, + hashedNetworkId: this.hashedNetworkId + }) + + static parse = ({ categoryId, itemId, hashedNetworkId }: SerializedAddCategoryNetworkIdAction) => ( + new AddCategoryNetworkIdAction({ + categoryId, + itemId, + hashedNetworkId + }) + ) +} + +export interface SerializedAddCategoryNetworkIdAction { + type: 'ADD_CATEGORY_NETWORK_ID' + categoryId: string + itemId: string + hashedNetworkId: string +} diff --git a/src/action/index.ts b/src/action/index.ts index 0a6e589..47f92aa 100644 --- a/src/action/index.ts +++ b/src/action/index.ts @@ -18,6 +18,7 @@ export { AppLogicAction, ChildAction, ParentAction } from './basetypes' export { AddCategoryAppsAction } from './addcategoryapps' +export { AddCategoryNetworkIdAction } from './addcategorynetworkid' export { AddUserAction } from './adduser' export { AddInstalledAppsAction } from './addinstalledapps' export { AddUsedTimeAction } from './addusedtime' @@ -34,6 +35,7 @@ export { IncrementCategoryExtraTimeAction } from './incrementcategoryextratime' export { RemoveCategoryAppsAction } from './removecategoryapps' export { RemoveInstalledAppsAction } from './removeinstalledapps' export { RemoveUserAction } from './removeuser' +export { ResetCategoryNetworkIdsAction } from './resetcategorynetworkids' export { RenameChildAction } from './renamechild' export { ResetParentBlockedTimesAction } from './resetparentblockedtimes' export { SetCategoryExtraTimeAction } from './setcategoryextratime' diff --git a/src/action/resetcategorynetworkids.ts b/src/action/resetcategorynetworkids.ts new file mode 100644 index 0000000..707aef8 --- /dev/null +++ b/src/action/resetcategorynetworkids.ts @@ -0,0 +1,49 @@ +/* + * 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 { assertIdWithinFamily } from '../util/token' +import { ParentAction } from './basetypes' + +export class ResetCategoryNetworkIdsAction extends ParentAction { + readonly categoryId: string + + constructor ({ categoryId }: { + categoryId: string + }) { + super() + + assertIdWithinFamily(categoryId) + + this.categoryId = categoryId + } + + serialize = (): SerializeResetCategoryNetworkIdsAction => ({ + type: 'RESET_CATEGORY_NETWORK_IDS', + categoryId: this.categoryId + }) + + static parse = ({ categoryId }: SerializeResetCategoryNetworkIdsAction) => ( + new ResetCategoryNetworkIdsAction({ + categoryId + }) + ) +} + +export interface SerializeResetCategoryNetworkIdsAction { + type: 'RESET_CATEGORY_NETWORK_IDS' + categoryId: string +} diff --git a/src/action/serialization/parentaction.ts b/src/action/serialization/parentaction.ts index 7ef6806..349ca2b 100644 --- a/src/action/serialization/parentaction.ts +++ b/src/action/serialization/parentaction.ts @@ -16,6 +16,7 @@ */ import { AddCategoryAppsAction, SerializedAddCategoryAppsAction } from '../addcategoryapps' +import { AddCategoryNetworkIdAction, SerializedAddCategoryNetworkIdAction } from '../addcategorynetworkid' import { AddUserAction, SerializedAddUserAction } from '../adduser' import { ParentAction } from '../basetypes' import { ChangeParentPasswordAction, SerializedChangeParentPasswordAction } from '../changeparentpassword' @@ -28,6 +29,7 @@ import { IncrementCategoryExtraTimeAction, SerializedIncrementCategoryExtraTimeA import { RemoveCategoryAppsAction, SerializedRemoveCategoryAppsAction } from '../removecategoryapps' import { RemoveUserAction, SerializedRemoveUserAction } from '../removeuser' import { RenameChildAction, SerializedRenameChildAction } from '../renamechild' +import { ResetCategoryNetworkIdsAction, SerializeResetCategoryNetworkIdsAction } from '../resetcategorynetworkids' import { ResetParentBlockedTimesAction, SerializedResetParentBlockedTimesAction } from '../resetparentblockedtimes' import { SerializedSetCategoryExtraTimeAction, SetCategoryExtraTimeAction } from '../setcategoryextratime' import { SerializedSetCategoryForUnassignedAppsAction, SetCategoryForUnassignedAppsAction } from '../setcategoryforunassignedapps' @@ -60,6 +62,7 @@ import { SerializedUpdateUserLimitLoginCategory, UpdateUserLimitLoginCategory } export type SerializedParentAction = SerializedAddCategoryAppsAction | + SerializedAddCategoryNetworkIdAction | SerializedAddUserAction | SerializedChangeParentPasswordAction | SerializedCreateCategoryAction | @@ -71,6 +74,7 @@ export type SerializedParentAction = SerializedRemoveCategoryAppsAction | SerializedRemoveUserAction | SerializedRenameChildAction | + SerializeResetCategoryNetworkIdsAction | SerializedResetParentBlockedTimesAction | SerializedSetCategoryForUnassignedAppsAction | SerializedSetChildPasswordAction | @@ -104,6 +108,8 @@ export type SerializedParentAction = export const parseParentAction = (action: SerializedParentAction): ParentAction => { if (action.type === 'ADD_CATEGORY_APPS') { return AddCategoryAppsAction.parse(action) + } else if (action.type === 'ADD_CATEGORY_NETWORK_ID') { + return AddCategoryNetworkIdAction.parse(action) } else if (action.type === 'ADD_USER') { return AddUserAction.parse(action) } else if (action.type === 'CHANGE_PARENT_PASSWORD') { @@ -126,6 +132,8 @@ export const parseParentAction = (action: SerializedParentAction): ParentAction return RemoveUserAction.parse(action) } else if (action.type === 'RENAME_CHILD') { return RenameChildAction.parse(action) + } else if (action.type === 'RESET_CATEGORY_NETWORK_IDS') { + return ResetCategoryNetworkIdsAction.parse(action) } else if (action.type === 'RESET_PARENT_BLOCKED_TIMES') { return ResetParentBlockedTimesAction.parse(action) } else if (action.type === 'SET_CATEGORY_EXTRA_TIME') { diff --git a/src/api/validator.ts b/src/api/validator.ts index dd1a2d2..eef14b0 100644 --- a/src/api/validator.ts +++ b/src/api/validator.ts @@ -119,6 +119,33 @@ const definitions = { "type" ] }, + "SerializedAddCategoryNetworkIdAction": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "ADD_CATEGORY_NETWORK_ID" + ] + }, + "categoryId": { + "type": "string" + }, + "itemId": { + "type": "string" + }, + "hashedNetworkId": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "categoryId", + "hashedNetworkId", + "itemId", + "type" + ] + }, "SerializedAddUserAction": { "type": "object", "properties": { @@ -468,6 +495,25 @@ const definitions = { "type" ] }, + "SerializeResetCategoryNetworkIdsAction": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "RESET_CATEGORY_NETWORK_IDS" + ] + }, + "categoryId": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "categoryId", + "type" + ] + }, "SerializedResetParentBlockedTimesAction": { "type": "object", "properties": { @@ -1835,6 +1881,12 @@ const definitions = { }, "sort": { "type": "number" + }, + "networks": { + "type": "array", + "items": { + "$ref": "#/definitions/ServerCategoryNetworkId" + } } }, "additionalProperties": false, @@ -1847,6 +1899,7 @@ const definitions = { "extraTimeDay", "mblCharging", "mblMobile", + "networks", "parentCategoryId", "sort", "tempBlockTime", @@ -1856,6 +1909,22 @@ const definitions = { "version" ] }, + "ServerCategoryNetworkId": { + "type": "object", + "properties": { + "itemId": { + "type": "string" + }, + "hashedNetworkId": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "hashedNetworkId", + "itemId" + ] + }, "ServerUpdatedCategoryAssignedApps": { "type": "object", "properties": { @@ -2327,6 +2396,9 @@ export const isSerializedParentAction: (value: object) => value is SerializedPar { "$ref": "#/definitions/SerializedAddCategoryAppsAction" }, + { + "$ref": "#/definitions/SerializedAddCategoryNetworkIdAction" + }, { "$ref": "#/definitions/SerializedAddUserAction" }, @@ -2360,6 +2432,9 @@ export const isSerializedParentAction: (value: object) => value is SerializedPar { "$ref": "#/definitions/SerializedRenameChildAction" }, + { + "$ref": "#/definitions/SerializeResetCategoryNetworkIdsAction" + }, { "$ref": "#/definitions/SerializedResetParentBlockedTimesAction" }, diff --git a/src/database/categorynetworkid.ts b/src/database/categorynetworkid.ts new file mode 100644 index 0000000..37c21c6 --- /dev/null +++ b/src/database/categorynetworkid.ts @@ -0,0 +1,60 @@ +/* + * 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 { familyIdColumn, idWithinFamilyColumn } from './columns' +import { SequelizeAttributes } from './types' + +export interface CategoryNetworkIdAttributes { + familyId: string + categoryId: string + networkItemId: string + hashedNetworkId: string +} + +export type CategoryNetworkIdModel = Sequelize.Model & CategoryNetworkIdAttributes +export type CategoryNetworkIdModelStatic = typeof Sequelize.Model & { + new (values?: object, options?: Sequelize.BuildOptions): CategoryNetworkIdModel; +} + +export const anonymizedNetworkIdLength = 8 +export const maxNetworkIdsPerCategory = 8 + +export const attributes: SequelizeAttributes = { + familyId: { + ...familyIdColumn, + primaryKey: true + }, + categoryId: { + ...idWithinFamilyColumn, + primaryKey: true + }, + networkItemId: { + ...idWithinFamilyColumn, + primaryKey: true + }, + hashedNetworkId: { + type: Sequelize.STRING(anonymizedNetworkIdLength), + allowNull: false, + validate: { + notEmpty: true, + is: /^([0-9a-f]{8})?$/ + } + } +} + +export const createCategoryNetworkIdModel = (sequelize: Sequelize.Sequelize): CategoryNetworkIdModelStatic => sequelize.define('CategoryNetworkId', attributes) as CategoryNetworkIdModelStatic diff --git a/src/database/index.ts b/src/database/index.ts index 4d9957a..9aaaec0 100644 --- a/src/database/index.ts +++ b/src/database/index.ts @@ -22,6 +22,7 @@ import { AppActivityModelStatic, createAppActivityModel } from './appactivity' import { AuthTokenModelStatic, createAuthtokenModel } from './authtoken' import { CategoryModelStatic, createCategoryModel } from './category' import { CategoryAppModelStatic, createCategoryAppModel } from './categoryapp' +import { CategoryNetworkIdModelStatic, createCategoryNetworkIdModel } from './categorynetworkid' import { ConfigModelStatic, createConfigModel } from './config' import { createDeviceModel, DeviceModelStatic } from './device' import { createFamilyModel, FamilyModelStatic } from './family' @@ -42,6 +43,7 @@ export interface Database { appActivity: AppActivityModelStatic category: CategoryModelStatic categoryApp: CategoryAppModelStatic + categoryNetworkId: CategoryNetworkIdModelStatic config: ConfigModelStatic device: DeviceModelStatic family: FamilyModelStatic @@ -63,6 +65,7 @@ const createDatabase = (sequelize: Sequelize.Sequelize): Database => ({ appActivity: createAppActivityModel(sequelize), category: createCategoryModel(sequelize), categoryApp: createCategoryAppModel(sequelize), + categoryNetworkId: createCategoryNetworkIdModel(sequelize), config: createConfigModel(sequelize), device: createDeviceModel(sequelize), family: createFamilyModel(sequelize), diff --git a/src/database/migration/migrations/20200824-create-category-network-id-table.ts b/src/database/migration/migrations/20200824-create-category-network-id-table.ts new file mode 100644 index 0000000..720adee --- /dev/null +++ b/src/database/migration/migrations/20200824-create-category-network-id-table.ts @@ -0,0 +1,41 @@ +/* + * 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' + +export async function up (_: QueryInterface, sequelize: Sequelize) { + await sequelize.transaction({ + type: Transaction.TYPES.EXCLUSIVE + }, async (transaction) => { + await sequelize.query( + 'CREATE TABLE `CategoryNetworkIds` ' + + '(`familyId` VARCHAR(10) NOT NULL, `categoryId` VARCHAR(6) NOT NULL,' + + '`networkItemId` VARCHAR(6) NOT NULL, `hashedNetworkId` VARCHAR(8) NOT NULL,' + + 'PRIMARY KEY(`familyId`, `categoryId`, `networkItemId`), FOREIGN KEY(`familyId`, `categoryId`)' + + 'REFERENCES `Categories`(`familyId`, `categoryId`) ON UPDATE CASCADE ON DELETE CASCADE )', + { transaction } + ) + }) +} + +export async function down (queryInterface: QueryInterface, sequelize: Sequelize) { + await sequelize.transaction({ + type: Transaction.TYPES.EXCLUSIVE + }, async (transaction) => { + await queryInterface.dropTable('CategoryNetworkIds', { transaction }) + }) +} diff --git a/src/function/sync/apply-actions/dispatch-parent-action/addcategorynetworkid.ts b/src/function/sync/apply-actions/dispatch-parent-action/addcategorynetworkid.ts new file mode 100644 index 0000000..f68af53 --- /dev/null +++ b/src/function/sync/apply-actions/dispatch-parent-action/addcategorynetworkid.ts @@ -0,0 +1,73 @@ +/* + * 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 { AddCategoryNetworkIdAction } from '../../../../action' +import { maxNetworkIdsPerCategory } from '../../../../database/categorynetworkid' +import { Cache } from '../cache' + +export async function dispatchAddCategoryNetworkId ({ action, cache }: { + action: AddCategoryNetworkIdAction + cache: Cache +}) { + const categoryEntryUnsafe = await cache.database.category.findOne({ + where: { + familyId: cache.familyId, + categoryId: action.categoryId + }, + transaction: cache.transaction, + attributes: ['childId'] + }) + + if (!categoryEntryUnsafe) { + throw new Error('invalid category id for new rule') + } + + const count = await cache.database.categoryNetworkId.count({ + where: { + familyId: cache.familyId, + categoryId: action.categoryId + }, + transaction: cache.transaction + }) + + if (count + 1 > maxNetworkIdsPerCategory) { + throw new Error('category network limit reached') + } + + const hasOldItem = (await cache.database.categoryNetworkId.count({ + where: { + familyId: cache.familyId, + categoryId: action.categoryId, + networkItemId: action.itemId + }, + transaction: cache.transaction + })) !== 0 + + if (hasOldItem) { + throw new Error('id already used') + } + + await cache.database.categoryNetworkId.create({ + familyId: cache.familyId, + categoryId: action.categoryId, + networkItemId: action.itemId, + hashedNetworkId: action.hashedNetworkId + }, { transaction: cache.transaction }) + + cache.categoriesWithModifiedBaseData.push(action.categoryId) + cache.areChangesImportant = true +} diff --git a/src/function/sync/apply-actions/dispatch-parent-action/index.ts b/src/function/sync/apply-actions/dispatch-parent-action/index.ts index 886e33e..1e1f0fc 100644 --- a/src/function/sync/apply-actions/dispatch-parent-action/index.ts +++ b/src/function/sync/apply-actions/dispatch-parent-action/index.ts @@ -17,6 +17,7 @@ import { AddCategoryAppsAction, + AddCategoryNetworkIdAction, AddUserAction, ChangeParentPasswordAction, CreateCategoryAction, @@ -29,6 +30,7 @@ import { RemoveCategoryAppsAction, RemoveUserAction, RenameChildAction, + ResetCategoryNetworkIdsAction, ResetParentBlockedTimesAction, SetCategoryExtraTimeAction, SetCategoryForUnassignedAppsAction, @@ -61,6 +63,7 @@ import { } from '../../../../action' import { Cache } from '../cache' import { dispatchAddCategoryApps } from './addcategoryapps' +import { dispatchAddCategoryNetworkId } from './addcategorynetworkid' import { dispatchAddUser } from './adduser' import { dispatchChangeParentPassword } from './changeparentpassword' import { dispatchCreateCategory } from './createcategory' @@ -72,6 +75,7 @@ import { dispatchIncrementCategoryExtraTime } from './incrementcategoryextratime import { dispatchRemoveCategoryApps } from './removecategoryapps' import { dispatchRemoveUser } from './removeuser' import { dispatchRenameChild } from './renamechild' +import { dispatchResetCategoryNetworkIds } from './resetcategorynetworkids' import { dispatchResetParentBlockedTimes } from './resetparentblockedtimes' import { dispatchSetCategoryExtraTime } from './setcategoryextratime' import { dispatchSetCategoryForUnassignedApps } from './setcategoryforunassignedapps' @@ -124,7 +128,9 @@ export const dispatchParentAction = async ({ action, cache, parentUserId, source } if (fromChildSelfLimitAddChildUserId === null) { - if (action instanceof AddUserAction) { + if (action instanceof AddCategoryNetworkIdAction) { + return dispatchAddCategoryNetworkId({ action, cache }) + } else if (action instanceof AddUserAction) { return dispatchAddUser({ action, cache }) } else if (action instanceof RemoveCategoryAppsAction) { return dispatchRemoveCategoryApps({ action, cache }) @@ -178,6 +184,8 @@ export const dispatchParentAction = async ({ action, cache, parentUserId, source return dispatchUpdateTimelimitRule({ action, cache }) } else if (action instanceof RemoveUserAction) { return dispatchRemoveUser({ action, cache, parentUserId }) + } else if (action instanceof ResetCategoryNetworkIdsAction) { + return dispatchResetCategoryNetworkIds({ action, cache }) } else if (action instanceof RenameChildAction) { return dispatchRenameChild({ action, cache }) } else if (action instanceof ChangeParentPasswordAction) { diff --git a/src/function/sync/apply-actions/dispatch-parent-action/resetcategorynetworkids.ts b/src/function/sync/apply-actions/dispatch-parent-action/resetcategorynetworkids.ts new file mode 100644 index 0000000..879ae92 --- /dev/null +++ b/src/function/sync/apply-actions/dispatch-parent-action/resetcategorynetworkids.ts @@ -0,0 +1,48 @@ +/* + * 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 { ResetCategoryNetworkIdsAction } from '../../../../action' +import { Cache } from '../cache' + +export async function dispatchResetCategoryNetworkIds ({ action, cache }: { + action: ResetCategoryNetworkIdsAction + cache: Cache +}) { + const categoryEntryUnsafe = await cache.database.category.findOne({ + where: { + familyId: cache.familyId, + categoryId: action.categoryId + }, + transaction: cache.transaction, + attributes: ['childId'] + }) + + if (!categoryEntryUnsafe) { + throw new Error('invalid category id for new rule') + } + + await cache.database.categoryNetworkId.destroy({ + where: { + familyId: cache.familyId, + categoryId: action.categoryId + }, + transaction: cache.transaction + }) + + cache.categoriesWithModifiedBaseData.push(action.categoryId) + cache.areChangesImportant = true +} diff --git a/src/function/sync/get-server-data-status.ts b/src/function/sync/get-server-data-status.ts index 4ce6ae8..b2dc26d 100644 --- a/src/function/sync/get-server-data-status.ts +++ b/src/function/sync/get-server-data-status.ts @@ -397,6 +397,25 @@ export const generateServerDataStatus = async ({ database, clientStatus, familyI sort: item.sort })) + const networkIdsForSyncing = (await database.categoryNetworkId.findAll({ + where: { + familyId, + categoryId: { + [Sequelize.Op.in]: categoryIdsToSyncBaseData + } + }, + attributes: [ + 'categoryId', + 'networkItemId', + 'hashedNetworkId' + ], + transaction + })).map((item) => ({ + categoryId: item.categoryId, + networkItemId: item.networkItemId, + hashedNetworkId: item.hashedNetworkId + })) + result.categoryBase = dataForSyncing.map((item): ServerUpdatedCategoryBaseData => ({ categoryId: item.categoryId, childId: item.childId, @@ -412,7 +431,13 @@ export const generateServerDataStatus = async ({ database, clientStatus, familyI mblMobile: item.minBatteryMobile, mblCharging: item.minBatteryCharging, tempBlockTime: item.temporarilyBlockedEndTime, - sort: item.sort + sort: item.sort, + networks: networkIdsForSyncing + .filter((network) => network.categoryId === item.categoryId) + .map((network) => ({ + itemId: network.networkItemId, + hashedNetworkId: network.hashedNetworkId + })) })) } diff --git a/src/object/serverdatastatus.ts b/src/object/serverdatastatus.ts index b782698..07a8b9d 100644 --- a/src/object/serverdatastatus.ts +++ b/src/object/serverdatastatus.ts @@ -112,6 +112,12 @@ export interface ServerUpdatedCategoryBaseData { mblCharging: number mblMobile: number sort: number + networks: Array +} + +export interface ServerCategoryNetworkId { + itemId: string + hashedNetworkId: string } export interface ServerUpdatedCategoryAssignedApps {