diff --git a/libs/electron-updater.mjs b/libs/electron-updater.mjs index 6bf6bb563e38..fd45915a4112 100644 --- a/libs/electron-updater.mjs +++ b/libs/electron-updater.mjs @@ -11584,46 +11584,54 @@ const coerce$1 = (version, options) => { }; var coerce_1 = coerce$1; -class LRUCache { - constructor () { - this.max = 1000; - this.map = new Map(); - } +var lrucache; +var hasRequiredLrucache; + +function requireLrucache () { + if (hasRequiredLrucache) return lrucache; + hasRequiredLrucache = 1; + class LRUCache { + constructor () { + this.max = 1000; + this.map = new Map(); + } - get (key) { - const value = this.map.get(key); - if (value === undefined) { - return undefined - } else { - // Remove the key from the map and add it to the end - this.map.delete(key); - this.map.set(key, value); - return value - } - } + get (key) { + const value = this.map.get(key); + if (value === undefined) { + return undefined + } else { + // Remove the key from the map and add it to the end + this.map.delete(key); + this.map.set(key, value); + return value + } + } - delete (key) { - return this.map.delete(key) - } + delete (key) { + return this.map.delete(key) + } - set (key, value) { - const deleted = this.delete(key); + set (key, value) { + const deleted = this.delete(key); - if (!deleted && value !== undefined) { - // If cache is full, delete the least recently used item - if (this.map.size >= this.max) { - const firstKey = this.map.keys().next().value; - this.delete(firstKey); - } + if (!deleted && value !== undefined) { + // If cache is full, delete the least recently used item + if (this.map.size >= this.max) { + const firstKey = this.map.keys().next().value; + this.delete(firstKey); + } - this.map.set(key, value); - } + this.map.set(key, value); + } - return this - } -} + return this + } + } -var lrucache = LRUCache; + lrucache = LRUCache; + return lrucache; +} var range; var hasRequiredRange; @@ -11845,7 +11853,7 @@ function requireRange () { range = Range; - const LRU = lrucache; + const LRU = requireLrucache(); const cache = new LRU(); const parseOptions = parseOptions_1; diff --git a/schemas/sys.json b/schemas/sys.json index 0d532d78512e..16e10bad6c24 100644 --- a/schemas/sys.json +++ b/schemas/sys.json @@ -530,6 +530,21 @@ "info": "AddValue PubEncKeyData/senderIdentifierType/2531." } ] + }, + { + "version": 117, + "changes": [ + { + "name": "RemoveAssociation", + "sourceType": "Group", + "info": "RemoveAssociation Group/administratedGroups." + }, + { + "name": "RemoveAssociation", + "sourceType": "GroupInfo", + "info": "RemoveAssociation GroupInfo/localAdmin." + } + ] } ] } diff --git a/src/common/api/entities/sys/ModelInfo.ts b/src/common/api/entities/sys/ModelInfo.ts index 398e9fbd84b5..746a23e29e89 100644 --- a/src/common/api/entities/sys/ModelInfo.ts +++ b/src/common/api/entities/sys/ModelInfo.ts @@ -1,6 +1,6 @@ const modelInfo = { - version: 116, - compatibleSince: 116, + version: 117, + compatibleSince: 117, } export default modelInfo \ No newline at end of file diff --git a/src/common/api/entities/sys/Services.ts b/src/common/api/entities/sys/Services.ts index c3f78e4876ae..fbcefa63b9c1 100644 --- a/src/common/api/entities/sys/Services.ts +++ b/src/common/api/entities/sys/Services.ts @@ -39,7 +39,6 @@ import { GroupKeyRotationInfoGetOutTypeRef } from "./TypeRefs.js" import { GroupKeyRotationPostInTypeRef } from "./TypeRefs.js" import { InvoiceDataGetInTypeRef } from "./TypeRefs.js" import { InvoiceDataGetOutTypeRef } from "./TypeRefs.js" -import { LocalAdminRemovalPostInTypeRef } from "./TypeRefs.js" import { LocationServiceGetReturnTypeRef } from "./TypeRefs.js" import { MailAddressAliasGetInTypeRef } from "./TypeRefs.js" import { MailAddressAliasServiceReturnTypeRef } from "./TypeRefs.js" @@ -299,15 +298,6 @@ export const InvoiceDataService = Object.freeze({ delete: null, } as const) -export const LocalAdminRemovalService = Object.freeze({ - app: "sys", - name: "LocalAdminRemovalService", - get: null, - post: { data: LocalAdminRemovalPostInTypeRef, return: null }, - put: null, - delete: null, -} as const) - export const LocationService = Object.freeze({ app: "sys", name: "LocationService", diff --git a/src/common/api/entities/sys/TypeModels.js b/src/common/api/entities/sys/TypeModels.js index 05ddb2426db5..cea5c65b9199 100644 --- a/src/common/api/entities/sys/TypeModels.js +++ b/src/common/api/entities/sys/TypeModels.js @@ -219,7 +219,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "AdminGroupKeyDistributionElement": { "name": "AdminGroupKeyDistributionElement", @@ -273,7 +273,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "AdminGroupKeyRotationGetOut": { "name": "AdminGroupKeyRotationGetOut", @@ -317,7 +317,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "AdminGroupKeyRotationPostIn": { "name": "AdminGroupKeyRotationPostIn", @@ -381,7 +381,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "AdminGroupKeyRotationPutIn": { "name": "AdminGroupKeyRotationPutIn", @@ -425,121 +425,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" - }, - "AdministratedGroup": { - "name": "AdministratedGroup", - "since": 27, - "type": "LIST_ELEMENT_TYPE", - "id": 1294, - "rootId": "A3N5cwAFDg", - "versioned": false, - "encrypted": false, - "values": { - "_format": { - "final": false, - "name": "_format", - "id": 1298, - "since": 27, - "type": "Number", - "cardinality": "One", - "encrypted": false - }, - "_id": { - "final": true, - "name": "_id", - "id": 1296, - "since": 27, - "type": "GeneratedId", - "cardinality": "One", - "encrypted": false - }, - "_ownerGroup": { - "final": true, - "name": "_ownerGroup", - "id": 1299, - "since": 27, - "type": "GeneratedId", - "cardinality": "ZeroOrOne", - "encrypted": false - }, - "_permissions": { - "final": true, - "name": "_permissions", - "id": 1297, - "since": 27, - "type": "GeneratedId", - "cardinality": "One", - "encrypted": false - }, - "groupType": { - "final": true, - "name": "groupType", - "id": 1300, - "since": 27, - "type": "Number", - "cardinality": "One", - "encrypted": false - } - }, - "associations": { - "groupInfo": { - "final": false, - "name": "groupInfo", - "id": 1301, - "since": 27, - "type": "LIST_ELEMENT_ASSOCIATION_GENERATED", - "cardinality": "One", - "refType": "GroupInfo", - "dependency": null - }, - "localAdminGroup": { - "final": false, - "name": "localAdminGroup", - "id": 1302, - "since": 27, - "type": "ELEMENT_ASSOCIATION", - "cardinality": "One", - "refType": "Group", - "dependency": null - } - }, - "app": "sys", - "version": "116" - }, - "AdministratedGroupsRef": { - "name": "AdministratedGroupsRef", - "since": 27, - "type": "AGGREGATED_TYPE", - "id": 1303, - "rootId": "A3N5cwAFFw", - "versioned": false, - "encrypted": false, - "values": { - "_id": { - "final": true, - "name": "_id", - "id": 1304, - "since": 27, - "type": "CustomId", - "cardinality": "One", - "encrypted": false - } - }, - "associations": { - "items": { - "final": true, - "name": "items", - "id": 1305, - "since": 27, - "type": "LIST_ASSOCIATION", - "cardinality": "One", - "refType": "AdministratedGroup", - "dependency": null - } - }, - "app": "sys", - "version": "116" + "version": "117" }, "AffiliatePartnerKpiMonthSummary": { "name": "AffiliatePartnerKpiMonthSummary", @@ -616,7 +502,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "AffiliatePartnerKpiServiceGetOut": { "name": "AffiliatePartnerKpiServiceGetOut", @@ -677,7 +563,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "AlarmInfo": { "name": "AlarmInfo", @@ -729,7 +615,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "AlarmNotification": { "name": "AlarmNotification", @@ -829,7 +715,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "AlarmServicePost": { "name": "AlarmServicePost", @@ -863,7 +749,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "AppStoreSubscriptionGetIn": { "name": "AppStoreSubscriptionGetIn", @@ -895,7 +781,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "AppStoreSubscriptionGetOut": { "name": "AppStoreSubscriptionGetOut", @@ -927,7 +813,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "ArchiveRef": { "name": "ArchiveRef", @@ -959,7 +845,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "ArchiveType": { "name": "ArchiveType", @@ -1013,7 +899,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "AuditLogEntry": { "name": "AuditLogEntry", @@ -1147,7 +1033,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "AuditLogRef": { "name": "AuditLogRef", @@ -1181,7 +1067,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "AuthenticatedDevice": { "name": "AuthenticatedDevice", @@ -1231,7 +1117,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "Authentication": { "name": "Authentication", @@ -1292,7 +1178,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "AutoLoginDataDelete": { "name": "AutoLoginDataDelete", @@ -1324,7 +1210,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "AutoLoginDataGet": { "name": "AutoLoginDataGet", @@ -1367,7 +1253,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "AutoLoginDataReturn": { "name": "AutoLoginDataReturn", @@ -1399,7 +1285,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "AutoLoginPostReturn": { "name": "AutoLoginPostReturn", @@ -1431,7 +1317,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "Blob": { "name": "Blob", @@ -1481,7 +1367,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "BlobReferenceTokenWrapper": { "name": "BlobReferenceTokenWrapper", @@ -1513,7 +1399,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "Booking": { "name": "Booking", @@ -1637,7 +1523,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "BookingItem": { "name": "BookingItem", @@ -1723,7 +1609,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "BookingsRef": { "name": "BookingsRef", @@ -1757,7 +1643,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "BootstrapFeature": { "name": "BootstrapFeature", @@ -1789,7 +1675,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "Braintree3ds2Request": { "name": "Braintree3ds2Request", @@ -1839,7 +1725,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "Braintree3ds2Response": { "name": "Braintree3ds2Response", @@ -1880,7 +1766,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "BrandingDomainData": { "name": "BrandingDomainData", @@ -1957,7 +1843,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "BrandingDomainDeleteData": { "name": "BrandingDomainDeleteData", @@ -1989,7 +1875,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "BrandingDomainGetReturn": { "name": "BrandingDomainGetReturn", @@ -2023,7 +1909,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "Bucket": { "name": "Bucket", @@ -2057,7 +1943,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "BucketKey": { "name": "BucketKey", @@ -2146,7 +2032,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "BucketPermission": { "name": "BucketPermission", @@ -2288,7 +2174,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "CalendarEventRef": { "name": "CalendarEventRef", @@ -2329,7 +2215,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "CertificateInfo": { "name": "CertificateInfo", @@ -2390,7 +2276,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "Challenge": { "name": "Challenge", @@ -2443,7 +2329,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "ChangeKdfPostIn": { "name": "ChangeKdfPostIn", @@ -2520,7 +2406,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "ChangePasswordPostIn": { "name": "ChangePasswordPostIn", @@ -2615,7 +2501,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "Chat": { "name": "Chat", @@ -2665,7 +2551,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "CloseSessionServicePost": { "name": "CloseSessionServicePost", @@ -2708,7 +2594,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "CreateCustomerServerPropertiesData": { "name": "CreateCustomerServerPropertiesData", @@ -2749,7 +2635,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "CreateCustomerServerPropertiesReturn": { "name": "CreateCustomerServerPropertiesReturn", @@ -2783,7 +2669,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "CreateSessionData": { "name": "CreateSessionData", @@ -2871,7 +2757,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "CreateSessionReturn": { "name": "CreateSessionReturn", @@ -2924,7 +2810,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "CreditCard": { "name": "CreditCard", @@ -2992,7 +2878,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "CustomDomainCheckGetIn": { "name": "CustomDomainCheckGetIn", @@ -3035,7 +2921,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "CustomDomainCheckGetOut": { "name": "CustomDomainCheckGetOut", @@ -3098,7 +2984,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "CustomDomainData": { "name": "CustomDomainData", @@ -3141,7 +3027,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "CustomDomainReturn": { "name": "CustomDomainReturn", @@ -3184,7 +3070,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "Customer": { "name": "Customer", @@ -3441,7 +3327,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "CustomerAccountTerminationPostIn": { "name": "CustomerAccountTerminationPostIn", @@ -3484,7 +3370,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "CustomerAccountTerminationPostOut": { "name": "CustomerAccountTerminationPostOut", @@ -3518,7 +3404,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "CustomerAccountTerminationRequest": { "name": "CustomerAccountTerminationRequest", @@ -3597,7 +3483,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "CustomerInfo": { "name": "CustomerInfo", @@ -3910,7 +3796,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "CustomerProperties": { "name": "CustomerProperties", @@ -4018,7 +3904,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "CustomerServerProperties": { "name": "CustomerServerProperties", @@ -4134,7 +4020,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "DateWrapper": { "name": "DateWrapper", @@ -4166,7 +4052,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "DebitServicePutData": { "name": "DebitServicePutData", @@ -4200,7 +4086,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "DeleteCustomerData": { "name": "DeleteCustomerData", @@ -4280,7 +4166,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "DnsRecord": { "name": "DnsRecord", @@ -4330,7 +4216,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "DomainInfo": { "name": "DomainInfo", @@ -4392,7 +4278,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "DomainMailAddressAvailabilityData": { "name": "DomainMailAddressAvailabilityData", @@ -4424,7 +4310,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "DomainMailAddressAvailabilityReturn": { "name": "DomainMailAddressAvailabilityReturn", @@ -4456,7 +4342,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "EmailSenderListElement": { "name": "EmailSenderListElement", @@ -4515,7 +4401,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "EncryptedKeyHash": { "name": "EncryptedKeyHash", @@ -4576,7 +4462,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "EntityEventBatch": { "name": "EntityEventBatch", @@ -4637,7 +4523,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "EntityUpdate": { "name": "EntityUpdate", @@ -4705,7 +4591,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "Exception": { "name": "Exception", @@ -4746,7 +4632,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "ExternalPropertiesReturn": { "name": "ExternalPropertiesReturn", @@ -4808,7 +4694,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "ExternalUserReference": { "name": "ExternalUserReference", @@ -4879,7 +4765,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "Feature": { "name": "Feature", @@ -4911,7 +4797,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "File": { "name": "File", @@ -4961,7 +4847,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "GeneratedIdWrapper": { "name": "GeneratedIdWrapper", @@ -4993,7 +4879,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "GiftCard": { "name": "GiftCard", @@ -5106,7 +4992,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "GiftCardCreateData": { "name": "GiftCardCreateData", @@ -5174,7 +5060,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "GiftCardCreateReturn": { "name": "GiftCardCreateReturn", @@ -5208,7 +5094,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "GiftCardDeleteData": { "name": "GiftCardDeleteData", @@ -5242,7 +5128,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "GiftCardGetReturn": { "name": "GiftCardGetReturn", @@ -5294,7 +5180,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "GiftCardOption": { "name": "GiftCardOption", @@ -5326,7 +5212,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "GiftCardRedeemData": { "name": "GiftCardRedeemData", @@ -5378,7 +5264,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "GiftCardRedeemGetReturn": { "name": "GiftCardRedeemGetReturn", @@ -5430,7 +5316,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "GiftCardsRef": { "name": "GiftCardsRef", @@ -5464,7 +5350,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "Group": { "name": "Group", @@ -5577,16 +5463,6 @@ export const typeModels = { "refType": "Group", "dependency": null }, - "administratedGroups": { - "final": true, - "name": "administratedGroups", - "id": 1306, - "since": 27, - "type": "AGGREGATION", - "cardinality": "ZeroOrOne", - "refType": "AdministratedGroupsRef", - "dependency": null - }, "archives": { "final": true, "name": "archives", @@ -5689,7 +5565,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "GroupInfo": { "name": "GroupInfo", @@ -5820,16 +5696,6 @@ export const typeModels = { "refType": "Group", "dependency": null }, - "localAdmin": { - "final": true, - "name": "localAdmin", - "id": 1287, - "since": 27, - "type": "ELEMENT_ASSOCIATION", - "cardinality": "ZeroOrOne", - "refType": "Group", - "dependency": null - }, "mailAddressAliases": { "final": true, "name": "mailAddressAliases", @@ -5842,7 +5708,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "GroupKey": { "name": "GroupKey", @@ -5949,7 +5815,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "GroupKeyRotationData": { "name": "GroupKeyRotationData", @@ -6049,7 +5915,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "GroupKeyRotationInfoGetOut": { "name": "GroupKeyRotationInfoGetOut", @@ -6092,7 +5958,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "GroupKeyRotationPostIn": { "name": "GroupKeyRotationPostIn", @@ -6126,7 +5992,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "GroupKeyUpdate": { "name": "GroupKeyUpdate", @@ -6223,7 +6089,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "GroupKeyUpdateData": { "name": "GroupKeyUpdateData", @@ -6284,7 +6150,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "GroupKeyUpdatesRef": { "name": "GroupKeyUpdatesRef", @@ -6318,7 +6184,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "GroupKeysRef": { "name": "GroupKeysRef", @@ -6352,7 +6218,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "GroupMember": { "name": "GroupMember", @@ -6442,7 +6308,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "GroupMembership": { "name": "GroupMembership", @@ -6550,7 +6416,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "GroupMembershipKeyData": { "name": "GroupMembershipKeyData", @@ -6611,7 +6477,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "GroupMembershipUpdateData": { "name": "GroupMembershipUpdateData", @@ -6663,7 +6529,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "GroupRoot": { "name": "GroupRoot", @@ -6744,7 +6610,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "IdTupleWrapper": { "name": "IdTupleWrapper", @@ -6785,7 +6651,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "InstanceSessionKey": { "name": "InstanceSessionKey", @@ -6864,7 +6730,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "Invoice": { "name": "Invoice", @@ -7080,7 +6946,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "InvoiceDataGetIn": { "name": "InvoiceDataGetIn", @@ -7112,7 +6978,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "InvoiceDataGetOut": { "name": "InvoiceDataGetOut", @@ -7254,7 +7120,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "InvoiceDataItem": { "name": "InvoiceDataItem", @@ -7331,7 +7197,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "InvoiceInfo": { "name": "InvoiceInfo", @@ -7510,7 +7376,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "InvoiceItem": { "name": "InvoiceItem", @@ -7596,7 +7462,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "KeyPair": { "name": "KeyPair", @@ -7673,7 +7539,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "KeyRotation": { "name": "KeyRotation", @@ -7792,7 +7658,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "KeyRotationsRef": { "name": "KeyRotationsRef", @@ -7826,102 +7692,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" - }, - "LocalAdminGroupReplacementData": { - "name": "LocalAdminGroupReplacementData", - "since": 113, - "type": "AGGREGATED_TYPE", - "id": 2484, - "rootId": "A3N5cwAJtA", - "versioned": false, - "encrypted": false, - "values": { - "_id": { - "final": true, - "name": "_id", - "id": 2485, - "since": 113, - "type": "CustomId", - "cardinality": "One", - "encrypted": false - }, - "adminGroupEncGKey": { - "final": false, - "name": "adminGroupEncGKey", - "id": 2487, - "since": 113, - "type": "Bytes", - "cardinality": "One", - "encrypted": false - }, - "adminGroupKeyVersion": { - "final": false, - "name": "adminGroupKeyVersion", - "id": 2489, - "since": 113, - "type": "Number", - "cardinality": "One", - "encrypted": false - }, - "groupKeyVersion": { - "final": false, - "name": "groupKeyVersion", - "id": 2488, - "since": 113, - "type": "Number", - "cardinality": "One", - "encrypted": false - } - }, - "associations": { - "groupId": { - "final": false, - "name": "groupId", - "id": 2486, - "since": 113, - "type": "ELEMENT_ASSOCIATION", - "cardinality": "One", - "refType": "Group", - "dependency": null - } - }, - "app": "sys", - "version": "116" - }, - "LocalAdminRemovalPostIn": { - "name": "LocalAdminRemovalPostIn", - "since": 113, - "type": "DATA_TRANSFER_TYPE", - "id": 2490, - "rootId": "A3N5cwAJug", - "versioned": false, - "encrypted": false, - "values": { - "_format": { - "final": false, - "name": "_format", - "id": 2491, - "since": 113, - "type": "Number", - "cardinality": "One", - "encrypted": false - } - }, - "associations": { - "groupUpdates": { - "final": false, - "name": "groupUpdates", - "id": 2492, - "since": 113, - "type": "AGGREGATION", - "cardinality": "Any", - "refType": "LocalAdminGroupReplacementData", - "dependency": null - } - }, - "app": "sys", - "version": "116" + "version": "117" }, "LocationServiceGetReturn": { "name": "LocationServiceGetReturn", @@ -7953,7 +7724,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "Login": { "name": "Login", @@ -8012,7 +7783,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "MailAddressAlias": { "name": "MailAddressAlias", @@ -8053,7 +7824,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "MailAddressAliasGetIn": { "name": "MailAddressAliasGetIn", @@ -8087,7 +7858,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "MailAddressAliasServiceData": { "name": "MailAddressAliasServiceData", @@ -8130,7 +7901,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "MailAddressAliasServiceDataDelete": { "name": "MailAddressAliasServiceDataDelete", @@ -8182,7 +7953,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "MailAddressAliasServiceReturn": { "name": "MailAddressAliasServiceReturn", @@ -8241,7 +8012,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "MailAddressAvailability": { "name": "MailAddressAvailability", @@ -8282,7 +8053,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "MailAddressToGroup": { "name": "MailAddressToGroup", @@ -8343,7 +8114,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "MembershipAddData": { "name": "MembershipAddData", @@ -8414,7 +8185,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "MembershipPutIn": { "name": "MembershipPutIn", @@ -8448,7 +8219,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "MembershipRemoveData": { "name": "MembershipRemoveData", @@ -8492,7 +8263,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "MissedNotification": { "name": "MissedNotification", @@ -8608,7 +8379,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "MultipleMailAddressAvailabilityData": { "name": "MultipleMailAddressAvailabilityData", @@ -8642,7 +8413,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "MultipleMailAddressAvailabilityReturn": { "name": "MultipleMailAddressAvailabilityReturn", @@ -8676,7 +8447,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "NotificationInfo": { "name": "NotificationInfo", @@ -8728,7 +8499,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "NotificationMailTemplate": { "name": "NotificationMailTemplate", @@ -8778,7 +8549,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "NotificationSessionKey": { "name": "NotificationSessionKey", @@ -8821,7 +8592,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "OrderProcessingAgreement": { "name": "OrderProcessingAgreement", @@ -8937,7 +8708,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "OtpChallenge": { "name": "OtpChallenge", @@ -8971,7 +8742,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "PaymentDataServiceGetData": { "name": "PaymentDataServiceGetData", @@ -9003,7 +8774,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "PaymentDataServiceGetReturn": { "name": "PaymentDataServiceGetReturn", @@ -9035,7 +8806,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "PaymentDataServicePostData": { "name": "PaymentDataServicePostData", @@ -9069,7 +8840,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "PaymentDataServicePutData": { "name": "PaymentDataServicePutData", @@ -9184,7 +8955,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "PaymentDataServicePutReturn": { "name": "PaymentDataServicePutReturn", @@ -9227,7 +8998,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "PaymentErrorInfo": { "name": "PaymentErrorInfo", @@ -9277,7 +9048,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "Permission": { "name": "Permission", @@ -9429,7 +9200,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "PlanConfiguration": { "name": "PlanConfiguration", @@ -9551,7 +9322,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "PlanPrices": { "name": "PlanPrices", @@ -9693,7 +9464,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "PlanServiceGetOut": { "name": "PlanServiceGetOut", @@ -9727,7 +9498,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "PriceData": { "name": "PriceData", @@ -9788,7 +9559,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "PriceItemData": { "name": "PriceItemData", @@ -9847,7 +9618,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "PriceRequestData": { "name": "PriceRequestData", @@ -9924,7 +9695,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "PriceServiceData": { "name": "PriceServiceData", @@ -9967,7 +9738,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "PriceServiceReturn": { "name": "PriceServiceReturn", @@ -10039,7 +9810,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "PubDistributionKey": { "name": "PubDistributionKey", @@ -10100,7 +9871,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "PubEncKeyData": { "name": "PubEncKeyData", @@ -10195,7 +9966,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "PublicKeyGetIn": { "name": "PublicKeyGetIn", @@ -10245,7 +10016,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "PublicKeyGetOut": { "name": "PublicKeyGetOut", @@ -10304,7 +10075,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "PublicKeyPutIn": { "name": "PublicKeyPutIn", @@ -10356,7 +10127,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "PushIdentifier": { "name": "PushIdentifier", @@ -10514,7 +10285,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "PushIdentifierList": { "name": "PushIdentifierList", @@ -10548,7 +10319,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "ReceivedGroupInvitation": { "name": "ReceivedGroupInvitation", @@ -10709,7 +10480,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "RecoverCode": { "name": "RecoverCode", @@ -10795,7 +10566,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "RecoverCodeData": { "name": "RecoverCodeData", @@ -10854,7 +10625,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "ReferralCodeGetIn": { "name": "ReferralCodeGetIn", @@ -10888,7 +10659,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "ReferralCodePostIn": { "name": "ReferralCodePostIn", @@ -10911,7 +10682,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "ReferralCodePostOut": { "name": "ReferralCodePostOut", @@ -10945,7 +10716,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "RegistrationCaptchaServiceData": { "name": "RegistrationCaptchaServiceData", @@ -10986,7 +10757,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "RegistrationCaptchaServiceGetData": { "name": "RegistrationCaptchaServiceGetData", @@ -11054,7 +10825,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "RegistrationCaptchaServiceReturn": { "name": "RegistrationCaptchaServiceReturn", @@ -11095,7 +10866,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "RegistrationReturn": { "name": "RegistrationReturn", @@ -11127,7 +10898,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "RegistrationServiceData": { "name": "RegistrationServiceData", @@ -11177,7 +10948,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "RejectedSender": { "name": "RejectedSender", @@ -11272,7 +11043,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "RejectedSendersRef": { "name": "RejectedSendersRef", @@ -11306,7 +11077,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "RepeatRule": { "name": "RepeatRule", @@ -11385,7 +11156,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "ResetFactorsDeleteData": { "name": "ResetFactorsDeleteData", @@ -11435,7 +11206,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "ResetPasswordPostIn": { "name": "ResetPasswordPostIn", @@ -11514,7 +11285,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "RootInstance": { "name": "RootInstance", @@ -11573,7 +11344,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "SaltData": { "name": "SaltData", @@ -11605,7 +11376,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "SaltReturn": { "name": "SaltReturn", @@ -11646,7 +11417,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "SecondFactor": { "name": "SecondFactor", @@ -11734,7 +11505,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "SecondFactorAuthAllowedReturn": { "name": "SecondFactorAuthAllowedReturn", @@ -11766,7 +11537,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "SecondFactorAuthData": { "name": "SecondFactorAuthData", @@ -11838,7 +11609,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "SecondFactorAuthDeleteData": { "name": "SecondFactorAuthDeleteData", @@ -11872,7 +11643,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "SecondFactorAuthGetData": { "name": "SecondFactorAuthGetData", @@ -11904,7 +11675,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "SecondFactorAuthGetReturn": { "name": "SecondFactorAuthGetReturn", @@ -11936,7 +11707,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "SecondFactorAuthentication": { "name": "SecondFactorAuthentication", @@ -12022,7 +11793,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "SendRegistrationCodeData": { "name": "SendRegistrationCodeData", @@ -12081,7 +11852,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "SendRegistrationCodeReturn": { "name": "SendRegistrationCodeReturn", @@ -12113,7 +11884,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "SentGroupInvitation": { "name": "SentGroupInvitation", @@ -12202,7 +11973,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "Session": { "name": "Session", @@ -12345,7 +12116,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "SignOrderProcessingAgreementData": { "name": "SignOrderProcessingAgreementData", @@ -12386,7 +12157,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "SseConnectData": { "name": "SseConnectData", @@ -12429,7 +12200,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "StringConfigValue": { "name": "StringConfigValue", @@ -12470,7 +12241,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "StringWrapper": { "name": "StringWrapper", @@ -12502,7 +12273,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "SurveyData": { "name": "SurveyData", @@ -12561,7 +12332,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "SwitchAccountTypePostIn": { "name": "SwitchAccountTypePostIn", @@ -12659,7 +12430,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "SystemKeysReturn": { "name": "SystemKeysReturn", @@ -12775,7 +12546,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "TakeOverDeletedAddressData": { "name": "TakeOverDeletedAddressData", @@ -12834,7 +12605,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "TypeInfo": { "name": "TypeInfo", @@ -12875,7 +12646,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "U2fChallenge": { "name": "U2fChallenge", @@ -12918,7 +12689,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "U2fKey": { "name": "U2fKey", @@ -12970,7 +12741,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "U2fRegisteredDevice": { "name": "U2fRegisteredDevice", @@ -13038,7 +12809,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "U2fResponseData": { "name": "U2fResponseData", @@ -13088,7 +12859,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "UpdatePermissionKeyData": { "name": "UpdatePermissionKeyData", @@ -13150,7 +12921,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "UpdateSessionKeysPostIn": { "name": "UpdateSessionKeysPostIn", @@ -13184,7 +12955,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "UpgradePriceServiceData": { "name": "UpgradePriceServiceData", @@ -13236,7 +13007,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "UpgradePriceServiceReturn": { "name": "UpgradePriceServiceReturn", @@ -13407,7 +13178,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "User": { "name": "User", @@ -13622,7 +13393,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "UserAlarmInfo": { "name": "UserAlarmInfo", @@ -13701,7 +13472,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "UserAlarmInfoListType": { "name": "UserAlarmInfoListType", @@ -13735,7 +13506,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "UserAreaGroups": { "name": "UserAreaGroups", @@ -13769,7 +13540,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "UserAuthentication": { "name": "UserAuthentication", @@ -13823,7 +13594,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "UserDataDelete": { "name": "UserDataDelete", @@ -13875,7 +13646,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "UserExternalAuthInfo": { "name": "UserExternalAuthInfo", @@ -13945,7 +13716,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "UserGroupKeyDistribution": { "name": "UserGroupKeyDistribution", @@ -14013,7 +13784,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "UserGroupKeyRotationData": { "name": "UserGroupKeyRotationData", @@ -14149,7 +13920,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "UserGroupKeyRotationPostIn": { "name": "UserGroupKeyRotationPostIn", @@ -14183,7 +13954,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "UserGroupRoot": { "name": "UserGroupRoot", @@ -14264,7 +14035,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "VariableExternalAuthInfo": { "name": "VariableExternalAuthInfo", @@ -14368,7 +14139,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "VerifyRegistrationCodeData": { "name": "VerifyRegistrationCodeData", @@ -14409,7 +14180,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "Version": { "name": "Version", @@ -14480,7 +14251,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "VersionData": { "name": "VersionData", @@ -14539,7 +14310,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "VersionInfo": { "name": "VersionInfo", @@ -14664,7 +14435,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "VersionReturn": { "name": "VersionReturn", @@ -14698,7 +14469,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "WebauthnResponseData": { "name": "WebauthnResponseData", @@ -14757,7 +14528,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "WebsocketCounterData": { "name": "WebsocketCounterData", @@ -14800,7 +14571,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "WebsocketCounterValue": { "name": "WebsocketCounterValue", @@ -14841,7 +14612,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "WebsocketEntityData": { "name": "WebsocketEntityData", @@ -14893,7 +14664,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "WebsocketLeaderStatus": { "name": "WebsocketLeaderStatus", @@ -14925,7 +14696,7 @@ export const typeModels = { }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "WhitelabelChild": { "name": "WhitelabelChild", @@ -15040,7 +14811,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "WhitelabelChildrenRef": { "name": "WhitelabelChildrenRef", @@ -15074,7 +14845,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "WhitelabelConfig": { "name": "WhitelabelConfig", @@ -15209,7 +14980,7 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" }, "WhitelabelParent": { "name": "WhitelabelParent", @@ -15253,6 +15024,6 @@ export const typeModels = { } }, "app": "sys", - "version": "116" + "version": "117" } } \ No newline at end of file diff --git a/src/common/api/entities/sys/TypeRefs.ts b/src/common/api/entities/sys/TypeRefs.ts index 898dcc7d2a51..1837cc6319ef 100644 --- a/src/common/api/entities/sys/TypeRefs.ts +++ b/src/common/api/entities/sys/TypeRefs.ts @@ -96,37 +96,6 @@ export type AdminGroupKeyRotationPutIn = { adminDistKeyPair: KeyPair; adminEncDistKeyHash: EncryptedKeyHash; } -export const AdministratedGroupTypeRef: TypeRef = new TypeRef("sys", "AdministratedGroup") - -export function createAdministratedGroup(values: StrippedEntity): AdministratedGroup { - return Object.assign(create(typeModels.AdministratedGroup, AdministratedGroupTypeRef), values) -} - -export type AdministratedGroup = { - _type: TypeRef; - - _format: NumberString; - _id: IdTuple; - _ownerGroup: null | Id; - _permissions: Id; - groupType: NumberString; - - groupInfo: IdTuple; - localAdminGroup: Id; -} -export const AdministratedGroupsRefTypeRef: TypeRef = new TypeRef("sys", "AdministratedGroupsRef") - -export function createAdministratedGroupsRef(values: StrippedEntity): AdministratedGroupsRef { - return Object.assign(create(typeModels.AdministratedGroupsRef, AdministratedGroupsRefTypeRef), values) -} - -export type AdministratedGroupsRef = { - _type: TypeRef; - - _id: Id; - - items: Id; -} export const AffiliatePartnerKpiMonthSummaryTypeRef: TypeRef = new TypeRef("sys", "AffiliatePartnerKpiMonthSummary") export function createAffiliatePartnerKpiMonthSummary(values: StrippedEntity): AffiliatePartnerKpiMonthSummary { @@ -1407,7 +1376,6 @@ export type Group = { type: NumberString; admin: null | Id; - administratedGroups: null | AdministratedGroupsRef; archives: ArchiveType[]; currentKeys: null | KeyPair; customer: null | Id; @@ -1443,7 +1411,6 @@ export type GroupInfo = { name: string; group: Id; - localAdmin: null | Id; mailAddressAliases: MailAddressAlias[]; } export const GroupKeyTypeRef: TypeRef = new TypeRef("sys", "GroupKey") @@ -1884,35 +1851,6 @@ export type KeyRotationsRef = { list: Id; } -export const LocalAdminGroupReplacementDataTypeRef: TypeRef = new TypeRef("sys", "LocalAdminGroupReplacementData") - -export function createLocalAdminGroupReplacementData(values: StrippedEntity): LocalAdminGroupReplacementData { - return Object.assign(create(typeModels.LocalAdminGroupReplacementData, LocalAdminGroupReplacementDataTypeRef), values) -} - -export type LocalAdminGroupReplacementData = { - _type: TypeRef; - - _id: Id; - adminGroupEncGKey: Uint8Array; - adminGroupKeyVersion: NumberString; - groupKeyVersion: NumberString; - - groupId: Id; -} -export const LocalAdminRemovalPostInTypeRef: TypeRef = new TypeRef("sys", "LocalAdminRemovalPostIn") - -export function createLocalAdminRemovalPostIn(values: StrippedEntity): LocalAdminRemovalPostIn { - return Object.assign(create(typeModels.LocalAdminRemovalPostIn, LocalAdminRemovalPostInTypeRef), values) -} - -export type LocalAdminRemovalPostIn = { - _type: TypeRef; - - _format: NumberString; - - groupUpdates: LocalAdminGroupReplacementData[]; -} export const LocationServiceGetReturnTypeRef: TypeRef = new TypeRef("sys", "LocationServiceGetReturn") export function createLocationServiceGetReturn(values: StrippedEntity): LocationServiceGetReturn { diff --git a/src/common/api/worker/facades/lazy/GroupManagementFacade.ts b/src/common/api/worker/facades/lazy/GroupManagementFacade.ts index 8f8fbc2331fb..97fd9fac92ea 100644 --- a/src/common/api/worker/facades/lazy/GroupManagementFacade.ts +++ b/src/common/api/worker/facades/lazy/GroupManagementFacade.ts @@ -8,28 +8,14 @@ import { createUserAreaGroupDeleteData, createUserAreaGroupPostData, } from "../../../entities/tutanota/TypeRefs.js" -import { assertNotNull, freshVersioned, getFirstOrThrow, isNotEmpty, neverNull } from "@tutao/tutanota-utils" -import { - AdministratedGroup, - AdministratedGroupTypeRef, - createLocalAdminGroupReplacementData, - createLocalAdminRemovalPostIn, - createMembershipAddData, - createMembershipRemoveData, - CustomerTypeRef, - Group, - GroupInfoTypeRef, - GroupTypeRef, - LocalAdminGroupReplacementData, - User, - UserTypeRef, -} from "../../../entities/sys/TypeRefs.js" +import { assertNotNull, freshVersioned, getFirstOrThrow, neverNull } from "@tutao/tutanota-utils" +import { createMembershipAddData, createMembershipRemoveData, Group, GroupTypeRef, User, UserTypeRef } from "../../../entities/sys/TypeRefs.js" import { CounterFacade } from "./CounterFacade.js" import { EntityClient } from "../../../common/EntityClient.js" import { assertWorkerOrNode } from "../../../common/Env.js" import { IServiceExecutor } from "../../../common/ServiceRequest.js" import { CalendarService, ContactListGroupService, MailGroupService, TemplateGroupService } from "../../../entities/tutanota/Services.js" -import { LocalAdminRemovalService, MembershipService } from "../../../entities/sys/Services.js" +import { MembershipService } from "../../../entities/sys/Services.js" import { UserFacade } from "../UserFacade.js" import { ProgrammingError } from "../../../common/error/ProgrammingError.js" import { PQFacade } from "../PQFacade.js" @@ -38,7 +24,6 @@ import { CacheManagementFacade } from "./CacheManagementFacade.js" import { CryptoWrapper, encryptKeyWithVersionedKey, encryptString, VersionedKey } from "../../crypto/CryptoWrapper.js" import { AsymmetricCryptoFacade } from "../../crypto/AsymmetricCryptoFacade.js" import { AesKey, PQKeyPairs } from "@tutao/tutanota-crypto" -import { isGlobalAdmin } from "../../../common/utils/UserUtils.js" assertWorkerOrNode() @@ -331,81 +316,4 @@ export class GroupManagementFacade { }) return { object: decryptedKey.decryptedAesKey, version: Number(group.groupKeyVersion) } } - - /** - * Context: removal of local admins - * Problem: local admins encrypted the user group key of their users with their admin group key but global admin can't - * decrypt these with their admin group key. - * We want the global admin to still be able to decrypt user data. - * - * This function will decrypt the user group key with the local admin group key and then encrypt it with the global admin group key - * Please note that this function is free of side effects, it only returns a new reference of the newly modified group. - * - * @param globalAdminGroupKey the key of the global admin that will encrypt the user group key - * @param localAdminGroupKey the key of the local admin that was used to encrypt the user group key and will be used to decrypt the user group key - * @param userGroup the user group that needs its adminEncGroupKey to be replaced - */ - async replaceLocalAdminEncGroupKeyWithGlobalAdminEncGroupKey( - globalAdminGroupKey: VersionedKey, - localAdminGroupKey: AesKey, - userGroup: Group, - ): Promise { - const localAdminEncUserGroupKey = assertNotNull(userGroup.adminGroupEncGKey) - const decryptedUserGroupKey = this.cryptoWrapper.decryptKey(localAdminGroupKey, localAdminEncUserGroupKey) - - const globalAdminEncUserGroupKey = this.cryptoWrapper.encryptKey(globalAdminGroupKey.object, decryptedUserGroupKey) - - const groupUpdate = createLocalAdminGroupReplacementData({ - adminGroupKeyVersion: String(globalAdminGroupKey.version), - adminGroupEncGKey: globalAdminEncUserGroupKey, - groupId: userGroup._id, - groupKeyVersion: userGroup.groupKeyVersion, - }) - return groupUpdate - } - - /** - * Since local admins won't be supported anymore and will be removed we need to let the - * global admin access the locally administrated group data. - * As its name suggest this function migrate the users administrated by the local admins - * to the global admin of the customer so that the global admin can have direct - * encryption and decryption of its users group keys. - */ - async migrateLocalAdminsToGlobalAdmins() { - const user = this.userFacade.getLoggedInUser() - if (!isGlobalAdmin(user)) { - return - } - - const customer = await this.entityClient.load(CustomerTypeRef, assertNotNull(user.customer)) - const teamGroupInfos = await this.entityClient.loadAll(GroupInfoTypeRef, customer.teamGroups) - const localAdminGroupInfos = teamGroupInfos.filter((group) => group.groupType === GroupType.LocalAdmin) - const adminGroupId: Id = customer.adminGroup - const adminGroupKey = await this.keyLoaderFacade.getCurrentSymGroupKey(adminGroupId) - const postIn = createLocalAdminRemovalPostIn({ groupUpdates: [] }) - - for (let localAdminGroupInfo of localAdminGroupInfos) { - const localAdminGroup = await this.entityClient.load(GroupTypeRef, localAdminGroupInfo.group) - const administratedGroupsListId = localAdminGroup.administratedGroups?.items - if (administratedGroupsListId == null) return null - const administratedGroups: Array = await this.entityClient.loadAll(AdministratedGroupTypeRef, administratedGroupsListId) - - // we assume local admins never had their key rotation done and so their sym key version (requestedVersion) is stuck to 0 by default - const thisLocalAdminGroupKey = await this.getCurrentGroupKeyViaAdminEncGKey(localAdminGroup._id) - for (let ag of administratedGroups) { - const thisRelatedGroupInfo = await this.entityClient.load(GroupInfoTypeRef, ag.groupInfo) - const thisRelatedGroup = await this.entityClient.load(GroupTypeRef, thisRelatedGroupInfo.group) - - const groupUpdate = await this.replaceLocalAdminEncGroupKeyWithGlobalAdminEncGroupKey( - adminGroupKey, - thisLocalAdminGroupKey.object, - thisRelatedGroup, - ) - postIn.groupUpdates.push(groupUpdate) - } - } - if (isNotEmpty(postIn.groupUpdates)) { - await this.serviceExecutor.post(LocalAdminRemovalService, postIn) - } - } } diff --git a/src/common/api/worker/offline/OfflineStorageMigrator.ts b/src/common/api/worker/offline/OfflineStorageMigrator.ts index b22e25424295..3f3a038db74b 100644 --- a/src/common/api/worker/offline/OfflineStorageMigrator.ts +++ b/src/common/api/worker/offline/OfflineStorageMigrator.ts @@ -36,6 +36,7 @@ import { sys114 } from "./migrations/sys-v114.js" import { offline2 } from "./migrations/offline2.js" import { sys115 } from "./migrations/sys-v115.js" import { sys116 } from "./migrations/sys-v116.js" +import { sys117 } from "./migrations/sys-v117.js" export interface OfflineMigration { readonly app: VersionMetadataBaseKey @@ -84,6 +85,7 @@ export const OFFLINE_STORAGE_MIGRATIONS: ReadonlyArray = [ offline2, sys115, sys116, + sys117, ] const CURRENT_OFFLINE_VERSION = 2 diff --git a/src/common/api/worker/offline/migrations/sys-v117.ts b/src/common/api/worker/offline/migrations/sys-v117.ts new file mode 100644 index 000000000000..648c6716182b --- /dev/null +++ b/src/common/api/worker/offline/migrations/sys-v117.ts @@ -0,0 +1,13 @@ +import { OfflineMigration } from "../OfflineStorageMigrator.js" +import { OfflineStorage } from "../OfflineStorage.js" +import { migrateAllElements, migrateAllListElements, removeValue } from "../StandardMigrations" +import { GroupInfoTypeRef, GroupTypeRef } from "../../../entities/sys/TypeRefs.js" + +export const sys117: OfflineMigration = { + app: "sys", + version: 117, + async migrate(storage: OfflineStorage) { + await migrateAllListElements(GroupInfoTypeRef, storage, [removeValue("localAdmin")]) + await migrateAllElements(GroupTypeRef, storage, [removeValue("administratedGroups")]) + }, +} diff --git a/src/common/misc/TranslationKey.ts b/src/common/misc/TranslationKey.ts index 09773643e5f6..daaebf3ee987 100644 --- a/src/common/misc/TranslationKey.ts +++ b/src/common/misc/TranslationKey.ts @@ -122,7 +122,6 @@ export type TranslationKeyType = | "appStoreSubscriptionError_msg" | "archive_action" | "archive_label" - | "assignAdminRightsToLocallyAdministratedUserError_msg" | "assignLabel_action" | "assistant_label" | "attachFiles_action" @@ -217,7 +216,6 @@ export type TranslationKeyType = | "cancellationReasonUsability_label" | "cancelledBy_label" | "cancelledReferralCreditPosting_label" - | "cancelLocalAdminGroup_label" | "cancelSharedMailbox_label" | "cancelUserAccounts_label" | "cancel_action" @@ -888,10 +886,6 @@ export type TranslationKeyType = | "loadingTemplates_label" | "loading_msg" | "loadMore_action" - | "localAdminGroupAssignedError_msg" - | "localAdminGroups_label" - | "localAdminGroup_label" - | "localAdmin_label" | "localDataSection_label" | "location_label" | "lockdownModeNotSupported1_msg" @@ -1740,8 +1734,6 @@ export type TranslationKeyType = | "unsubscribe_action" | "unsuccessfulDrop_msg" | "until_label" - | "updateAdminshipGlobalAdmin_msg" - | "updateAdminshipLocalAdminGroupError_msg" | "updateAllCalendarEvents_action" | "updateAvailable_label" | "updateFound_label" diff --git a/src/common/settings/UserViewer.ts b/src/common/settings/UserViewer.ts index 935db4e3d444..46560233c1d8 100644 --- a/src/common/settings/UserViewer.ts +++ b/src/common/settings/UserViewer.ts @@ -182,8 +182,6 @@ export class UserViewer implements UpdatableSettingsDetailsViewer { Dialog.message("userAccountDeactivated_msg") } else if (this.isItMe()) { Dialog.message("removeOwnAdminFlagInfo_msg") - } else if (this.userGroupInfo.localAdmin != null) { - Dialog.message("assignAdminRightsToLocallyAdministratedUserError_msg") } else { showProgressDialog( "pleaseWait_msg", @@ -394,7 +392,6 @@ export class UserViewer implements UpdatableSettingsDetailsViewer { ) { this.userGroupInfo = await locator.entityClient.load(GroupInfoTypeRef, this.userGroupInfo._id) await this.updateUsedStorageAndAdminFlag() - this.administratedBy = this.userGroupInfo.localAdmin m.redraw() } else if ( isUpdateForTypeRef(UserTypeRef, update) && diff --git a/src/common/subscription/SubscriptionViewer.ts b/src/common/subscription/SubscriptionViewer.ts index 6a6878cdd677..849309ccfaa1 100644 --- a/src/common/subscription/SubscriptionViewer.ts +++ b/src/common/subscription/SubscriptionViewer.ts @@ -591,19 +591,10 @@ export class SubscriptionViewer implements UpdatableSettingsViewer { } private async updateGroupsField(): Promise { - let localAdminCount = getCurrentCount(BookingItemFeatureType.LocalAdminGroup, this._lastBooking) - const localAdminText = localAdminCount + " " + lang.get(localAdminCount === 1 ? "localAdminGroup_label" : "localAdminGroups_label") - let sharedMailCount = getCurrentCount(BookingItemFeatureType.SharedMailGroup, this._lastBooking) + const sharedMailCount = getCurrentCount(BookingItemFeatureType.SharedMailGroup, this._lastBooking) + // Plural forms and number placement inside the string should be handled by the translation framework, but this is what we got now. const sharedMailText = sharedMailCount + " " + lang.get(sharedMailCount === 1 ? "sharedMailbox_label" : "sharedMailboxes_label") - - if (localAdminCount === 0) { - // also show the shared mailboxes text if no groups exists at all - this._groupsFieldValue(sharedMailText) - } else if (localAdminCount > 0 && sharedMailCount > 0) { - this._groupsFieldValue(sharedMailText + ", " + localAdminText) - } else { - this._groupsFieldValue(localAdminText) - } + this._groupsFieldValue(sharedMailText) } private async updateWhitelabelField(planConfig: PlanConfiguration): Promise { diff --git a/src/common/subscription/SwitchSubscriptionDialogModel.ts b/src/common/subscription/SwitchSubscriptionDialogModel.ts index 327593382e71..4221ac49e56b 100644 --- a/src/common/subscription/SwitchSubscriptionDialogModel.ts +++ b/src/common/subscription/SwitchSubscriptionDialogModel.ts @@ -43,16 +43,14 @@ export class SwitchSubscriptionDialogModel { if (LegacyPlans.includes(this.planType)) { const userItem = this.lastBooking.items.find((item) => item.featureType === BookingItemFeatureType.LegacyUsers) const sharedMailItem = this.lastBooking.items.find((item) => item.featureType === BookingItemFeatureType.SharedMailGroup) - const localAdminItem = this.lastBooking.items.find((item) => item.featureType === BookingItemFeatureType.LocalAdminGroup) // A user that has PlanType.Premium will always have LegacyUsers booked. const userCount = Number(userItem?.currentCount) // These may be booked but not always. const sharedMailCount = sharedMailItem ? Number(sharedMailItem.currentCount) : 0 - const localAdminCount = localAdminItem ? Number(localAdminItem.currentCount) : 0 - return userCount + sharedMailCount + localAdminCount > 1 + return userCount + sharedMailCount > 1 } return false diff --git a/src/mail-app/app.ts b/src/mail-app/app.ts index 3f25ef94b04d..d86683ccee80 100644 --- a/src/mail-app/app.ts +++ b/src/mail-app/app.ts @@ -138,8 +138,6 @@ import("./translations/en.js") await mailLocator.mailModel.init() }, async onFullLoginSuccess() { - await mailLocator.groupManagementFacade.migrateLocalAdminsToGlobalAdmins() - // We might have outdated Customer features, force reload the customer to make sure the customizations are up-to-date if (isOfflineStorageAvailable()) { await mailLocator.logins.loadCustomizations(CacheMode.Bypass) diff --git a/src/mail-app/translations/de.ts b/src/mail-app/translations/de.ts index 38c7f66c6377..cde6e5038f04 100644 --- a/src/mail-app/translations/de.ts +++ b/src/mail-app/translations/de.ts @@ -143,7 +143,6 @@ export default { "appStoreSubscriptionError_msg": "Leider ist die Zahlungstransaktion fehlgeschlagen. Bitte versuche es später erneut oder kontaktiere den Support.", "archive_action": "Archivieren", "archive_label": "Archiv", - "assignAdminRightsToLocallyAdministratedUserError_msg": "Du kannst lokal administrierte Benutzer nicht zum globalen Admin machen.", "assignLabel_action": "Labels zuweisen", "assistant_label": "Assistent*in", "attachFiles_action": "Dateien anhängen", @@ -238,7 +237,6 @@ export default { "cancellationReasonUsability_label": "Tuta ist zu schwer zu benutzen", "cancelledBy_label": "(storniert zum {endOfSubscriptionPeriod})", "cancelledReferralCreditPosting_label": "Stornierte Empfehlungsgutschrift", - "cancelLocalAdminGroup_label": "Abbestellung von lokaler Admin-Gruppe", "cancelSharedMailbox_label": "Abbestellung von geteilter Mailbox", "cancelUserAccounts_label": "Abbestellung von {1} Benutzer", "cancel_action": "Abbrechen", @@ -688,7 +686,7 @@ export default { "giftCardUpgradeNotifyDebit_msg": "Ein Teil des Preises des ersten Jahres ({price}) wird von dem Guthaben des Gutscheins beglichen. Bitte bezahle den Restbetrag ({amount}) unter 'Einstellungen' ⇨ 'Bezahlung'.", "giftCardUpgradeNotifyRevolutionary_msg": "Dein Account wird automatisch auf einen Revolutionary-Account mit einem jährlichen Abo umgestellt.", "giftCard_label": "Gutschein", - "globalAdmin_label": "Globaler Admin", + "globalAdmin_label": "Admin", "globalSettings_label": "Globale Einstellungen", "goPremium_msg": "Als zahlende*r Nutzer*in kannst du links im Menü deine Suchfilter anpassen.", "grantContactPermissionAction": "Erlaubnis zum Zugriff auf Kontakte erteilen", @@ -909,10 +907,6 @@ export default { "loadingTemplates_label": "Vorlagen werden geladen...", "loading_msg": "Lade ...", "loadMore_action": "Mehr laden", - "localAdminGroupAssignedError_msg": "Benutzer oder Gruppen sind dieser lokalen Admin-Gruppe noch zugeordnet. Sie kann nicht deaktiviert werden.", - "localAdminGroups_label": "Lokale Admin-Gruppen", - "localAdminGroup_label": "Lokale Admin-Gruppe", - "localAdmin_label": "Lokaler Admin", "localDataSection_label": "Lokale Daten", "location_label": "Ort", "lockdownModeNotSupported1_msg": "Der Blockierungsmodus ist auf deinem Gerät aktiviert. Dies verhindert, dass zukünftige Versionen von Tuta ausgeführt werden können.", @@ -1761,8 +1755,6 @@ export default { "unsubscribe_action": "Abbestellen", "unsuccessfulDrop_msg": "Das Drag & Drop war nicht erfolgreich, weil die Daten noch nicht heruntergeladen worden sind. Bitte versuche es erneut, wenn der Fortschrittsbalken vollständig ist.", "until_label": "bis", - "updateAdminshipGlobalAdmin_msg": "Du kannst nicht den Admin eines globalen Admins ändern.", - "updateAdminshipLocalAdminGroupError_msg": "Du kannst den Admin einer lokalen Admin-Gruppe nicht ändern.", "updateAllCalendarEvents_action": "Alle Termine aktualisieren", "updateAvailable_label": "Neue Version für Tuta Desktop verfügbar ({version})", "updateFound_label": "Es ist eine neue Version verfügbar.", diff --git a/src/mail-app/translations/de_sie.ts b/src/mail-app/translations/de_sie.ts index 5284e9937083..8d6a98f56115 100644 --- a/src/mail-app/translations/de_sie.ts +++ b/src/mail-app/translations/de_sie.ts @@ -143,7 +143,6 @@ export default { "appStoreSubscriptionError_msg": "Leider ist die Zahlungstransaktion fehlgeschlagen. Bitte versuchen Sie es später erneut oder kontaktieren Sie den Support.", "archive_action": "Archivieren", "archive_label": "Archiv", - "assignAdminRightsToLocallyAdministratedUserError_msg": "Sie können lokal administrierte Benutzer nicht zum globalen Admin machen.", "assignLabel_action": "Labels zuweisen", "assistant_label": "Assistent*in", "attachFiles_action": "Dateien anhängen", @@ -238,7 +237,6 @@ export default { "cancellationReasonUsability_label": "Tuta ist zu schwer zu benutzen", "cancelledBy_label": "(storniert zum {endOfSubscriptionPeriod})", "cancelledReferralCreditPosting_label": "Stornierte Empfehlungsgutschrift", - "cancelLocalAdminGroup_label": "Abbestellung von lokaler Admin-Gruppe", "cancelSharedMailbox_label": "Abbestellung von geteilter Mailbox", "cancelUserAccounts_label": "Abbestellung von {1} Benutzer", "cancel_action": "Abbrechen", @@ -688,7 +686,7 @@ export default { "giftCardUpgradeNotifyDebit_msg": "Ein Teil des Preises des ersten Jahres ({price}) wird von dem Guthaben des Gutscheins beglichen. Bitte bezahlen Sie den Restbetrag ({amount}) unter 'Einstellungen' ⇨ 'Bezahlung'.", "giftCardUpgradeNotifyRevolutionary_msg": "Ihr Account wird automatisch auf einen Revolutionary-Account mit einem jährlichen Abonnement umgestellt.", "giftCard_label": "Gutschein", - "globalAdmin_label": "Globaler Admin", + "globalAdmin_label": "Admin", "globalSettings_label": "Globale Einstellungen", "goPremium_msg": "Als zahlende*r Nutzer*in können Sie links im Menü Ihre Suchfilter anpassen.", "grantContactPermissionAction": "Erlaubnis zum Zugriff auf Kontakte erteilen", @@ -909,10 +907,6 @@ export default { "loadingTemplates_label": "Vorlagen werden geladen...", "loading_msg": "Lade ...", "loadMore_action": "Mehr laden", - "localAdminGroupAssignedError_msg": "Benutzer oder Gruppen sind dieser lokalen Admin-Gruppe noch zugeordnet. Sie kann nicht deaktiviert werden.", - "localAdminGroups_label": "Lokale Admin-Gruppen", - "localAdminGroup_label": "Lokale Admin-Gruppe", - "localAdmin_label": "Lokaler Admin", "localDataSection_label": "Lokale Daten", "location_label": "Ort", "lockdownModeNotSupported1_msg": "Der Blockierungsmodus ist auf Ihrem Gerät aktiviert. Dies verhindert, dass zukünftige Versionen von Tuta ausgeführt werden können.", @@ -1761,8 +1755,6 @@ export default { "unsubscribe_action": "Abbestellen", "unsuccessfulDrop_msg": "Das Drag & Drop war nicht erfolgreich, weil die Daten noch nicht heruntergeladen worden sind. Bitte versuchen Sie es erneut, wenn der Fortschrittsbalken vollständig ist.", "until_label": "bis", - "updateAdminshipGlobalAdmin_msg": "Sie können nicht den Admin eines globalen Admins ändern.", - "updateAdminshipLocalAdminGroupError_msg": "Sie können den Admin einer lokalen Admin-Gruppe nicht ändern.", "updateAllCalendarEvents_action": "Alle Termine aktualisieren", "updateAvailable_label": "Neue Version für Tuta Desktop verfügbar ({version})", "updateFound_label": "Es ist eine neue Version verfügbar.", diff --git a/src/mail-app/translations/en.ts b/src/mail-app/translations/en.ts index effea5530734..2ec85bbb5752 100644 --- a/src/mail-app/translations/en.ts +++ b/src/mail-app/translations/en.ts @@ -139,7 +139,6 @@ export default { "appStoreSubscriptionError_msg": "Sorry, the payment transaction failed. Please try again later or contact support.", "archive_action": "Archive", "archive_label": "Archive", - "assignAdminRightsToLocallyAdministratedUserError_msg": "You can't assign global admin rights to a locally administrated user.", "assignLabel_action": "Assign labels", "assistant_label": "Assistant", "attachFiles_action": "Attach files", @@ -234,7 +233,6 @@ export default { "cancellationReasonUsability_label": "Tuta is too hard to use", "cancelledBy_label": "(cancelled by {endOfSubscriptionPeriod})", "cancelledReferralCreditPosting_label": "Cancelled referral credit", - "cancelLocalAdminGroup_label": "Cancel local admin group", "cancelSharedMailbox_label": "Cancel shared mailbox", "cancelUserAccounts_label": "Cancel {1} user(s)", "cancel_action": "Cancel", @@ -684,7 +682,7 @@ export default { "giftCardUpgradeNotifyDebit_msg": "The cost of the first year ({price}) will be partially paid for with your gift card. Please go to 'Settings' ⇨ 'Payment' to pay the remaining value ({amount}).", "giftCardUpgradeNotifyRevolutionary_msg": "You will be automatically upgraded to a Revolutionary account with a yearly subscription.", "giftCard_label": "Gift card", - "globalAdmin_label": "Global admin", + "globalAdmin_label": "Admin", "globalSettings_label": "Global settings", "goPremium_msg": "As a paid user you can adjust your search filters in the menu to the left.", "grantContactPermissionAction": "Grant permission to access contacts", @@ -905,10 +903,6 @@ export default { "loadingTemplates_label": "Loading templates...", "loading_msg": "Loading ...", "loadMore_action": "Load more", - "localAdminGroupAssignedError_msg": "Users or groups are still assigned to this local admin group. It can't be deactivated.", - "localAdminGroups_label": "Local admin groups", - "localAdminGroup_label": "Local admin group", - "localAdmin_label": "Local admin", "localDataSection_label": "Local data", "location_label": "Location", "lockdownModeNotSupported1_msg": "Your device has Lockdown Mode enabled which will prevent future versions of Tuta from running.", @@ -1757,8 +1751,6 @@ export default { "unsubscribe_action": "Unsubscribe", "unsuccessfulDrop_msg": "The drag & drop was unsuccessful because the data had not finished downloading. You may try again once the progress bar is finished.", "until_label": "until", - "updateAdminshipGlobalAdmin_msg": "You can't change the adminship of a global administrator.", - "updateAdminshipLocalAdminGroupError_msg": "You can't change the adminship of a local admin group.", "updateAllCalendarEvents_action": "Update all events", "updateAvailable_label": "Update for Tuta Desktop available ({version})", "updateFound_label": "New version is available.", diff --git a/test/tests/api/worker/crypto/CryptoFacadeTest.ts b/test/tests/api/worker/crypto/CryptoFacadeTest.ts index cc778e43d932..e6c1990fb881 100644 --- a/test/tests/api/worker/crypto/CryptoFacadeTest.ts +++ b/test/tests/api/worker/crypto/CryptoFacadeTest.ts @@ -657,7 +657,6 @@ o.spec("CryptoFacadeTest", function () { admin: "admin1", adminGroupEncGKey: null, adminGroupKeyVersion: null, - administratedGroups: null, archives: [], customer: "customer1", enabled: false, @@ -785,7 +784,6 @@ o.spec("CryptoFacadeTest", function () { admin: null, adminGroupEncGKey: null, adminGroupKeyVersion: null, - administratedGroups: null, archives: [], customer: null, enabled: false, diff --git a/test/tests/api/worker/facades/GroupManagementFacadeTest.ts b/test/tests/api/worker/facades/GroupManagementFacadeTest.ts index b25551aff7ef..47a734025802 100644 --- a/test/tests/api/worker/facades/GroupManagementFacadeTest.ts +++ b/test/tests/api/worker/facades/GroupManagementFacadeTest.ts @@ -11,24 +11,11 @@ import { AsymmetricCryptoFacade } from "../../../../../src/common/api/worker/cry import { matchers, object, verify, when } from "testdouble" import { AesKey, EccPublicKey, PQKeyPairs } from "@tutao/tutanota-crypto" import { createTestEntity } from "../../../TestUtils.js" -import { - AdministratedGroupsRefTypeRef, - AdministratedGroupTypeRef, - CustomerTypeRef, - Group, - GroupInfo, - GroupInfoTypeRef, - GroupMembershipTypeRef, - GroupTypeRef, - LocalAdminRemovalPostIn, - PubEncKeyDataTypeRef, - UserTypeRef, -} from "../../../../../src/common/api/entities/sys/TypeRefs.js" -import { CryptoWrapper, VersionedKey } from "../../../../../src/common/api/worker/crypto/CryptoWrapper.js" +import { Group, GroupTypeRef, PubEncKeyDataTypeRef } from "../../../../../src/common/api/entities/sys/TypeRefs.js" +import { CryptoWrapper } from "../../../../../src/common/api/worker/crypto/CryptoWrapper.js" import { assertThrows } from "@tutao/tutanota-test-utils" import { ProgrammingError } from "../../../../../src/common/api/common/error/ProgrammingError.js" -import { CryptoProtocolVersion, GroupType, PublicKeyIdentifierType } from "../../../../../src/common/api/common/TutanotaConstants.js" -import { LocalAdminRemovalService } from "../../../../../src/common/api/entities/sys/Services.js" +import { CryptoProtocolVersion, PublicKeyIdentifierType } from "../../../../../src/common/api/common/TutanotaConstants.js" o.spec("GroupManagementFacadeTest", function () { let userFacade: UserFacade @@ -177,170 +164,4 @@ o.spec("GroupManagementFacadeTest", function () { await assertThrows(Error, async () => await groupManagementFacade.getCurrentGroupKeyViaAdminEncGKey(groupId)) }) }) - - o("replace local admin enc group key with global admin enc group key", async function () { - const symGlobalAdminGroupKey: VersionedKey = { - version: 1, - object: object(), - } - - const symLocalAdminGroupKey: VersionedKey = { - version: 0, - object: object(), - } - - const userGroup: Group = createTestEntity(GroupTypeRef, { - type: GroupType.User, - adminGroupEncGKey: object(), - adminGroupKeyVersion: "0", - admin: "localAdmin", - }) - - const before = createTestEntity(GroupTypeRef, userGroup) - const decrypted = object() - when(cryptoWrapper.decryptKey(matchers.anything(), matchers.anything())).thenReturn(decrypted) - const reencrypted = object() - when(cryptoWrapper.encryptKey(matchers.anything(), decrypted)).thenReturn(reencrypted) - - const groupUpdate = await groupManagementFacade.replaceLocalAdminEncGroupKeyWithGlobalAdminEncGroupKey( - symGlobalAdminGroupKey, - symLocalAdminGroupKey.object, - userGroup, - ) - - o(groupUpdate.adminGroupKeyVersion).equals(String(symGlobalAdminGroupKey.version)) - o(groupUpdate.adminGroupEncGKey).equals(reencrypted) - - o(userGroup).deepEquals(before) - }) - - o("traverse local admin groups", async function () { - // prepare test data... - // -------------------- - const globalAdminGroup = createGroupAndGroupInfo(GroupType.Admin, "adminGroups", "globalAdminId", "globalAdminId", new Uint8Array()) - const adminGroupKey: VersionedKey = { - object: [1, 2, 3], - version: 0, - } - const globalAdminUser = createTestEntity(UserTypeRef, { - customer: "someCustomerId", - memberships: [ - createTestEntity(GroupMembershipTypeRef, { - group: globalAdminGroup.group._id, - groupType: GroupType.Admin, - }), - ], - }) - const customer = createTestEntity(CustomerTypeRef, { - _id: "someCustomerId", - adminGroup: globalAdminGroup.group._id, - teamGroups: "teamGroupsIds", - }) - - const administratedGroupsRefs = [ - createTestEntity(AdministratedGroupsRefTypeRef, { items: "xs1" }), - createTestEntity(AdministratedGroupsRefTypeRef, { items: "xs2" }), - ] - - const localAdminGroup1 = createGroupAndGroupInfo( - GroupType.LocalAdmin, - customer.teamGroups, - "localAdminGroup1Id", - globalAdminGroup.group._id, - new Uint8Array(), - ) - localAdminGroup1.group.administratedGroups = administratedGroupsRefs[0] - - const localAdminGroup2 = createGroupAndGroupInfo( - GroupType.LocalAdmin, - customer.teamGroups, - "localAdminGroup2Id", - globalAdminGroup.group._id, - new Uint8Array(), - ) - localAdminGroup2.group.administratedGroups = administratedGroupsRefs[1] - - const userGroup1 = createGroupAndGroupInfo(GroupType.User, customer.userGroups, "u1", localAdminGroup1.group._id, new Uint8Array([1])) - const userGroup2 = createGroupAndGroupInfo(GroupType.User, customer.userGroups, "u2", localAdminGroup1.group._id, new Uint8Array([1, 2])) - const userGroup3 = createGroupAndGroupInfo(GroupType.User, customer.userGroups, "u3", localAdminGroup2.group._id, new Uint8Array([1, 2, 3])) - - const administratedGroupsByLocalAdmins = [ - createTestEntity(AdministratedGroupTypeRef, { - _id: ["xs1", "1"], - localAdminGroup: localAdminGroup1.group._id, - groupInfo: userGroup1.groupInfo._id, - }), - createTestEntity(AdministratedGroupTypeRef, { - _id: ["xs1", "2"], - localAdminGroup: localAdminGroup1.group._id, - groupInfo: userGroup2.groupInfo._id, - }), - createTestEntity(AdministratedGroupTypeRef, { - _id: ["xs2", "1"], - localAdminGroup: localAdminGroup2.group._id, - groupInfo: userGroup3.groupInfo._id, - }), - ] - - // mock body of the function - // ------------------------- - when(userFacade.getLoggedInUser()).thenReturn(globalAdminUser) - when(entityClient.load(CustomerTypeRef, "someCustomerId")).thenResolve(customer) - when(entityClient.loadAll(GroupInfoTypeRef, "teamGroupsIds")).thenResolve([localAdminGroup1.groupInfo, localAdminGroup2.groupInfo]) - when(keyLoaderFacade.getCurrentSymGroupKey("globalAdminId")).thenResolve(adminGroupKey) // const adminGroupKey = await this.keyLoaderFacade.getCurrentSymGroupKey(adminGroupId) - - // inner loop loading administrated groups - // for the administrated groups of the first local admin - when(entityClient.loadAll(AdministratedGroupTypeRef, "xs1")).thenResolve([administratedGroupsByLocalAdmins[0], administratedGroupsByLocalAdmins[1]]) - // for the administrated groups of the second local admin - when(entityClient.loadAll(AdministratedGroupTypeRef, "xs2")).thenResolve([administratedGroupsByLocalAdmins[2]]) - - // stubbing - const save = groupManagementFacade.getCurrentGroupKeyViaAdminEncGKey - groupManagementFacade.getCurrentGroupKeyViaAdminEncGKey = () => { - return object() - } - // when(groupManagementFacade.getCurrentGroupKeyViaAdminEncGKey("localAdminGroup1Id")).thenResolve(object()) - // when(groupManagementFacade.getCurrentGroupKeyViaAdminEncGKey("localAdminGroup2Id")).thenResolve(object()) - - // now run mocked function - // ----------------------- - await groupManagementFacade.migrateLocalAdminsToGlobalAdmins() - - verify( - serviceExecutor.post( - LocalAdminRemovalService, - matchers.argThat((postIn: LocalAdminRemovalPostIn) => { - const userWithIds = postIn.groupUpdates.map((user) => user.groupId).sort() - o(userWithIds.sort()).deepEquals(["u1", "u2", "u3"]) - return true - }), - ), - ) - - groupManagementFacade.getCurrentGroupKeyViaAdminEncGKey = save - }) - - function createGroupAndGroupInfo( - groupType: GroupType, - groupInfoListId: string, - groupId: string, - adminGroup: string, - adminGroupEncGroupKey: Uint8Array, - ): { - group: Group - groupInfo: GroupInfo - } { - const groupInfo = createTestEntity(GroupInfoTypeRef, { _id: [groupInfoListId, `groupInfo${groupId}`], groupType: groupType, group: groupId }) - const group = createTestEntity(GroupTypeRef, { - type: groupType, - admin: adminGroup, - _id: groupId, - adminGroupEncGKey: adminGroupEncGroupKey, - }) - when(entityClient.load(GroupTypeRef, groupId)).thenResolve(group) - when(entityClient.load(GroupInfoTypeRef, groupInfo._id)).thenResolve(groupInfo) - - return { group, groupInfo } - } }) diff --git a/tuta-sdk/rust/sdk/src/entities/generated/sys.rs b/tuta-sdk/rust/sdk/src/entities/generated/sys.rs index e3d356b22a24..ff572e87d94f 100644 --- a/tuta-sdk/rust/sdk/src/entities/generated/sys.rs +++ b/tuta-sdk/rust/sdk/src/entities/generated/sys.rs @@ -114,43 +114,6 @@ impl Entity for AdminGroupKeyRotationPutIn { } } -#[derive(uniffi::Record, Clone, Serialize, Deserialize)] -#[cfg_attr(test, derive(PartialEq, Debug))] -pub struct AdministratedGroup { - pub _format: i64, - pub _id: Option, - pub _ownerGroup: Option, - pub _permissions: GeneratedId, - pub groupType: i64, - pub groupInfo: IdTupleGenerated, - pub localAdminGroup: GeneratedId, -} - -impl Entity for AdministratedGroup { - fn type_ref() -> TypeRef { - TypeRef { - app: "sys", - type_: "AdministratedGroup", - } - } -} - -#[derive(uniffi::Record, Clone, Serialize, Deserialize)] -#[cfg_attr(test, derive(PartialEq, Debug))] -pub struct AdministratedGroupsRef { - pub _id: Option, - pub items: GeneratedId, -} - -impl Entity for AdministratedGroupsRef { - fn type_ref() -> TypeRef { - TypeRef { - app: "sys", - type_: "AdministratedGroupsRef", - } - } -} - #[derive(uniffi::Record, Clone, Serialize, Deserialize)] #[cfg_attr(test, derive(PartialEq, Debug))] pub struct AffiliatePartnerKpiMonthSummary { @@ -1751,7 +1714,6 @@ pub struct Group { #[serde(rename = "type")] pub r#type: i64, pub admin: Option, - pub administratedGroups: Option, pub archives: Vec, pub currentKeys: Option, pub customer: Option, @@ -1791,7 +1753,6 @@ pub struct GroupInfo { pub mailAddress: Option, pub name: String, pub group: GeneratedId, - pub localAdmin: Option, pub mailAddressAliases: Vec, pub _errors: Option, pub _finalIvs: HashMap, @@ -2346,42 +2307,6 @@ impl Entity for KeyRotationsRef { } } -#[derive(uniffi::Record, Clone, Serialize, Deserialize)] -#[cfg_attr(test, derive(PartialEq, Debug))] -pub struct LocalAdminGroupReplacementData { - pub _id: Option, - #[serde(with = "serde_bytes")] - pub adminGroupEncGKey: Vec, - pub adminGroupKeyVersion: i64, - pub groupKeyVersion: i64, - pub groupId: GeneratedId, -} - -impl Entity for LocalAdminGroupReplacementData { - fn type_ref() -> TypeRef { - TypeRef { - app: "sys", - type_: "LocalAdminGroupReplacementData", - } - } -} - -#[derive(uniffi::Record, Clone, Serialize, Deserialize)] -#[cfg_attr(test, derive(PartialEq, Debug))] -pub struct LocalAdminRemovalPostIn { - pub _format: i64, - pub groupUpdates: Vec, -} - -impl Entity for LocalAdminRemovalPostIn { - fn type_ref() -> TypeRef { - TypeRef { - app: "sys", - type_: "LocalAdminRemovalPostIn", - } - } -} - #[derive(uniffi::Record, Clone, Serialize, Deserialize)] #[cfg_attr(test, derive(PartialEq, Debug))] pub struct LocationServiceGetReturn { diff --git a/tuta-sdk/rust/sdk/src/instance_mapper.rs b/tuta-sdk/rust/sdk/src/instance_mapper.rs index 297fe048709c..696e4c114a8c 100644 --- a/tuta-sdk/rust/sdk/src/instance_mapper.rs +++ b/tuta-sdk/rust/sdk/src/instance_mapper.rs @@ -1383,7 +1383,6 @@ mod tests { mailAddress: None, name: "encName".to_owned(), group: GeneratedId::test_random(), - localAdmin: None, mailAddressAliases: vec![], _errors: Default::default(), _finalIvs: Default::default(), diff --git a/tuta-sdk/rust/sdk/src/services/generated/sys.rs b/tuta-sdk/rust/sdk/src/services/generated/sys.rs index f77ab6ca5974..f51cb532e839 100644 --- a/tuta-sdk/rust/sdk/src/services/generated/sys.rs +++ b/tuta-sdk/rust/sdk/src/services/generated/sys.rs @@ -46,7 +46,6 @@ use crate::entities::generated::sys::GroupKeyRotationInfoGetOut; use crate::entities::generated::sys::GroupKeyRotationPostIn; use crate::entities::generated::sys::InvoiceDataGetIn; use crate::entities::generated::sys::InvoiceDataGetOut; -use crate::entities::generated::sys::LocalAdminRemovalPostIn; use crate::entities::generated::sys::LocationServiceGetReturn; use crate::entities::generated::sys::MailAddressAliasServiceData; use crate::entities::generated::sys::MailAddressAliasGetIn; @@ -100,7 +99,7 @@ use crate::entities::generated::sys::VersionData; use crate::entities::generated::sys::VersionReturn; pub struct AdminGroupKeyRotationService; -crate::service_impl!(declare, AdminGroupKeyRotationService, "sys/admingroupkeyrotationservice", 116); +crate::service_impl!(declare, AdminGroupKeyRotationService, "sys/admingroupkeyrotationservice", 117); crate::service_impl!(POST, AdminGroupKeyRotationService, AdminGroupKeyRotationPostIn, ()); crate::service_impl!(GET, AdminGroupKeyRotationService, (), AdminGroupKeyRotationGetOut); crate::service_impl!(PUT, AdminGroupKeyRotationService, AdminGroupKeyRotationPutIn, ()); @@ -108,25 +107,25 @@ crate::service_impl!(PUT, AdminGroupKeyRotationService, AdminGroupKeyRotationPut pub struct AffiliatePartnerKpiService; -crate::service_impl!(declare, AffiliatePartnerKpiService, "sys/affiliatepartnerkpiservice", 116); +crate::service_impl!(declare, AffiliatePartnerKpiService, "sys/affiliatepartnerkpiservice", 117); crate::service_impl!(GET, AffiliatePartnerKpiService, (), AffiliatePartnerKpiServiceGetOut); pub struct AlarmService; -crate::service_impl!(declare, AlarmService, "sys/alarmservice", 116); +crate::service_impl!(declare, AlarmService, "sys/alarmservice", 117); crate::service_impl!(POST, AlarmService, AlarmServicePost, ()); pub struct AppStoreSubscriptionService; -crate::service_impl!(declare, AppStoreSubscriptionService, "sys/appstoresubscriptionservice", 116); +crate::service_impl!(declare, AppStoreSubscriptionService, "sys/appstoresubscriptionservice", 117); crate::service_impl!(GET, AppStoreSubscriptionService, AppStoreSubscriptionGetIn, AppStoreSubscriptionGetOut); pub struct AutoLoginService; -crate::service_impl!(declare, AutoLoginService, "sys/autologinservice", 116); +crate::service_impl!(declare, AutoLoginService, "sys/autologinservice", 117); crate::service_impl!(POST, AutoLoginService, AutoLoginDataReturn, AutoLoginPostReturn); crate::service_impl!(GET, AutoLoginService, AutoLoginDataGet, AutoLoginDataReturn); crate::service_impl!(DELETE, AutoLoginService, AutoLoginDataDelete, ()); @@ -134,7 +133,7 @@ crate::service_impl!(DELETE, AutoLoginService, AutoLoginDataDelete, ()); pub struct BrandingDomainService; -crate::service_impl!(declare, BrandingDomainService, "sys/brandingdomainservice", 116); +crate::service_impl!(declare, BrandingDomainService, "sys/brandingdomainservice", 117); crate::service_impl!(POST, BrandingDomainService, BrandingDomainData, ()); crate::service_impl!(GET, BrandingDomainService, (), BrandingDomainGetReturn); crate::service_impl!(PUT, BrandingDomainService, BrandingDomainData, ()); @@ -143,37 +142,37 @@ crate::service_impl!(DELETE, BrandingDomainService, BrandingDomainDeleteData, () pub struct ChangeKdfService; -crate::service_impl!(declare, ChangeKdfService, "sys/changekdfservice", 116); +crate::service_impl!(declare, ChangeKdfService, "sys/changekdfservice", 117); crate::service_impl!(POST, ChangeKdfService, ChangeKdfPostIn, ()); pub struct ChangePasswordService; -crate::service_impl!(declare, ChangePasswordService, "sys/changepasswordservice", 116); +crate::service_impl!(declare, ChangePasswordService, "sys/changepasswordservice", 117); crate::service_impl!(POST, ChangePasswordService, ChangePasswordPostIn, ()); pub struct CloseSessionService; -crate::service_impl!(declare, CloseSessionService, "sys/closesessionservice", 116); +crate::service_impl!(declare, CloseSessionService, "sys/closesessionservice", 117); crate::service_impl!(POST, CloseSessionService, CloseSessionServicePost, ()); pub struct CreateCustomerServerProperties; -crate::service_impl!(declare, CreateCustomerServerProperties, "sys/createcustomerserverproperties", 116); +crate::service_impl!(declare, CreateCustomerServerProperties, "sys/createcustomerserverproperties", 117); crate::service_impl!(POST, CreateCustomerServerProperties, CreateCustomerServerPropertiesData, CreateCustomerServerPropertiesReturn); pub struct CustomDomainCheckService; -crate::service_impl!(declare, CustomDomainCheckService, "sys/customdomaincheckservice", 116); +crate::service_impl!(declare, CustomDomainCheckService, "sys/customdomaincheckservice", 117); crate::service_impl!(GET, CustomDomainCheckService, CustomDomainCheckGetIn, CustomDomainCheckGetOut); pub struct CustomDomainService; -crate::service_impl!(declare, CustomDomainService, "sys/customdomainservice", 116); +crate::service_impl!(declare, CustomDomainService, "sys/customdomainservice", 117); crate::service_impl!(POST, CustomDomainService, CustomDomainData, CustomDomainReturn); crate::service_impl!(PUT, CustomDomainService, CustomDomainData, ()); crate::service_impl!(DELETE, CustomDomainService, CustomDomainData, ()); @@ -181,50 +180,50 @@ crate::service_impl!(DELETE, CustomDomainService, CustomDomainData, ()); pub struct CustomerAccountTerminationService; -crate::service_impl!(declare, CustomerAccountTerminationService, "sys/customeraccountterminationservice", 116); +crate::service_impl!(declare, CustomerAccountTerminationService, "sys/customeraccountterminationservice", 117); crate::service_impl!(POST, CustomerAccountTerminationService, CustomerAccountTerminationPostIn, CustomerAccountTerminationPostOut); pub struct CustomerPublicKeyService; -crate::service_impl!(declare, CustomerPublicKeyService, "sys/customerpublickeyservice", 116); +crate::service_impl!(declare, CustomerPublicKeyService, "sys/customerpublickeyservice", 117); crate::service_impl!(GET, CustomerPublicKeyService, (), PublicKeyGetOut); pub struct CustomerService; -crate::service_impl!(declare, CustomerService, "sys/customerservice", 116); +crate::service_impl!(declare, CustomerService, "sys/customerservice", 117); crate::service_impl!(DELETE, CustomerService, DeleteCustomerData, ()); pub struct DebitService; -crate::service_impl!(declare, DebitService, "sys/debitservice", 116); +crate::service_impl!(declare, DebitService, "sys/debitservice", 117); crate::service_impl!(PUT, DebitService, DebitServicePutData, ()); pub struct DomainMailAddressAvailabilityService; -crate::service_impl!(declare, DomainMailAddressAvailabilityService, "sys/domainmailaddressavailabilityservice", 116); +crate::service_impl!(declare, DomainMailAddressAvailabilityService, "sys/domainmailaddressavailabilityservice", 117); crate::service_impl!(GET, DomainMailAddressAvailabilityService, DomainMailAddressAvailabilityData, DomainMailAddressAvailabilityReturn); pub struct ExternalPropertiesService; -crate::service_impl!(declare, ExternalPropertiesService, "sys/externalpropertiesservice", 116); +crate::service_impl!(declare, ExternalPropertiesService, "sys/externalpropertiesservice", 117); crate::service_impl!(GET, ExternalPropertiesService, (), ExternalPropertiesReturn); pub struct GiftCardRedeemService; -crate::service_impl!(declare, GiftCardRedeemService, "sys/giftcardredeemservice", 116); +crate::service_impl!(declare, GiftCardRedeemService, "sys/giftcardredeemservice", 117); crate::service_impl!(POST, GiftCardRedeemService, GiftCardRedeemData, ()); crate::service_impl!(GET, GiftCardRedeemService, GiftCardRedeemData, GiftCardRedeemGetReturn); pub struct GiftCardService; -crate::service_impl!(declare, GiftCardService, "sys/giftcardservice", 116); +crate::service_impl!(declare, GiftCardService, "sys/giftcardservice", 117); crate::service_impl!(POST, GiftCardService, GiftCardCreateData, GiftCardCreateReturn); crate::service_impl!(GET, GiftCardService, (), GiftCardGetReturn); crate::service_impl!(DELETE, GiftCardService, GiftCardDeleteData, ()); @@ -232,37 +231,31 @@ crate::service_impl!(DELETE, GiftCardService, GiftCardDeleteData, ()); pub struct GroupKeyRotationInfoService; -crate::service_impl!(declare, GroupKeyRotationInfoService, "sys/groupkeyrotationinfoservice", 116); +crate::service_impl!(declare, GroupKeyRotationInfoService, "sys/groupkeyrotationinfoservice", 117); crate::service_impl!(GET, GroupKeyRotationInfoService, (), GroupKeyRotationInfoGetOut); pub struct GroupKeyRotationService; -crate::service_impl!(declare, GroupKeyRotationService, "sys/groupkeyrotationservice", 116); +crate::service_impl!(declare, GroupKeyRotationService, "sys/groupkeyrotationservice", 117); crate::service_impl!(POST, GroupKeyRotationService, GroupKeyRotationPostIn, ()); pub struct InvoiceDataService; -crate::service_impl!(declare, InvoiceDataService, "sys/invoicedataservice", 116); +crate::service_impl!(declare, InvoiceDataService, "sys/invoicedataservice", 117); crate::service_impl!(GET, InvoiceDataService, InvoiceDataGetIn, InvoiceDataGetOut); -pub struct LocalAdminRemovalService; - -crate::service_impl!(declare, LocalAdminRemovalService, "sys/localadminremovalservice", 116); -crate::service_impl!(POST, LocalAdminRemovalService, LocalAdminRemovalPostIn, ()); - - pub struct LocationService; -crate::service_impl!(declare, LocationService, "sys/locationservice", 116); +crate::service_impl!(declare, LocationService, "sys/locationservice", 117); crate::service_impl!(GET, LocationService, (), LocationServiceGetReturn); pub struct MailAddressAliasService; -crate::service_impl!(declare, MailAddressAliasService, "sys/mailaddressaliasservice", 116); +crate::service_impl!(declare, MailAddressAliasService, "sys/mailaddressaliasservice", 117); crate::service_impl!(POST, MailAddressAliasService, MailAddressAliasServiceData, ()); crate::service_impl!(GET, MailAddressAliasService, MailAddressAliasGetIn, MailAddressAliasServiceReturn); crate::service_impl!(DELETE, MailAddressAliasService, MailAddressAliasServiceDataDelete, ()); @@ -270,7 +263,7 @@ crate::service_impl!(DELETE, MailAddressAliasService, MailAddressAliasServiceDat pub struct MembershipService; -crate::service_impl!(declare, MembershipService, "sys/membershipservice", 116); +crate::service_impl!(declare, MembershipService, "sys/membershipservice", 117); crate::service_impl!(POST, MembershipService, MembershipAddData, ()); crate::service_impl!(PUT, MembershipService, MembershipPutIn, ()); crate::service_impl!(DELETE, MembershipService, MembershipRemoveData, ()); @@ -278,13 +271,13 @@ crate::service_impl!(DELETE, MembershipService, MembershipRemoveData, ()); pub struct MultipleMailAddressAvailabilityService; -crate::service_impl!(declare, MultipleMailAddressAvailabilityService, "sys/multiplemailaddressavailabilityservice", 116); +crate::service_impl!(declare, MultipleMailAddressAvailabilityService, "sys/multiplemailaddressavailabilityservice", 117); crate::service_impl!(GET, MultipleMailAddressAvailabilityService, MultipleMailAddressAvailabilityData, MultipleMailAddressAvailabilityReturn); pub struct PaymentDataService; -crate::service_impl!(declare, PaymentDataService, "sys/paymentdataservice", 116); +crate::service_impl!(declare, PaymentDataService, "sys/paymentdataservice", 117); crate::service_impl!(POST, PaymentDataService, PaymentDataServicePostData, ()); crate::service_impl!(GET, PaymentDataService, PaymentDataServiceGetData, PaymentDataServiceGetReturn); crate::service_impl!(PUT, PaymentDataService, PaymentDataServicePutData, PaymentDataServicePutReturn); @@ -292,71 +285,71 @@ crate::service_impl!(PUT, PaymentDataService, PaymentDataServicePutData, Payment pub struct PlanService; -crate::service_impl!(declare, PlanService, "sys/planservice", 116); +crate::service_impl!(declare, PlanService, "sys/planservice", 117); crate::service_impl!(GET, PlanService, (), PlanServiceGetOut); pub struct PriceService; -crate::service_impl!(declare, PriceService, "sys/priceservice", 116); +crate::service_impl!(declare, PriceService, "sys/priceservice", 117); crate::service_impl!(GET, PriceService, PriceServiceData, PriceServiceReturn); pub struct PublicKeyService; -crate::service_impl!(declare, PublicKeyService, "sys/publickeyservice", 116); +crate::service_impl!(declare, PublicKeyService, "sys/publickeyservice", 117); crate::service_impl!(GET, PublicKeyService, PublicKeyGetIn, PublicKeyGetOut); crate::service_impl!(PUT, PublicKeyService, PublicKeyPutIn, ()); pub struct ReferralCodeService; -crate::service_impl!(declare, ReferralCodeService, "sys/referralcodeservice", 116); +crate::service_impl!(declare, ReferralCodeService, "sys/referralcodeservice", 117); crate::service_impl!(POST, ReferralCodeService, ReferralCodePostIn, ReferralCodePostOut); crate::service_impl!(GET, ReferralCodeService, ReferralCodeGetIn, ()); pub struct RegistrationCaptchaService; -crate::service_impl!(declare, RegistrationCaptchaService, "sys/registrationcaptchaservice", 116); +crate::service_impl!(declare, RegistrationCaptchaService, "sys/registrationcaptchaservice", 117); crate::service_impl!(POST, RegistrationCaptchaService, RegistrationCaptchaServiceData, ()); crate::service_impl!(GET, RegistrationCaptchaService, RegistrationCaptchaServiceGetData, RegistrationCaptchaServiceReturn); pub struct RegistrationService; -crate::service_impl!(declare, RegistrationService, "sys/registrationservice", 116); +crate::service_impl!(declare, RegistrationService, "sys/registrationservice", 117); crate::service_impl!(POST, RegistrationService, RegistrationServiceData, RegistrationReturn); crate::service_impl!(GET, RegistrationService, (), RegistrationServiceData); pub struct ResetFactorsService; -crate::service_impl!(declare, ResetFactorsService, "sys/resetfactorsservice", 116); +crate::service_impl!(declare, ResetFactorsService, "sys/resetfactorsservice", 117); crate::service_impl!(DELETE, ResetFactorsService, ResetFactorsDeleteData, ()); pub struct ResetPasswordService; -crate::service_impl!(declare, ResetPasswordService, "sys/resetpasswordservice", 116); +crate::service_impl!(declare, ResetPasswordService, "sys/resetpasswordservice", 117); crate::service_impl!(POST, ResetPasswordService, ResetPasswordPostIn, ()); pub struct SaltService; -crate::service_impl!(declare, SaltService, "sys/saltservice", 116); +crate::service_impl!(declare, SaltService, "sys/saltservice", 117); crate::service_impl!(GET, SaltService, SaltData, SaltReturn); pub struct SecondFactorAuthAllowedService; -crate::service_impl!(declare, SecondFactorAuthAllowedService, "sys/secondfactorauthallowedservice", 116); +crate::service_impl!(declare, SecondFactorAuthAllowedService, "sys/secondfactorauthallowedservice", 117); crate::service_impl!(GET, SecondFactorAuthAllowedService, (), SecondFactorAuthAllowedReturn); pub struct SecondFactorAuthService; -crate::service_impl!(declare, SecondFactorAuthService, "sys/secondfactorauthservice", 116); +crate::service_impl!(declare, SecondFactorAuthService, "sys/secondfactorauthservice", 117); crate::service_impl!(POST, SecondFactorAuthService, SecondFactorAuthData, ()); crate::service_impl!(GET, SecondFactorAuthService, SecondFactorAuthGetData, SecondFactorAuthGetReturn); crate::service_impl!(DELETE, SecondFactorAuthService, SecondFactorAuthDeleteData, ()); @@ -364,65 +357,65 @@ crate::service_impl!(DELETE, SecondFactorAuthService, SecondFactorAuthDeleteData pub struct SessionService; -crate::service_impl!(declare, SessionService, "sys/sessionservice", 116); +crate::service_impl!(declare, SessionService, "sys/sessionservice", 117); crate::service_impl!(POST, SessionService, CreateSessionData, CreateSessionReturn); pub struct SignOrderProcessingAgreementService; -crate::service_impl!(declare, SignOrderProcessingAgreementService, "sys/signorderprocessingagreementservice", 116); +crate::service_impl!(declare, SignOrderProcessingAgreementService, "sys/signorderprocessingagreementservice", 117); crate::service_impl!(POST, SignOrderProcessingAgreementService, SignOrderProcessingAgreementData, ()); pub struct SwitchAccountTypeService; -crate::service_impl!(declare, SwitchAccountTypeService, "sys/switchaccounttypeservice", 116); +crate::service_impl!(declare, SwitchAccountTypeService, "sys/switchaccounttypeservice", 117); crate::service_impl!(POST, SwitchAccountTypeService, SwitchAccountTypePostIn, ()); pub struct SystemKeysService; -crate::service_impl!(declare, SystemKeysService, "sys/systemkeysservice", 116); +crate::service_impl!(declare, SystemKeysService, "sys/systemkeysservice", 117); crate::service_impl!(GET, SystemKeysService, (), SystemKeysReturn); pub struct TakeOverDeletedAddressService; -crate::service_impl!(declare, TakeOverDeletedAddressService, "sys/takeoverdeletedaddressservice", 116); +crate::service_impl!(declare, TakeOverDeletedAddressService, "sys/takeoverdeletedaddressservice", 117); crate::service_impl!(POST, TakeOverDeletedAddressService, TakeOverDeletedAddressData, ()); pub struct UpdatePermissionKeyService; -crate::service_impl!(declare, UpdatePermissionKeyService, "sys/updatepermissionkeyservice", 116); +crate::service_impl!(declare, UpdatePermissionKeyService, "sys/updatepermissionkeyservice", 117); crate::service_impl!(POST, UpdatePermissionKeyService, UpdatePermissionKeyData, ()); pub struct UpdateSessionKeysService; -crate::service_impl!(declare, UpdateSessionKeysService, "sys/updatesessionkeysservice", 116); +crate::service_impl!(declare, UpdateSessionKeysService, "sys/updatesessionkeysservice", 117); crate::service_impl!(POST, UpdateSessionKeysService, UpdateSessionKeysPostIn, ()); pub struct UpgradePriceService; -crate::service_impl!(declare, UpgradePriceService, "sys/upgradepriceservice", 116); +crate::service_impl!(declare, UpgradePriceService, "sys/upgradepriceservice", 117); crate::service_impl!(GET, UpgradePriceService, UpgradePriceServiceData, UpgradePriceServiceReturn); pub struct UserGroupKeyRotationService; -crate::service_impl!(declare, UserGroupKeyRotationService, "sys/usergroupkeyrotationservice", 116); +crate::service_impl!(declare, UserGroupKeyRotationService, "sys/usergroupkeyrotationservice", 117); crate::service_impl!(POST, UserGroupKeyRotationService, UserGroupKeyRotationPostIn, ()); pub struct UserService; -crate::service_impl!(declare, UserService, "sys/userservice", 116); +crate::service_impl!(declare, UserService, "sys/userservice", 117); crate::service_impl!(DELETE, UserService, UserDataDelete, ()); pub struct VersionService; -crate::service_impl!(declare, VersionService, "sys/versionservice", 116); +crate::service_impl!(declare, VersionService, "sys/versionservice", 117); crate::service_impl!(GET, VersionService, VersionData, VersionReturn); diff --git a/tuta-sdk/rust/sdk/src/type_models/sys.json b/tuta-sdk/rust/sdk/src/type_models/sys.json index 0d063dd6d7e4..eed2d722dd3c 100644 --- a/tuta-sdk/rust/sdk/src/type_models/sys.json +++ b/tuta-sdk/rust/sdk/src/type_models/sys.json @@ -212,7 +212,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "AdminGroupKeyDistributionElement": { "name": "AdminGroupKeyDistributionElement", @@ -266,7 +266,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "AdminGroupKeyRotationGetOut": { "name": "AdminGroupKeyRotationGetOut", @@ -310,7 +310,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "AdminGroupKeyRotationPostIn": { "name": "AdminGroupKeyRotationPostIn", @@ -374,7 +374,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "AdminGroupKeyRotationPutIn": { "name": "AdminGroupKeyRotationPutIn", @@ -418,121 +418,7 @@ } }, "app": "sys", - "version": "116" - }, - "AdministratedGroup": { - "name": "AdministratedGroup", - "since": 27, - "type": "LIST_ELEMENT_TYPE", - "id": 1294, - "rootId": "A3N5cwAFDg", - "versioned": false, - "encrypted": false, - "values": { - "_format": { - "final": false, - "name": "_format", - "id": 1298, - "since": 27, - "type": "Number", - "cardinality": "One", - "encrypted": false - }, - "_id": { - "final": true, - "name": "_id", - "id": 1296, - "since": 27, - "type": "GeneratedId", - "cardinality": "One", - "encrypted": false - }, - "_ownerGroup": { - "final": true, - "name": "_ownerGroup", - "id": 1299, - "since": 27, - "type": "GeneratedId", - "cardinality": "ZeroOrOne", - "encrypted": false - }, - "_permissions": { - "final": true, - "name": "_permissions", - "id": 1297, - "since": 27, - "type": "GeneratedId", - "cardinality": "One", - "encrypted": false - }, - "groupType": { - "final": true, - "name": "groupType", - "id": 1300, - "since": 27, - "type": "Number", - "cardinality": "One", - "encrypted": false - } - }, - "associations": { - "groupInfo": { - "final": false, - "name": "groupInfo", - "id": 1301, - "since": 27, - "type": "LIST_ELEMENT_ASSOCIATION_GENERATED", - "cardinality": "One", - "refType": "GroupInfo", - "dependency": null - }, - "localAdminGroup": { - "final": false, - "name": "localAdminGroup", - "id": 1302, - "since": 27, - "type": "ELEMENT_ASSOCIATION", - "cardinality": "One", - "refType": "Group", - "dependency": null - } - }, - "app": "sys", - "version": "116" - }, - "AdministratedGroupsRef": { - "name": "AdministratedGroupsRef", - "since": 27, - "type": "AGGREGATED_TYPE", - "id": 1303, - "rootId": "A3N5cwAFFw", - "versioned": false, - "encrypted": false, - "values": { - "_id": { - "final": true, - "name": "_id", - "id": 1304, - "since": 27, - "type": "CustomId", - "cardinality": "One", - "encrypted": false - } - }, - "associations": { - "items": { - "final": true, - "name": "items", - "id": 1305, - "since": 27, - "type": "LIST_ASSOCIATION", - "cardinality": "One", - "refType": "AdministratedGroup", - "dependency": null - } - }, - "app": "sys", - "version": "116" + "version": "117" }, "AffiliatePartnerKpiMonthSummary": { "name": "AffiliatePartnerKpiMonthSummary", @@ -609,7 +495,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "AffiliatePartnerKpiServiceGetOut": { "name": "AffiliatePartnerKpiServiceGetOut", @@ -670,7 +556,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "AlarmInfo": { "name": "AlarmInfo", @@ -722,7 +608,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "AlarmNotification": { "name": "AlarmNotification", @@ -822,7 +708,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "AlarmServicePost": { "name": "AlarmServicePost", @@ -856,7 +742,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "AppStoreSubscriptionGetIn": { "name": "AppStoreSubscriptionGetIn", @@ -888,7 +774,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "AppStoreSubscriptionGetOut": { "name": "AppStoreSubscriptionGetOut", @@ -920,7 +806,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "ArchiveRef": { "name": "ArchiveRef", @@ -952,7 +838,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "ArchiveType": { "name": "ArchiveType", @@ -1006,7 +892,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "AuditLogEntry": { "name": "AuditLogEntry", @@ -1140,7 +1026,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "AuditLogRef": { "name": "AuditLogRef", @@ -1174,7 +1060,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "AuthenticatedDevice": { "name": "AuthenticatedDevice", @@ -1224,7 +1110,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "Authentication": { "name": "Authentication", @@ -1285,7 +1171,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "AutoLoginDataDelete": { "name": "AutoLoginDataDelete", @@ -1317,7 +1203,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "AutoLoginDataGet": { "name": "AutoLoginDataGet", @@ -1360,7 +1246,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "AutoLoginDataReturn": { "name": "AutoLoginDataReturn", @@ -1392,7 +1278,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "AutoLoginPostReturn": { "name": "AutoLoginPostReturn", @@ -1424,7 +1310,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "Blob": { "name": "Blob", @@ -1474,7 +1360,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "BlobReferenceTokenWrapper": { "name": "BlobReferenceTokenWrapper", @@ -1506,7 +1392,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "Booking": { "name": "Booking", @@ -1630,7 +1516,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "BookingItem": { "name": "BookingItem", @@ -1716,7 +1602,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "BookingsRef": { "name": "BookingsRef", @@ -1750,7 +1636,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "BootstrapFeature": { "name": "BootstrapFeature", @@ -1782,7 +1668,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "Braintree3ds2Request": { "name": "Braintree3ds2Request", @@ -1832,7 +1718,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "Braintree3ds2Response": { "name": "Braintree3ds2Response", @@ -1873,7 +1759,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "BrandingDomainData": { "name": "BrandingDomainData", @@ -1950,7 +1836,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "BrandingDomainDeleteData": { "name": "BrandingDomainDeleteData", @@ -1982,7 +1868,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "BrandingDomainGetReturn": { "name": "BrandingDomainGetReturn", @@ -2016,7 +1902,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "Bucket": { "name": "Bucket", @@ -2050,7 +1936,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "BucketKey": { "name": "BucketKey", @@ -2139,7 +2025,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "BucketPermission": { "name": "BucketPermission", @@ -2281,7 +2167,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "CalendarEventRef": { "name": "CalendarEventRef", @@ -2322,7 +2208,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "CertificateInfo": { "name": "CertificateInfo", @@ -2383,7 +2269,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "Challenge": { "name": "Challenge", @@ -2436,7 +2322,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "ChangeKdfPostIn": { "name": "ChangeKdfPostIn", @@ -2513,7 +2399,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "ChangePasswordPostIn": { "name": "ChangePasswordPostIn", @@ -2608,7 +2494,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "Chat": { "name": "Chat", @@ -2658,7 +2544,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "CloseSessionServicePost": { "name": "CloseSessionServicePost", @@ -2701,7 +2587,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "CreateCustomerServerPropertiesData": { "name": "CreateCustomerServerPropertiesData", @@ -2742,7 +2628,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "CreateCustomerServerPropertiesReturn": { "name": "CreateCustomerServerPropertiesReturn", @@ -2776,7 +2662,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "CreateSessionData": { "name": "CreateSessionData", @@ -2864,7 +2750,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "CreateSessionReturn": { "name": "CreateSessionReturn", @@ -2917,7 +2803,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "CreditCard": { "name": "CreditCard", @@ -2985,7 +2871,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "CustomDomainCheckGetIn": { "name": "CustomDomainCheckGetIn", @@ -3028,7 +2914,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "CustomDomainCheckGetOut": { "name": "CustomDomainCheckGetOut", @@ -3091,7 +2977,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "CustomDomainData": { "name": "CustomDomainData", @@ -3134,7 +3020,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "CustomDomainReturn": { "name": "CustomDomainReturn", @@ -3177,7 +3063,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "Customer": { "name": "Customer", @@ -3434,7 +3320,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "CustomerAccountTerminationPostIn": { "name": "CustomerAccountTerminationPostIn", @@ -3477,7 +3363,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "CustomerAccountTerminationPostOut": { "name": "CustomerAccountTerminationPostOut", @@ -3511,7 +3397,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "CustomerAccountTerminationRequest": { "name": "CustomerAccountTerminationRequest", @@ -3590,7 +3476,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "CustomerInfo": { "name": "CustomerInfo", @@ -3903,7 +3789,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "CustomerProperties": { "name": "CustomerProperties", @@ -4011,7 +3897,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "CustomerServerProperties": { "name": "CustomerServerProperties", @@ -4127,7 +4013,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "DateWrapper": { "name": "DateWrapper", @@ -4159,7 +4045,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "DebitServicePutData": { "name": "DebitServicePutData", @@ -4193,7 +4079,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "DeleteCustomerData": { "name": "DeleteCustomerData", @@ -4273,7 +4159,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "DnsRecord": { "name": "DnsRecord", @@ -4323,7 +4209,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "DomainInfo": { "name": "DomainInfo", @@ -4385,7 +4271,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "DomainMailAddressAvailabilityData": { "name": "DomainMailAddressAvailabilityData", @@ -4417,7 +4303,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "DomainMailAddressAvailabilityReturn": { "name": "DomainMailAddressAvailabilityReturn", @@ -4449,7 +4335,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "EmailSenderListElement": { "name": "EmailSenderListElement", @@ -4508,7 +4394,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "EncryptedKeyHash": { "name": "EncryptedKeyHash", @@ -4569,7 +4455,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "EntityEventBatch": { "name": "EntityEventBatch", @@ -4630,7 +4516,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "EntityUpdate": { "name": "EntityUpdate", @@ -4698,7 +4584,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "Exception": { "name": "Exception", @@ -4739,7 +4625,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "ExternalPropertiesReturn": { "name": "ExternalPropertiesReturn", @@ -4801,7 +4687,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "ExternalUserReference": { "name": "ExternalUserReference", @@ -4872,7 +4758,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "Feature": { "name": "Feature", @@ -4904,7 +4790,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "File": { "name": "File", @@ -4954,7 +4840,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "GeneratedIdWrapper": { "name": "GeneratedIdWrapper", @@ -4986,7 +4872,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "GiftCard": { "name": "GiftCard", @@ -5099,7 +4985,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "GiftCardCreateData": { "name": "GiftCardCreateData", @@ -5167,7 +5053,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "GiftCardCreateReturn": { "name": "GiftCardCreateReturn", @@ -5201,7 +5087,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "GiftCardDeleteData": { "name": "GiftCardDeleteData", @@ -5235,7 +5121,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "GiftCardGetReturn": { "name": "GiftCardGetReturn", @@ -5287,7 +5173,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "GiftCardOption": { "name": "GiftCardOption", @@ -5319,7 +5205,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "GiftCardRedeemData": { "name": "GiftCardRedeemData", @@ -5371,7 +5257,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "GiftCardRedeemGetReturn": { "name": "GiftCardRedeemGetReturn", @@ -5423,7 +5309,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "GiftCardsRef": { "name": "GiftCardsRef", @@ -5457,7 +5343,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "Group": { "name": "Group", @@ -5570,16 +5456,6 @@ "refType": "Group", "dependency": null }, - "administratedGroups": { - "final": true, - "name": "administratedGroups", - "id": 1306, - "since": 27, - "type": "AGGREGATION", - "cardinality": "ZeroOrOne", - "refType": "AdministratedGroupsRef", - "dependency": null - }, "archives": { "final": true, "name": "archives", @@ -5682,7 +5558,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "GroupInfo": { "name": "GroupInfo", @@ -5813,16 +5689,6 @@ "refType": "Group", "dependency": null }, - "localAdmin": { - "final": true, - "name": "localAdmin", - "id": 1287, - "since": 27, - "type": "ELEMENT_ASSOCIATION", - "cardinality": "ZeroOrOne", - "refType": "Group", - "dependency": null - }, "mailAddressAliases": { "final": true, "name": "mailAddressAliases", @@ -5835,7 +5701,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "GroupKey": { "name": "GroupKey", @@ -5942,7 +5808,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "GroupKeyRotationData": { "name": "GroupKeyRotationData", @@ -6042,7 +5908,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "GroupKeyRotationInfoGetOut": { "name": "GroupKeyRotationInfoGetOut", @@ -6085,7 +5951,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "GroupKeyRotationPostIn": { "name": "GroupKeyRotationPostIn", @@ -6119,7 +5985,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "GroupKeyUpdate": { "name": "GroupKeyUpdate", @@ -6216,7 +6082,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "GroupKeyUpdateData": { "name": "GroupKeyUpdateData", @@ -6277,7 +6143,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "GroupKeyUpdatesRef": { "name": "GroupKeyUpdatesRef", @@ -6311,7 +6177,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "GroupKeysRef": { "name": "GroupKeysRef", @@ -6345,7 +6211,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "GroupMember": { "name": "GroupMember", @@ -6435,7 +6301,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "GroupMembership": { "name": "GroupMembership", @@ -6543,7 +6409,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "GroupMembershipKeyData": { "name": "GroupMembershipKeyData", @@ -6604,7 +6470,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "GroupMembershipUpdateData": { "name": "GroupMembershipUpdateData", @@ -6656,7 +6522,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "GroupRoot": { "name": "GroupRoot", @@ -6737,7 +6603,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "IdTupleWrapper": { "name": "IdTupleWrapper", @@ -6778,7 +6644,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "InstanceSessionKey": { "name": "InstanceSessionKey", @@ -6857,7 +6723,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "Invoice": { "name": "Invoice", @@ -7073,7 +6939,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "InvoiceDataGetIn": { "name": "InvoiceDataGetIn", @@ -7105,7 +6971,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "InvoiceDataGetOut": { "name": "InvoiceDataGetOut", @@ -7247,7 +7113,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "InvoiceDataItem": { "name": "InvoiceDataItem", @@ -7324,7 +7190,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "InvoiceInfo": { "name": "InvoiceInfo", @@ -7503,7 +7369,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "InvoiceItem": { "name": "InvoiceItem", @@ -7589,7 +7455,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "KeyPair": { "name": "KeyPair", @@ -7666,7 +7532,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "KeyRotation": { "name": "KeyRotation", @@ -7785,7 +7651,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "KeyRotationsRef": { "name": "KeyRotationsRef", @@ -7819,102 +7685,7 @@ } }, "app": "sys", - "version": "116" - }, - "LocalAdminGroupReplacementData": { - "name": "LocalAdminGroupReplacementData", - "since": 113, - "type": "AGGREGATED_TYPE", - "id": 2484, - "rootId": "A3N5cwAJtA", - "versioned": false, - "encrypted": false, - "values": { - "_id": { - "final": true, - "name": "_id", - "id": 2485, - "since": 113, - "type": "CustomId", - "cardinality": "One", - "encrypted": false - }, - "adminGroupEncGKey": { - "final": false, - "name": "adminGroupEncGKey", - "id": 2487, - "since": 113, - "type": "Bytes", - "cardinality": "One", - "encrypted": false - }, - "adminGroupKeyVersion": { - "final": false, - "name": "adminGroupKeyVersion", - "id": 2489, - "since": 113, - "type": "Number", - "cardinality": "One", - "encrypted": false - }, - "groupKeyVersion": { - "final": false, - "name": "groupKeyVersion", - "id": 2488, - "since": 113, - "type": "Number", - "cardinality": "One", - "encrypted": false - } - }, - "associations": { - "groupId": { - "final": false, - "name": "groupId", - "id": 2486, - "since": 113, - "type": "ELEMENT_ASSOCIATION", - "cardinality": "One", - "refType": "Group", - "dependency": null - } - }, - "app": "sys", - "version": "116" - }, - "LocalAdminRemovalPostIn": { - "name": "LocalAdminRemovalPostIn", - "since": 113, - "type": "DATA_TRANSFER_TYPE", - "id": 2490, - "rootId": "A3N5cwAJug", - "versioned": false, - "encrypted": false, - "values": { - "_format": { - "final": false, - "name": "_format", - "id": 2491, - "since": 113, - "type": "Number", - "cardinality": "One", - "encrypted": false - } - }, - "associations": { - "groupUpdates": { - "final": false, - "name": "groupUpdates", - "id": 2492, - "since": 113, - "type": "AGGREGATION", - "cardinality": "Any", - "refType": "LocalAdminGroupReplacementData", - "dependency": null - } - }, - "app": "sys", - "version": "116" + "version": "117" }, "LocationServiceGetReturn": { "name": "LocationServiceGetReturn", @@ -7946,7 +7717,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "Login": { "name": "Login", @@ -8005,7 +7776,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "MailAddressAlias": { "name": "MailAddressAlias", @@ -8046,7 +7817,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "MailAddressAliasGetIn": { "name": "MailAddressAliasGetIn", @@ -8080,7 +7851,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "MailAddressAliasServiceData": { "name": "MailAddressAliasServiceData", @@ -8123,7 +7894,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "MailAddressAliasServiceDataDelete": { "name": "MailAddressAliasServiceDataDelete", @@ -8175,7 +7946,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "MailAddressAliasServiceReturn": { "name": "MailAddressAliasServiceReturn", @@ -8234,7 +8005,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "MailAddressAvailability": { "name": "MailAddressAvailability", @@ -8275,7 +8046,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "MailAddressToGroup": { "name": "MailAddressToGroup", @@ -8336,7 +8107,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "MembershipAddData": { "name": "MembershipAddData", @@ -8407,7 +8178,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "MembershipPutIn": { "name": "MembershipPutIn", @@ -8441,7 +8212,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "MembershipRemoveData": { "name": "MembershipRemoveData", @@ -8485,7 +8256,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "MissedNotification": { "name": "MissedNotification", @@ -8601,7 +8372,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "MultipleMailAddressAvailabilityData": { "name": "MultipleMailAddressAvailabilityData", @@ -8635,7 +8406,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "MultipleMailAddressAvailabilityReturn": { "name": "MultipleMailAddressAvailabilityReturn", @@ -8669,7 +8440,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "NotificationInfo": { "name": "NotificationInfo", @@ -8721,7 +8492,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "NotificationMailTemplate": { "name": "NotificationMailTemplate", @@ -8771,7 +8542,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "NotificationSessionKey": { "name": "NotificationSessionKey", @@ -8814,7 +8585,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "OrderProcessingAgreement": { "name": "OrderProcessingAgreement", @@ -8930,7 +8701,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "OtpChallenge": { "name": "OtpChallenge", @@ -8964,7 +8735,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "PaymentDataServiceGetData": { "name": "PaymentDataServiceGetData", @@ -8996,7 +8767,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "PaymentDataServiceGetReturn": { "name": "PaymentDataServiceGetReturn", @@ -9028,7 +8799,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "PaymentDataServicePostData": { "name": "PaymentDataServicePostData", @@ -9062,7 +8833,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "PaymentDataServicePutData": { "name": "PaymentDataServicePutData", @@ -9177,7 +8948,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "PaymentDataServicePutReturn": { "name": "PaymentDataServicePutReturn", @@ -9220,7 +8991,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "PaymentErrorInfo": { "name": "PaymentErrorInfo", @@ -9270,7 +9041,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "Permission": { "name": "Permission", @@ -9422,7 +9193,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "PlanConfiguration": { "name": "PlanConfiguration", @@ -9544,7 +9315,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "PlanPrices": { "name": "PlanPrices", @@ -9686,7 +9457,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "PlanServiceGetOut": { "name": "PlanServiceGetOut", @@ -9720,7 +9491,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "PriceData": { "name": "PriceData", @@ -9781,7 +9552,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "PriceItemData": { "name": "PriceItemData", @@ -9840,7 +9611,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "PriceRequestData": { "name": "PriceRequestData", @@ -9917,7 +9688,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "PriceServiceData": { "name": "PriceServiceData", @@ -9960,7 +9731,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "PriceServiceReturn": { "name": "PriceServiceReturn", @@ -10032,7 +9803,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "PubDistributionKey": { "name": "PubDistributionKey", @@ -10093,7 +9864,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "PubEncKeyData": { "name": "PubEncKeyData", @@ -10188,7 +9959,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "PublicKeyGetIn": { "name": "PublicKeyGetIn", @@ -10238,7 +10009,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "PublicKeyGetOut": { "name": "PublicKeyGetOut", @@ -10297,7 +10068,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "PublicKeyPutIn": { "name": "PublicKeyPutIn", @@ -10349,7 +10120,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "PushIdentifier": { "name": "PushIdentifier", @@ -10507,7 +10278,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "PushIdentifierList": { "name": "PushIdentifierList", @@ -10541,7 +10312,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "ReceivedGroupInvitation": { "name": "ReceivedGroupInvitation", @@ -10702,7 +10473,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "RecoverCode": { "name": "RecoverCode", @@ -10788,7 +10559,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "RecoverCodeData": { "name": "RecoverCodeData", @@ -10847,7 +10618,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "ReferralCodeGetIn": { "name": "ReferralCodeGetIn", @@ -10881,7 +10652,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "ReferralCodePostIn": { "name": "ReferralCodePostIn", @@ -10904,7 +10675,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "ReferralCodePostOut": { "name": "ReferralCodePostOut", @@ -10938,7 +10709,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "RegistrationCaptchaServiceData": { "name": "RegistrationCaptchaServiceData", @@ -10979,7 +10750,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "RegistrationCaptchaServiceGetData": { "name": "RegistrationCaptchaServiceGetData", @@ -11047,7 +10818,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "RegistrationCaptchaServiceReturn": { "name": "RegistrationCaptchaServiceReturn", @@ -11088,7 +10859,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "RegistrationReturn": { "name": "RegistrationReturn", @@ -11120,7 +10891,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "RegistrationServiceData": { "name": "RegistrationServiceData", @@ -11170,7 +10941,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "RejectedSender": { "name": "RejectedSender", @@ -11265,7 +11036,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "RejectedSendersRef": { "name": "RejectedSendersRef", @@ -11299,7 +11070,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "RepeatRule": { "name": "RepeatRule", @@ -11378,7 +11149,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "ResetFactorsDeleteData": { "name": "ResetFactorsDeleteData", @@ -11428,7 +11199,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "ResetPasswordPostIn": { "name": "ResetPasswordPostIn", @@ -11507,7 +11278,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "RootInstance": { "name": "RootInstance", @@ -11566,7 +11337,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "SaltData": { "name": "SaltData", @@ -11598,7 +11369,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "SaltReturn": { "name": "SaltReturn", @@ -11639,7 +11410,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "SecondFactor": { "name": "SecondFactor", @@ -11727,7 +11498,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "SecondFactorAuthAllowedReturn": { "name": "SecondFactorAuthAllowedReturn", @@ -11759,7 +11530,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "SecondFactorAuthData": { "name": "SecondFactorAuthData", @@ -11831,7 +11602,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "SecondFactorAuthDeleteData": { "name": "SecondFactorAuthDeleteData", @@ -11865,7 +11636,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "SecondFactorAuthGetData": { "name": "SecondFactorAuthGetData", @@ -11897,7 +11668,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "SecondFactorAuthGetReturn": { "name": "SecondFactorAuthGetReturn", @@ -11929,7 +11700,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "SecondFactorAuthentication": { "name": "SecondFactorAuthentication", @@ -12015,7 +11786,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "SendRegistrationCodeData": { "name": "SendRegistrationCodeData", @@ -12074,7 +11845,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "SendRegistrationCodeReturn": { "name": "SendRegistrationCodeReturn", @@ -12106,7 +11877,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "SentGroupInvitation": { "name": "SentGroupInvitation", @@ -12195,7 +11966,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "Session": { "name": "Session", @@ -12338,7 +12109,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "SignOrderProcessingAgreementData": { "name": "SignOrderProcessingAgreementData", @@ -12379,7 +12150,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "SseConnectData": { "name": "SseConnectData", @@ -12422,7 +12193,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "StringConfigValue": { "name": "StringConfigValue", @@ -12463,7 +12234,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "StringWrapper": { "name": "StringWrapper", @@ -12495,7 +12266,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "SurveyData": { "name": "SurveyData", @@ -12554,7 +12325,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "SwitchAccountTypePostIn": { "name": "SwitchAccountTypePostIn", @@ -12652,7 +12423,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "SystemKeysReturn": { "name": "SystemKeysReturn", @@ -12768,7 +12539,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "TakeOverDeletedAddressData": { "name": "TakeOverDeletedAddressData", @@ -12827,7 +12598,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "TypeInfo": { "name": "TypeInfo", @@ -12868,7 +12639,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "U2fChallenge": { "name": "U2fChallenge", @@ -12911,7 +12682,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "U2fKey": { "name": "U2fKey", @@ -12963,7 +12734,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "U2fRegisteredDevice": { "name": "U2fRegisteredDevice", @@ -13031,7 +12802,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "U2fResponseData": { "name": "U2fResponseData", @@ -13081,7 +12852,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "UpdatePermissionKeyData": { "name": "UpdatePermissionKeyData", @@ -13143,7 +12914,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "UpdateSessionKeysPostIn": { "name": "UpdateSessionKeysPostIn", @@ -13177,7 +12948,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "UpgradePriceServiceData": { "name": "UpgradePriceServiceData", @@ -13229,7 +13000,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "UpgradePriceServiceReturn": { "name": "UpgradePriceServiceReturn", @@ -13400,7 +13171,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "User": { "name": "User", @@ -13615,7 +13386,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "UserAlarmInfo": { "name": "UserAlarmInfo", @@ -13694,7 +13465,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "UserAlarmInfoListType": { "name": "UserAlarmInfoListType", @@ -13728,7 +13499,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "UserAreaGroups": { "name": "UserAreaGroups", @@ -13762,7 +13533,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "UserAuthentication": { "name": "UserAuthentication", @@ -13816,7 +13587,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "UserDataDelete": { "name": "UserDataDelete", @@ -13868,7 +13639,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "UserExternalAuthInfo": { "name": "UserExternalAuthInfo", @@ -13938,7 +13709,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "UserGroupKeyDistribution": { "name": "UserGroupKeyDistribution", @@ -14006,7 +13777,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "UserGroupKeyRotationData": { "name": "UserGroupKeyRotationData", @@ -14142,7 +13913,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "UserGroupKeyRotationPostIn": { "name": "UserGroupKeyRotationPostIn", @@ -14176,7 +13947,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "UserGroupRoot": { "name": "UserGroupRoot", @@ -14257,7 +14028,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "VariableExternalAuthInfo": { "name": "VariableExternalAuthInfo", @@ -14361,7 +14132,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "VerifyRegistrationCodeData": { "name": "VerifyRegistrationCodeData", @@ -14402,7 +14173,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "Version": { "name": "Version", @@ -14473,7 +14244,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "VersionData": { "name": "VersionData", @@ -14532,7 +14303,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "VersionInfo": { "name": "VersionInfo", @@ -14657,7 +14428,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "VersionReturn": { "name": "VersionReturn", @@ -14691,7 +14462,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "WebauthnResponseData": { "name": "WebauthnResponseData", @@ -14750,7 +14521,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "WebsocketCounterData": { "name": "WebsocketCounterData", @@ -14793,7 +14564,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "WebsocketCounterValue": { "name": "WebsocketCounterValue", @@ -14834,7 +14605,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "WebsocketEntityData": { "name": "WebsocketEntityData", @@ -14886,7 +14657,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "WebsocketLeaderStatus": { "name": "WebsocketLeaderStatus", @@ -14918,7 +14689,7 @@ }, "associations": {}, "app": "sys", - "version": "116" + "version": "117" }, "WhitelabelChild": { "name": "WhitelabelChild", @@ -15033,7 +14804,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "WhitelabelChildrenRef": { "name": "WhitelabelChildrenRef", @@ -15067,7 +14838,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "WhitelabelConfig": { "name": "WhitelabelConfig", @@ -15202,7 +14973,7 @@ } }, "app": "sys", - "version": "116" + "version": "117" }, "WhitelabelParent": { "name": "WhitelabelParent", @@ -15246,6 +15017,6 @@ } }, "app": "sys", - "version": "116" + "version": "117" } } diff --git a/tuta-sdk/rust/sdk/src/util/test_utils.rs b/tuta-sdk/rust/sdk/src/util/test_utils.rs index 63d0a29156e1..42a31134c1d3 100644 --- a/tuta-sdk/rust/sdk/src/util/test_utils.rs +++ b/tuta-sdk/rust/sdk/src/util/test_utils.rs @@ -39,7 +39,6 @@ pub fn generate_random_group( _ownerGroup: None, _permissions: GeneratedId::test_random(), groupInfo: IdTupleGenerated::new(GeneratedId::test_random(), GeneratedId::test_random()), - administratedGroups: None, archives: vec![ArchiveType { _id: Some(CustomId::test_random()), active: ArchiveRef {