From e64f369b45cc7b7eafc5767cd87323b558943c86 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 27 Jul 2026 23:28:48 +0000 Subject: [PATCH] refactor: rename Objects to Resources with one file per resource Generate the resource classes into src/Resources under the Seam\Resources namespace instead of src/Objects under Seam\Objects. Each blueprint resource now gets a single file. The classes that only exist to type a nested object property of a resource (DeviceBattery, AcsSystemLocation, and so on) are emitted as local classes in the file of the resource that introduced them, rather than as 213 separate files. Since those local classes no longer live in a file matching their name, add a classmap autoload entry for src/Resources alongside the existing PSR-4 mapping. The generated classes themselves are unchanged: all 213 class bodies are byte-identical to the previous output. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_014yfWYVy7dgifgtsFPnrkDX --- codegen/layouts/{object.hbs => resource.hbs} | 5 +- codegen/layouts/seam-client.hbs | 2 +- .../lib/layouts/{object.ts => resource.ts} | 37 +- codegen/lib/layouts/seam-client.ts | 4 +- codegen/lib/resource-model.ts | 102 +- codegen/lib/routes.ts | 31 +- codegen/smith.ts | 2 +- composer.json | 3 +- src/Exceptions/ActionAttemptError.php | 2 +- src/Exceptions/ActionAttemptFailedError.php | 2 +- src/Exceptions/ActionAttemptTimeoutError.php | 2 +- src/Objects/AccessCode.php | 83 - .../AccessCodeDormakabaOracodeMetadata.php | 35 - src/Objects/AccessCodeErrors.php | 44 - src/Objects/AccessCodeFrom.php | 26 - src/Objects/AccessCodeModifiedFields.php | 24 - src/Objects/AccessCodePendingMutations.php | 33 - src/Objects/AccessCodeTo.php | 26 - src/Objects/AccessCodeWarnings.php | 31 - src/Objects/AccessGrant.php | 70 - src/Objects/AccessGrantErrors.php | 26 - src/Objects/AccessGrantFailedDevices.php | 24 - src/Objects/AccessGrantFrom.php | 24 - src/Objects/AccessGrantPendingMutations.php | 33 - .../AccessGrantRequestedAccessMethods.php | 31 - src/Objects/AccessGrantTo.php | 26 - src/Objects/AccessGrantWarnings.php | 39 - src/Objects/AccessMethod.php | 63 - src/Objects/AccessMethodErrors.php | 24 - src/Objects/AccessMethodFrom.php | 24 - src/Objects/AccessMethodPendingMutations.php | 31 - src/Objects/AccessMethodTo.php | 24 - src/Objects/AccessMethodWarnings.php | 26 - src/Objects/AcsAccessGroup.php | 65 - src/Objects/AcsAccessGroupAccessSchedule.php | 23 - src/Objects/AcsAccessGroupErrors.php | 24 - src/Objects/AcsAccessGroupFrom.php | 28 - .../AcsAccessGroupPendingMutations.php | 37 - src/Objects/AcsAccessGroupTo.php | 28 - src/Objects/AcsAccessGroupWarnings.php | 24 - .../AcsCredentialAssaAbloyVostioMetadata.php | 32 - src/Objects/AcsCredentialErrors.php | 24 - .../AcsCredentialVisionlineMetadata.php | 35 - src/Objects/AcsCredentialWarnings.php | 24 - src/Objects/AcsEncoderErrors.php | 24 - src/Objects/AcsEntrance.php | 115 - src/Objects/AcsEntranceActions.php | 19 - src/Objects/AcsEntranceAkilesMetadata.php | 30 - .../AcsEntranceAssaAbloyVostioMetadata.php | 29 - .../AcsEntranceAvigilonAltaMetadata.php | 33 - src/Objects/AcsEntranceBrivoMetadata.php | 24 - .../AcsEntranceDormakabaAmbianceMetadata.php | 17 - .../AcsEntranceDormakabaCommunityMetadata.php | 19 - src/Objects/AcsEntranceErrors.php | 24 - src/Objects/AcsEntranceHotekMetadata.php | 24 - src/Objects/AcsEntranceLatchMetadata.php | 26 - src/Objects/AcsEntranceProfiles.php | 24 - src/Objects/AcsEntranceSaltoKsMetadata.php | 35 - src/Objects/AcsEntranceSaltoSpaceMetadata.php | 31 - src/Objects/AcsEntranceVisionlineMetadata.php | 28 - src/Objects/AcsEntranceWarnings.php | 24 - src/Objects/AcsSystemErrors.php | 26 - src/Objects/AcsSystemLocation.php | 16 - src/Objects/AcsSystemVisionlineMetadata.php | 25 - src/Objects/AcsSystemWarnings.php | 27 - src/Objects/AcsUser.php | 88 - src/Objects/AcsUserAccessSchedule.php | 22 - src/Objects/AcsUserErrors.php | 24 - src/Objects/AcsUserFrom.php | 34 - src/Objects/AcsUserPendingMutations.php | 36 - src/Objects/AcsUserSaltoKsMetadata.php | 16 - src/Objects/AcsUserSaltoSpaceMetadata.php | 23 - src/Objects/AcsUserTo.php | 34 - src/Objects/AcsUserWarnings.php | 24 - src/Objects/ActionAttempt.php | 32 - .../ActionAttemptAcsCredentialOnEncoder.php | 35 - .../ActionAttemptAcsCredentialOnSeam.php | 93 - .../ActionAttemptAssaAbloyVostioMetadata.php | 32 - src/Objects/ActionAttemptError.php | 22 - src/Objects/ActionAttemptErrors.php | 24 - src/Objects/ActionAttemptFrom.php | 22 - src/Objects/ActionAttemptPendingMutations.php | 31 - src/Objects/ActionAttemptResult.php | 129 - src/Objects/ActionAttemptTo.php | 22 - .../ActionAttemptVisionlineMetadata.php | 43 - src/Objects/ActionAttemptWarnings.php | 24 - src/Objects/ConnectedAccount.php | 65 - src/Objects/ConnectedAccountErrors.php | 35 - .../ConnectedAccountSaltoKsMetadata.php | 22 - src/Objects/ConnectedAccountSites.php | 28 - .../ConnectedAccountUserIdentifier.php | 29 - src/Objects/ConnectedAccountWarnings.php | 30 - src/Objects/Device.php | 118 - src/Objects/DeviceAccelerometerZ.php | 19 - src/Objects/DeviceAccessoryKeypad.php | 24 - .../DeviceActiveThermostatSchedule.php | 45 - src/Objects/DeviceAkilesMetadata.php | 26 - src/Objects/DeviceAppearance.php | 16 - src/Objects/DeviceAqaraMetadata.php | 34 - ...viceAssaAbloyCredentialServiceMetadata.php | 26 - src/Objects/DeviceAssaAbloyVostioMetadata.php | 17 - src/Objects/DeviceAugustMetadata.php | 32 - src/Objects/DeviceAvailableClimatePresets.php | 54 - src/Objects/DeviceAvigilonAltaMetadata.php | 33 - src/Objects/DeviceBattery.php | 16 - src/Objects/DeviceBrivoMetadata.php | 22 - src/Objects/DeviceCodeConstraints.php | 24 - src/Objects/DeviceControlbywebMetadata.php | 25 - src/Objects/DeviceCurrentClimateSetting.php | 54 - src/Objects/DeviceDefaultClimateSetting.php | 54 - src/Objects/DeviceDeviceManufacturer.php | 24 - src/Objects/DeviceDeviceProvider.php | 26 - .../DeviceDormakabaOracodeMetadata.php | 38 - src/Objects/DeviceEcobeeMetadata.php | 22 - src/Objects/DeviceEndpoints.php | 22 - src/Objects/DeviceErrors.php | 31 - src/Objects/DeviceFeatures.php | 33 - src/Objects/DeviceFourSuitesMetadata.php | 24 - src/Objects/DeviceGenieMetadata.php | 22 - .../DeviceHoneywellResideoMetadata.php | 24 - src/Objects/DeviceHumidity.php | 19 - src/Objects/DeviceIglooMetadata.php | 24 - src/Objects/DeviceIgloohomeMetadata.php | 31 - src/Objects/DeviceKeynestMetadata.php | 60 - src/Objects/DeviceKeypadBattery.php | 16 - src/Objects/DeviceKisiMetadata.php | 26 - src/Objects/DeviceKorelockMetadata.php | 32 - src/Objects/DeviceKwiksetMetadata.php | 24 - src/Objects/DeviceLatestSensorValues.php | 38 - src/Objects/DeviceLocation.php | 24 - src/Objects/DeviceLocklyMetadata.php | 24 - src/Objects/DeviceMinutMetadata.php | 28 - src/Objects/DeviceModel.php | 36 - src/Objects/DeviceNestMetadata.php | 26 - src/Objects/DeviceNoiseawareMetadata.php | 28 - src/Objects/DeviceNukiMetadata.php | 28 - src/Objects/DeviceOfflineTimeFrameOptions.php | 39 - src/Objects/DeviceOmnitecMetadata.php | 32 - src/Objects/DeviceOnlineTimeFrameOptions.php | 39 - src/Objects/DevicePeriods.php | 22 - src/Objects/DevicePredefinedTimeSlots.php | 41 - src/Objects/DevicePressure.php | 19 - src/Objects/DeviceProperties.php | 405 --- src/Objects/DeviceRingMetadata.php | 22 - src/Objects/DeviceSaltoKsMetadata.php | 37 - src/Objects/DeviceSaltoMetadata.php | 34 - ...iceSaltoSpaceCredentialServiceMetadata.php | 17 - src/Objects/DeviceSchlageMetadata.php | 24 - src/Objects/DeviceSeamBridgeMetadata.php | 24 - src/Objects/DeviceSensiMetadata.php | 27 - src/Objects/DeviceSmartthingsMetadata.php | 27 - src/Objects/DeviceSound.php | 19 - src/Objects/DeviceTadoMetadata.php | 22 - src/Objects/DeviceTedeeMetadata.php | 32 - src/Objects/DeviceTemperature.php | 19 - src/Objects/DeviceTemperatureThreshold.php | 27 - src/Objects/DeviceThermostatDailyPrograms.php | 35 - src/Objects/DeviceThermostatWeeklyProgram.php | 35 - src/Objects/DeviceTimePairs.php | 24 - src/Objects/DeviceTtlockMetadata.php | 37 - src/Objects/DeviceTwoNMetadata.php | 22 - src/Objects/DeviceUltraloqMetadata.php | 26 - src/Objects/DeviceVisionlineMetadata.php | 16 - src/Objects/DeviceWarnings.php | 29 - src/Objects/DeviceWirelessKeypads.php | 22 - src/Objects/DeviceWyzeMetadata.php | 34 - src/Objects/EventAccessCodeErrors.php | 24 - src/Objects/EventAccessCodeWarnings.php | 24 - src/Objects/EventAcsSystemErrors.php | 24 - src/Objects/EventAcsSystemWarnings.php | 24 - src/Objects/EventChangedProperties.php | 24 - src/Objects/EventConnectedAccountErrors.php | 25 - src/Objects/EventConnectedAccountWarnings.php | 25 - src/Objects/EventDeviceErrors.php | 24 - src/Objects/EventDeviceWarnings.php | 24 - src/Objects/EventFrom.php | 26 - src/Objects/EventReason.php | 22 - src/Objects/EventRequestedMutations.php | 24 - src/Objects/EventTo.php | 26 - src/Objects/InstantKeyCustomization.php | 24 - src/Objects/Phone.php | 46 - ...honeAssaAbloyCredentialServiceMetadata.php | 26 - src/Objects/PhoneEndpoints.php | 22 - src/Objects/PhoneErrors.php | 24 - src/Objects/PhoneProperties.php | 34 - ...oneSaltoSpaceCredentialServiceMetadata.php | 17 - src/Objects/PhoneWarnings.php | 24 - src/Objects/SpaceCustomerData.php | 26 - src/Objects/SpaceGeolocation.php | 22 - src/Objects/ThermostatDailyProgramPeriods.php | 23 - src/Objects/ThermostatScheduleErrors.php | 24 - src/Objects/UnmanagedAccessCode.php | 61 - ...agedAccessCodeDormakabaOracodeMetadata.php | 35 - src/Objects/UnmanagedAccessCodeErrors.php | 45 - .../UnmanagedAccessCodeModifiedFields.php | 25 - src/Objects/UnmanagedAccessCodeWarnings.php | 32 - src/Objects/UnmanagedDevice.php | 102 - .../UnmanagedDeviceAccessoryKeypad.php | 25 - src/Objects/UnmanagedDeviceBattery.php | 16 - src/Objects/UnmanagedDeviceErrors.php | 31 - src/Objects/UnmanagedDeviceLocation.php | 24 - src/Objects/UnmanagedDeviceModel.php | 36 - src/Objects/UnmanagedDeviceProperties.php | 51 - src/Objects/UnmanagedDeviceWarnings.php | 29 - src/Objects/UserIdentityErrors.php | 28 - src/Objects/UserIdentityWarnings.php | 24 - .../WorkspaceConnectWebviewCustomization.php | 29 - src/Resources/AccessCode.php | 281 ++ src/Resources/AccessGrant.php | 252 ++ src/Resources/AccessMethod.php | 177 ++ src/Resources/AcsAccessGroup.php | 211 ++ src/{Objects => Resources}/AcsCredential.php | 105 +- src/{Objects => Resources}/AcsEncoder.php | 23 +- src/Resources/AcsEntrance.php | 457 ++++ src/{Objects => Resources}/AcsSystem.php | 84 +- src/Resources/AcsUser.php | 277 ++ src/Resources/ActionAttempt.php | 476 ++++ src/{Objects => Resources}/Batch.php | 2 +- src/{Objects => Resources}/ClientSession.php | 2 +- src/{Objects => Resources}/ConnectWebview.php | 2 +- src/Resources/ConnectedAccount.php | 194 ++ src/{Objects => Resources}/CustomerPortal.php | 2 +- src/Resources/Device.php | 2358 +++++++++++++++++ src/{Objects => Resources}/DeviceProvider.php | 2 +- src/{Objects => Resources}/Event.php | 279 +- src/{Objects => Resources}/InstantKey.php | 23 +- src/{Objects => Resources}/NoiseThreshold.php | 2 +- src/Resources/Phone.php | 175 ++ src/{Objects => Resources}/Space.php | 44 +- .../ThermostatDailyProgram.php | 22 +- .../ThermostatSchedule.php | 23 +- src/Resources/UnmanagedAccessCode.php | 186 ++ src/Resources/UnmanagedDevice.php | 293 ++ src/{Objects => Resources}/UserIdentity.php | 48 +- src/{Objects => Resources}/Webhook.php | 2 +- src/{Objects => Resources}/Workspace.php | 28 +- src/SeamClient.php | 58 +- 237 files changed, 6162 insertions(+), 6666 deletions(-) rename codegen/layouts/{object.hbs => resource.hbs} (87%) rename codegen/lib/layouts/{object.ts => resource.ts} (61%) delete mode 100644 src/Objects/AccessCode.php delete mode 100644 src/Objects/AccessCodeDormakabaOracodeMetadata.php delete mode 100644 src/Objects/AccessCodeErrors.php delete mode 100644 src/Objects/AccessCodeFrom.php delete mode 100644 src/Objects/AccessCodeModifiedFields.php delete mode 100644 src/Objects/AccessCodePendingMutations.php delete mode 100644 src/Objects/AccessCodeTo.php delete mode 100644 src/Objects/AccessCodeWarnings.php delete mode 100644 src/Objects/AccessGrant.php delete mode 100644 src/Objects/AccessGrantErrors.php delete mode 100644 src/Objects/AccessGrantFailedDevices.php delete mode 100644 src/Objects/AccessGrantFrom.php delete mode 100644 src/Objects/AccessGrantPendingMutations.php delete mode 100644 src/Objects/AccessGrantRequestedAccessMethods.php delete mode 100644 src/Objects/AccessGrantTo.php delete mode 100644 src/Objects/AccessGrantWarnings.php delete mode 100644 src/Objects/AccessMethod.php delete mode 100644 src/Objects/AccessMethodErrors.php delete mode 100644 src/Objects/AccessMethodFrom.php delete mode 100644 src/Objects/AccessMethodPendingMutations.php delete mode 100644 src/Objects/AccessMethodTo.php delete mode 100644 src/Objects/AccessMethodWarnings.php delete mode 100644 src/Objects/AcsAccessGroup.php delete mode 100644 src/Objects/AcsAccessGroupAccessSchedule.php delete mode 100644 src/Objects/AcsAccessGroupErrors.php delete mode 100644 src/Objects/AcsAccessGroupFrom.php delete mode 100644 src/Objects/AcsAccessGroupPendingMutations.php delete mode 100644 src/Objects/AcsAccessGroupTo.php delete mode 100644 src/Objects/AcsAccessGroupWarnings.php delete mode 100644 src/Objects/AcsCredentialAssaAbloyVostioMetadata.php delete mode 100644 src/Objects/AcsCredentialErrors.php delete mode 100644 src/Objects/AcsCredentialVisionlineMetadata.php delete mode 100644 src/Objects/AcsCredentialWarnings.php delete mode 100644 src/Objects/AcsEncoderErrors.php delete mode 100644 src/Objects/AcsEntrance.php delete mode 100644 src/Objects/AcsEntranceActions.php delete mode 100644 src/Objects/AcsEntranceAkilesMetadata.php delete mode 100644 src/Objects/AcsEntranceAssaAbloyVostioMetadata.php delete mode 100644 src/Objects/AcsEntranceAvigilonAltaMetadata.php delete mode 100644 src/Objects/AcsEntranceBrivoMetadata.php delete mode 100644 src/Objects/AcsEntranceDormakabaAmbianceMetadata.php delete mode 100644 src/Objects/AcsEntranceDormakabaCommunityMetadata.php delete mode 100644 src/Objects/AcsEntranceErrors.php delete mode 100644 src/Objects/AcsEntranceHotekMetadata.php delete mode 100644 src/Objects/AcsEntranceLatchMetadata.php delete mode 100644 src/Objects/AcsEntranceProfiles.php delete mode 100644 src/Objects/AcsEntranceSaltoKsMetadata.php delete mode 100644 src/Objects/AcsEntranceSaltoSpaceMetadata.php delete mode 100644 src/Objects/AcsEntranceVisionlineMetadata.php delete mode 100644 src/Objects/AcsEntranceWarnings.php delete mode 100644 src/Objects/AcsSystemErrors.php delete mode 100644 src/Objects/AcsSystemLocation.php delete mode 100644 src/Objects/AcsSystemVisionlineMetadata.php delete mode 100644 src/Objects/AcsSystemWarnings.php delete mode 100644 src/Objects/AcsUser.php delete mode 100644 src/Objects/AcsUserAccessSchedule.php delete mode 100644 src/Objects/AcsUserErrors.php delete mode 100644 src/Objects/AcsUserFrom.php delete mode 100644 src/Objects/AcsUserPendingMutations.php delete mode 100644 src/Objects/AcsUserSaltoKsMetadata.php delete mode 100644 src/Objects/AcsUserSaltoSpaceMetadata.php delete mode 100644 src/Objects/AcsUserTo.php delete mode 100644 src/Objects/AcsUserWarnings.php delete mode 100644 src/Objects/ActionAttempt.php delete mode 100644 src/Objects/ActionAttemptAcsCredentialOnEncoder.php delete mode 100644 src/Objects/ActionAttemptAcsCredentialOnSeam.php delete mode 100644 src/Objects/ActionAttemptAssaAbloyVostioMetadata.php delete mode 100644 src/Objects/ActionAttemptError.php delete mode 100644 src/Objects/ActionAttemptErrors.php delete mode 100644 src/Objects/ActionAttemptFrom.php delete mode 100644 src/Objects/ActionAttemptPendingMutations.php delete mode 100644 src/Objects/ActionAttemptResult.php delete mode 100644 src/Objects/ActionAttemptTo.php delete mode 100644 src/Objects/ActionAttemptVisionlineMetadata.php delete mode 100644 src/Objects/ActionAttemptWarnings.php delete mode 100644 src/Objects/ConnectedAccount.php delete mode 100644 src/Objects/ConnectedAccountErrors.php delete mode 100644 src/Objects/ConnectedAccountSaltoKsMetadata.php delete mode 100644 src/Objects/ConnectedAccountSites.php delete mode 100644 src/Objects/ConnectedAccountUserIdentifier.php delete mode 100644 src/Objects/ConnectedAccountWarnings.php delete mode 100644 src/Objects/Device.php delete mode 100644 src/Objects/DeviceAccelerometerZ.php delete mode 100644 src/Objects/DeviceAccessoryKeypad.php delete mode 100644 src/Objects/DeviceActiveThermostatSchedule.php delete mode 100644 src/Objects/DeviceAkilesMetadata.php delete mode 100644 src/Objects/DeviceAppearance.php delete mode 100644 src/Objects/DeviceAqaraMetadata.php delete mode 100644 src/Objects/DeviceAssaAbloyCredentialServiceMetadata.php delete mode 100644 src/Objects/DeviceAssaAbloyVostioMetadata.php delete mode 100644 src/Objects/DeviceAugustMetadata.php delete mode 100644 src/Objects/DeviceAvailableClimatePresets.php delete mode 100644 src/Objects/DeviceAvigilonAltaMetadata.php delete mode 100644 src/Objects/DeviceBattery.php delete mode 100644 src/Objects/DeviceBrivoMetadata.php delete mode 100644 src/Objects/DeviceCodeConstraints.php delete mode 100644 src/Objects/DeviceControlbywebMetadata.php delete mode 100644 src/Objects/DeviceCurrentClimateSetting.php delete mode 100644 src/Objects/DeviceDefaultClimateSetting.php delete mode 100644 src/Objects/DeviceDeviceManufacturer.php delete mode 100644 src/Objects/DeviceDeviceProvider.php delete mode 100644 src/Objects/DeviceDormakabaOracodeMetadata.php delete mode 100644 src/Objects/DeviceEcobeeMetadata.php delete mode 100644 src/Objects/DeviceEndpoints.php delete mode 100644 src/Objects/DeviceErrors.php delete mode 100644 src/Objects/DeviceFeatures.php delete mode 100644 src/Objects/DeviceFourSuitesMetadata.php delete mode 100644 src/Objects/DeviceGenieMetadata.php delete mode 100644 src/Objects/DeviceHoneywellResideoMetadata.php delete mode 100644 src/Objects/DeviceHumidity.php delete mode 100644 src/Objects/DeviceIglooMetadata.php delete mode 100644 src/Objects/DeviceIgloohomeMetadata.php delete mode 100644 src/Objects/DeviceKeynestMetadata.php delete mode 100644 src/Objects/DeviceKeypadBattery.php delete mode 100644 src/Objects/DeviceKisiMetadata.php delete mode 100644 src/Objects/DeviceKorelockMetadata.php delete mode 100644 src/Objects/DeviceKwiksetMetadata.php delete mode 100644 src/Objects/DeviceLatestSensorValues.php delete mode 100644 src/Objects/DeviceLocation.php delete mode 100644 src/Objects/DeviceLocklyMetadata.php delete mode 100644 src/Objects/DeviceMinutMetadata.php delete mode 100644 src/Objects/DeviceModel.php delete mode 100644 src/Objects/DeviceNestMetadata.php delete mode 100644 src/Objects/DeviceNoiseawareMetadata.php delete mode 100644 src/Objects/DeviceNukiMetadata.php delete mode 100644 src/Objects/DeviceOfflineTimeFrameOptions.php delete mode 100644 src/Objects/DeviceOmnitecMetadata.php delete mode 100644 src/Objects/DeviceOnlineTimeFrameOptions.php delete mode 100644 src/Objects/DevicePeriods.php delete mode 100644 src/Objects/DevicePredefinedTimeSlots.php delete mode 100644 src/Objects/DevicePressure.php delete mode 100644 src/Objects/DeviceProperties.php delete mode 100644 src/Objects/DeviceRingMetadata.php delete mode 100644 src/Objects/DeviceSaltoKsMetadata.php delete mode 100644 src/Objects/DeviceSaltoMetadata.php delete mode 100644 src/Objects/DeviceSaltoSpaceCredentialServiceMetadata.php delete mode 100644 src/Objects/DeviceSchlageMetadata.php delete mode 100644 src/Objects/DeviceSeamBridgeMetadata.php delete mode 100644 src/Objects/DeviceSensiMetadata.php delete mode 100644 src/Objects/DeviceSmartthingsMetadata.php delete mode 100644 src/Objects/DeviceSound.php delete mode 100644 src/Objects/DeviceTadoMetadata.php delete mode 100644 src/Objects/DeviceTedeeMetadata.php delete mode 100644 src/Objects/DeviceTemperature.php delete mode 100644 src/Objects/DeviceTemperatureThreshold.php delete mode 100644 src/Objects/DeviceThermostatDailyPrograms.php delete mode 100644 src/Objects/DeviceThermostatWeeklyProgram.php delete mode 100644 src/Objects/DeviceTimePairs.php delete mode 100644 src/Objects/DeviceTtlockMetadata.php delete mode 100644 src/Objects/DeviceTwoNMetadata.php delete mode 100644 src/Objects/DeviceUltraloqMetadata.php delete mode 100644 src/Objects/DeviceVisionlineMetadata.php delete mode 100644 src/Objects/DeviceWarnings.php delete mode 100644 src/Objects/DeviceWirelessKeypads.php delete mode 100644 src/Objects/DeviceWyzeMetadata.php delete mode 100644 src/Objects/EventAccessCodeErrors.php delete mode 100644 src/Objects/EventAccessCodeWarnings.php delete mode 100644 src/Objects/EventAcsSystemErrors.php delete mode 100644 src/Objects/EventAcsSystemWarnings.php delete mode 100644 src/Objects/EventChangedProperties.php delete mode 100644 src/Objects/EventConnectedAccountErrors.php delete mode 100644 src/Objects/EventConnectedAccountWarnings.php delete mode 100644 src/Objects/EventDeviceErrors.php delete mode 100644 src/Objects/EventDeviceWarnings.php delete mode 100644 src/Objects/EventFrom.php delete mode 100644 src/Objects/EventReason.php delete mode 100644 src/Objects/EventRequestedMutations.php delete mode 100644 src/Objects/EventTo.php delete mode 100644 src/Objects/InstantKeyCustomization.php delete mode 100644 src/Objects/Phone.php delete mode 100644 src/Objects/PhoneAssaAbloyCredentialServiceMetadata.php delete mode 100644 src/Objects/PhoneEndpoints.php delete mode 100644 src/Objects/PhoneErrors.php delete mode 100644 src/Objects/PhoneProperties.php delete mode 100644 src/Objects/PhoneSaltoSpaceCredentialServiceMetadata.php delete mode 100644 src/Objects/PhoneWarnings.php delete mode 100644 src/Objects/SpaceCustomerData.php delete mode 100644 src/Objects/SpaceGeolocation.php delete mode 100644 src/Objects/ThermostatDailyProgramPeriods.php delete mode 100644 src/Objects/ThermostatScheduleErrors.php delete mode 100644 src/Objects/UnmanagedAccessCode.php delete mode 100644 src/Objects/UnmanagedAccessCodeDormakabaOracodeMetadata.php delete mode 100644 src/Objects/UnmanagedAccessCodeErrors.php delete mode 100644 src/Objects/UnmanagedAccessCodeModifiedFields.php delete mode 100644 src/Objects/UnmanagedAccessCodeWarnings.php delete mode 100644 src/Objects/UnmanagedDevice.php delete mode 100644 src/Objects/UnmanagedDeviceAccessoryKeypad.php delete mode 100644 src/Objects/UnmanagedDeviceBattery.php delete mode 100644 src/Objects/UnmanagedDeviceErrors.php delete mode 100644 src/Objects/UnmanagedDeviceLocation.php delete mode 100644 src/Objects/UnmanagedDeviceModel.php delete mode 100644 src/Objects/UnmanagedDeviceProperties.php delete mode 100644 src/Objects/UnmanagedDeviceWarnings.php delete mode 100644 src/Objects/UserIdentityErrors.php delete mode 100644 src/Objects/UserIdentityWarnings.php delete mode 100644 src/Objects/WorkspaceConnectWebviewCustomization.php create mode 100644 src/Resources/AccessCode.php create mode 100644 src/Resources/AccessGrant.php create mode 100644 src/Resources/AccessMethod.php create mode 100644 src/Resources/AcsAccessGroup.php rename src/{Objects => Resources}/AcsCredential.php (55%) rename src/{Objects => Resources}/AcsEncoder.php (65%) create mode 100644 src/Resources/AcsEntrance.php rename src/{Objects => Resources}/AcsSystem.php (56%) create mode 100644 src/Resources/AcsUser.php create mode 100644 src/Resources/ActionAttempt.php rename src/{Objects => Resources}/Batch.php (98%) rename src/{Objects => Resources}/ClientSession.php (98%) rename src/{Objects => Resources}/ConnectWebview.php (98%) create mode 100644 src/Resources/ConnectedAccount.php rename src/{Objects => Resources}/CustomerPortal.php (96%) create mode 100644 src/Resources/Device.php rename src/{Objects => Resources}/DeviceProvider.php (99%) rename src/{Objects => Resources}/Event.php (62%) rename src/{Objects => Resources}/InstantKey.php (69%) rename src/{Objects => Resources}/NoiseThreshold.php (97%) create mode 100644 src/Resources/Phone.php rename src/{Objects => Resources}/Space.php (56%) rename src/{Objects => Resources}/ThermostatDailyProgram.php (64%) rename src/{Objects => Resources}/ThermostatSchedule.php (72%) create mode 100644 src/Resources/UnmanagedAccessCode.php create mode 100644 src/Resources/UnmanagedDevice.php rename src/{Objects => Resources}/UserIdentity.php (54%) rename src/{Objects => Resources}/Webhook.php (95%) rename src/{Objects => Resources}/Workspace.php (63%) diff --git a/codegen/layouts/object.hbs b/codegen/layouts/resource.hbs similarity index 87% rename from codegen/layouts/object.hbs rename to codegen/layouts/resource.hbs index 4bc4db92..e1643b8e 100644 --- a/codegen/layouts/object.hbs +++ b/codegen/layouts/resource.hbs @@ -1,7 +1,8 @@ { +export interface ResourceLayoutContext { + classes: ClassLayoutContext[] +} + +const generateFromJsonProp = (property: ResourceClassProperty): string => { const { name } = property switch (property.kind) { @@ -31,9 +38,7 @@ const generateFromJsonProp = (property: ResourceObjectProperty): string => { } } -const generateConstructorParam = ( - property: ResourceObjectProperty, -): string => { +const generateConstructorParam = (property: ResourceClassProperty): string => { switch (property.kind) { case 'objectReference': return `public ${property.referenceName}|null $${property.name},` @@ -49,9 +54,9 @@ const generateConstructorParam = ( } } -export const setObjectLayoutContext = ( - schema: ResourceObjectSchema, -): ObjectLayoutContext => { +const getClassLayoutContext = ( + schema: ResourceClassSchema, +): ClassLayoutContext => { const sorted = [...schema.properties].sort((a, b) => a.name.localeCompare(b.name), ) @@ -62,3 +67,11 @@ export const setObjectLayoutContext = ( constructorParams: sorted.map(generateConstructorParam), } } + +export const setResourceLayoutContext = ( + resource: ResourceSchema, +): ResourceLayoutContext => ({ + classes: [resource.resourceClass, ...resource.localClasses].map( + getClassLayoutContext, + ), +}) diff --git a/codegen/lib/layouts/seam-client.ts b/codegen/lib/layouts/seam-client.ts index 03514c41..95296a48 100644 --- a/codegen/lib/layouts/seam-client.ts +++ b/codegen/lib/layouts/seam-client.ts @@ -83,9 +83,9 @@ const getMethodLayoutContext = ( export const setSeamClientLayoutContext = ( clients: PhpClient[], - baseResourceObjectNames: string[], + resourceNames: string[], ): SeamClientLayoutContext => ({ - useStatements: baseResourceObjectNames, + useStatements: resourceNames, parentClients: clients .filter((c) => c.isParentClient) .map((c) => ({ clientName: c.clientName, namespace: c.namespace })), diff --git a/codegen/lib/resource-model.ts b/codegen/lib/resource-model.ts index d09fe761..058a6899 100644 --- a/codegen/lib/resource-model.ts +++ b/codegen/lib/resource-model.ts @@ -1,9 +1,11 @@ -// Builds the resource object class model for src/Objects from the blueprint. +// Builds the resource class model for src/Resources from the blueprint. // -// Each blueprint resource becomes a PHP class. Nested object properties and -// lists of objects are split into their own classes named after the base -// resource and the property, e.g. the device battery property becomes -// DeviceBattery. Discriminated unions (events, action attempts, and +// Each blueprint resource becomes a PHP class in its own file. Nested object +// properties and lists of objects are split into their own classes, named +// after the base resource and the property, e.g. the device battery property +// becomes DeviceBattery. Those classes only exist to type a resource +// property, so they are emitted as local classes in the file of the resource +// that introduced them. Discriminated unions (events, action attempts, and // discriminated object lists) are flattened into a single class with the // union of the variant properties. @@ -12,24 +14,28 @@ import { pascalCase } from 'change-case' import { getPhpType } from './map-php-type.js' -export type ResourceObjectProperty = +export type ResourceClassProperty = | { name: string; kind: 'value'; phpType: string } | { name: string; kind: 'objectReference'; referenceName: string } | { name: string; kind: 'listReference'; referenceName: string } -export interface ResourceObjectSchema { +export interface ResourceClassSchema { name: string - properties: ResourceObjectProperty[] + properties: ResourceClassProperty[] } -export interface ResourceObjectModel { - baseResourceNames: string[] - schemas: ResourceObjectSchema[] +export interface ResourceSchema { + name: string + resourceClass: ResourceClassSchema + localClasses: ResourceClassSchema[] +} + +export interface ResourceModel { + resourceNames: string[] + resources: ResourceSchema[] } -export const createResourceObjectModel = ( - blueprint: Blueprint, -): ResourceObjectModel => { +export const createResourceModel = (blueprint: Blueprint): ResourceModel => { const baseResources = new Map() for (const resource of blueprint.resources) { @@ -57,50 +63,74 @@ export const createResourceObjectModel = ( ) } - const schemas = new Map() + const classes = new Map() + const localClassNames = new Map() - const addSchema = ( + let currentResourceName = '' + + const addClass = ( name: string, properties: Property[], baseName: string, ): void => { - if (schemas.has(name)) return - const schema: ResourceObjectSchema = { name, properties: [] } - schemas.set(name, schema) + if (classes.has(name)) return + const schema: ResourceClassSchema = { name, properties: [] } + classes.set(name, schema) + if (name !== currentResourceName) { + localClassNames.get(currentResourceName)?.push(name) + } schema.properties = properties.map((property) => - createResourceObjectProperty(property, baseName, addSchema), + createResourceClassProperty(property, baseName, addClass), ) } const baseResourceTypes = [...baseResources.keys()].sort() - for (const resourceType of baseResourceTypes) { - addSchema( - pascalCase(resourceType), - baseResources.get(resourceType) ?? [], - resourceType, - ) - } + const resources = baseResourceTypes.map((resourceType) => { + const name = pascalCase(resourceType) + currentResourceName = name + localClassNames.set(name, []) + addClass(name, baseResources.get(resourceType) ?? [], resourceType) + + const resourceClass = classes.get(name) + if (resourceClass == null) { + throw new Error( + `Missing class for resource ${resourceType}: ${name} is already used by a property class of another resource`, + ) + } + + return { + name, + resourceClass, + localClasses: (localClassNames.get(name) ?? []) + .map((localClassName) => { + const localClass = classes.get(localClassName) + if (localClass == null) { + throw new Error(`Missing local class ${localClassName}`) + } + return localClass + }) + .sort((a, b) => a.name.localeCompare(b.name)), + } + }) return { - baseResourceNames: baseResourceTypes.map((resourceType) => - pascalCase(resourceType), - ), - schemas: [...schemas.values()], + resourceNames: resources.map((resource) => resource.name), + resources, } } -const createResourceObjectProperty = ( +const createResourceClassProperty = ( property: Property, baseName: string, - addSchema: (name: string, properties: Property[], baseName: string) => void, -): ResourceObjectProperty => { + addClass: (name: string, properties: Property[], baseName: string) => void, +): ResourceClassProperty => { const referenceName = pascalCase(`${baseName}_${property.name}`) if (property.format === 'object') { const { properties } = property if (properties.length > 0) { - addSchema(referenceName, properties, baseName) + addClass(referenceName, properties, baseName) return { name: property.name, kind: 'objectReference', referenceName } } } @@ -116,7 +146,7 @@ const createResourceObjectProperty = ( : [] if (itemProperties.length > 0) { - addSchema(referenceName, itemProperties, baseName) + addClass(referenceName, itemProperties, baseName) return { name: property.name, kind: 'listReference', referenceName } } } diff --git a/codegen/lib/routes.ts b/codegen/lib/routes.ts index 4e7e359d..69622b02 100644 --- a/codegen/lib/routes.ts +++ b/codegen/lib/routes.ts @@ -1,7 +1,7 @@ // The Metalsmith plugin that generates the PHP SDK source files. // // The blueprint from @seamapi/blueprint is the only input: it drives the -// resource object classes written to src/Objects, and the resource client +// resource classes written to src/Resources, and the resource client // classes serialized into src/SeamClient.php. import type { Blueprint, Endpoint } from '@seamapi/blueprint' @@ -9,16 +9,16 @@ import { pascalCase } from 'change-case' import type Metalsmith from 'metalsmith' import type { PhpClient, PhpClientMethod } from './class-model.js' -import { setObjectLayoutContext } from './layouts/object.js' +import { setResourceLayoutContext } from './layouts/resource.js' import { setSeamClientLayoutContext } from './layouts/seam-client.js' import { getPhpType } from './map-php-type.js' -import { createResourceObjectModel } from './resource-model.js' +import { createResourceModel } from './resource-model.js' interface Metadata { blueprint: Blueprint } -const objectsPath = 'src/Objects' +const resourcesPath = 'src/Resources' const seamClientPath = 'src/SeamClient.php' export const routes = ( @@ -28,15 +28,16 @@ export const routes = ( const metadata = metalsmith.metadata() as Metadata const { blueprint } = metadata - // Resource object classes, one file per (deeply extracted) schema. The base - // resource names drive the SeamClient use statements. - const { baseResourceNames, schemas } = createResourceObjectModel(blueprint) + // Resource classes, one file per resource holding the resource class and + // the local classes for its object properties. The resource names drive the + // SeamClient use statements. + const { resourceNames, resources } = createResourceModel(blueprint) - for (const schema of schemas) { - files[`${objectsPath}/${schema.name}.php`] = { + for (const resource of resources) { + files[`${resourcesPath}/${resource.name}.php`] = { contents: Buffer.from('\n'), - layout: 'object.hbs', - ...setObjectLayoutContext(schema), + layout: 'resource.hbs', + ...setResourceLayoutContext(resource), } } @@ -83,7 +84,7 @@ export const routes = ( files[seamClientPath] = { contents: Buffer.from('\n'), layout: 'seam-client.hbs', - ...setSeamClientLayoutContext([...classMap.values()], baseResourceNames), + ...setSeamClientLayoutContext([...classMap.values()], resourceNames), } } @@ -93,9 +94,9 @@ const createClientMethod = (endpoint: Endpoint): PhpClientMethod => { const responseKey = response.responseType === 'void' ? '' : response.responseKey // Batch responses have no single resource type; they deserialize into the - // Batch resource object. A response whose resource type the blueprint - // cannot resolve ('unknown') has no resource object class to deserialize - // into, so the method is generated as returning void. + // Batch resource. A response whose resource type the blueprint cannot + // resolve ('unknown') has no resource class to deserialize into, so the + // method is generated as returning void. const resourceType = response.responseType === 'void' ? '' diff --git a/codegen/smith.ts b/codegen/smith.ts index cb6ae8c2..0349adf7 100644 --- a/codegen/smith.ts +++ b/codegen/smith.ts @@ -11,7 +11,7 @@ import { helpers, routes } from './lib/index.js' const rootDir = dirname(fileURLToPath(import.meta.url)) -await Promise.all([deleteAsync(['./src/Objects', './src/SeamClient.php'])]) +await Promise.all([deleteAsync(['./src/Resources', './src/SeamClient.php'])]) const partials = await getHandlebarsPartials(`${rootDir}/layouts/partials`) diff --git a/composer.json b/composer.json index 3a058de4..b8d0b9b4 100644 --- a/composer.json +++ b/composer.json @@ -8,7 +8,8 @@ "psr-4": { "Seam\\": ["src/", "src/Exceptions/"], "Tests\\": "tests/" - } + }, + "classmap": ["src/Resources/"] }, "authors": [ { diff --git a/src/Exceptions/ActionAttemptError.php b/src/Exceptions/ActionAttemptError.php index 2581e3b7..26530d06 100644 --- a/src/Exceptions/ActionAttemptError.php +++ b/src/Exceptions/ActionAttemptError.php @@ -2,7 +2,7 @@ namespace Seam; -use Seam\Objects\ActionAttempt; +use Seam\Resources\ActionAttempt; class ActionAttemptError extends \Exception { diff --git a/src/Exceptions/ActionAttemptFailedError.php b/src/Exceptions/ActionAttemptFailedError.php index cca53385..59e307fe 100644 --- a/src/Exceptions/ActionAttemptFailedError.php +++ b/src/Exceptions/ActionAttemptFailedError.php @@ -2,7 +2,7 @@ namespace Seam; -use Seam\Objects\ActionAttempt; +use Seam\Resources\ActionAttempt; class ActionAttemptFailedError extends ActionAttemptError { diff --git a/src/Exceptions/ActionAttemptTimeoutError.php b/src/Exceptions/ActionAttemptTimeoutError.php index 9ae2a7b7..d0b6a343 100644 --- a/src/Exceptions/ActionAttemptTimeoutError.php +++ b/src/Exceptions/ActionAttemptTimeoutError.php @@ -2,7 +2,7 @@ namespace Seam; -use Seam\Objects\ActionAttempt; +use Seam\Resources\ActionAttempt; class ActionAttemptTimeoutError extends ActionAttemptError { diff --git a/src/Objects/AccessCode.php b/src/Objects/AccessCode.php deleted file mode 100644 index cd129b37..00000000 --- a/src/Objects/AccessCode.php +++ /dev/null @@ -1,83 +0,0 @@ -access_code_id ?? null, - code: $json->code ?? null, - common_code_key: $json->common_code_key ?? null, - created_at: $json->created_at ?? null, - device_id: $json->device_id ?? null, - dormakaba_oracode_metadata: isset($json->dormakaba_oracode_metadata) - ? AccessCodeDormakabaOracodeMetadata::from_json( - $json->dormakaba_oracode_metadata, - ) - : null, - ends_at: $json->ends_at ?? null, - errors: array_map( - fn($e) => AccessCodeErrors::from_json($e), - $json->errors ?? [], - ), - is_backup: $json->is_backup ?? null, - is_backup_access_code_available: $json->is_backup_access_code_available ?? - null, - is_external_modification_allowed: $json->is_external_modification_allowed ?? - null, - is_managed: $json->is_managed ?? null, - is_offline_access_code: $json->is_offline_access_code ?? null, - is_one_time_use: $json->is_one_time_use ?? null, - is_scheduled_on_device: $json->is_scheduled_on_device ?? null, - is_waiting_for_code_assignment: $json->is_waiting_for_code_assignment ?? - null, - name: $json->name ?? null, - pending_mutations: array_map( - fn($p) => AccessCodePendingMutations::from_json($p), - $json->pending_mutations ?? [], - ), - pulled_backup_access_code_id: $json->pulled_backup_access_code_id ?? - null, - starts_at: $json->starts_at ?? null, - status: $json->status ?? null, - type: $json->type ?? null, - warnings: array_map( - fn($w) => AccessCodeWarnings::from_json($w), - $json->warnings ?? [], - ), - workspace_id: $json->workspace_id ?? null, - ); - } - - public function __construct( - public string|null $access_code_id, - public string|null $code, - public string|null $common_code_key, - public string|null $created_at, - public string|null $device_id, - public AccessCodeDormakabaOracodeMetadata|null $dormakaba_oracode_metadata, - public string|null $ends_at, - public array $errors, - public bool|null $is_backup, - public bool|null $is_backup_access_code_available, - public bool|null $is_external_modification_allowed, - public bool|null $is_managed, - public bool|null $is_offline_access_code, - public bool|null $is_one_time_use, - public bool|null $is_scheduled_on_device, - public bool|null $is_waiting_for_code_assignment, - public string|null $name, - public array $pending_mutations, - public string|null $pulled_backup_access_code_id, - public string|null $starts_at, - public string|null $status, - public string|null $type, - public array $warnings, - public string|null $workspace_id, - ) {} -} diff --git a/src/Objects/AccessCodeDormakabaOracodeMetadata.php b/src/Objects/AccessCodeDormakabaOracodeMetadata.php deleted file mode 100644 index e562b3a2..00000000 --- a/src/Objects/AccessCodeDormakabaOracodeMetadata.php +++ /dev/null @@ -1,35 +0,0 @@ -is_cancellable ?? null, - is_early_checkin_able: $json->is_early_checkin_able ?? null, - is_extendable: $json->is_extendable ?? null, - is_overridable: $json->is_overridable ?? null, - site_name: $json->site_name ?? null, - stay_id: $json->stay_id ?? null, - user_level_id: $json->user_level_id ?? null, - user_level_name: $json->user_level_name ?? null, - ); - } - - public function __construct( - public bool|null $is_cancellable, - public bool|null $is_early_checkin_able, - public bool|null $is_extendable, - public bool|null $is_overridable, - public string|null $site_name, - public float|null $stay_id, - public string|null $user_level_id, - public string|null $user_level_name, - ) {} -} diff --git a/src/Objects/AccessCodeErrors.php b/src/Objects/AccessCodeErrors.php deleted file mode 100644 index eb11d921..00000000 --- a/src/Objects/AccessCodeErrors.php +++ /dev/null @@ -1,44 +0,0 @@ -change_type ?? null, - created_at: $json->created_at ?? null, - error_code: $json->error_code ?? null, - is_access_code_error: $json->is_access_code_error ?? null, - is_bridge_error: $json->is_bridge_error ?? null, - is_connected_account_error: $json->is_connected_account_error ?? - null, - is_device_error: $json->is_device_error ?? null, - managed_access_code_id: $json->managed_access_code_id ?? null, - message: $json->message ?? null, - modified_fields: array_map( - fn($m) => AccessCodeModifiedFields::from_json($m), - $json->modified_fields ?? [], - ), - unmanaged_access_code_id: $json->unmanaged_access_code_id ?? null, - ); - } - - public function __construct( - public string|null $change_type, - public string|null $created_at, - public string|null $error_code, - public bool|null $is_access_code_error, - public bool|null $is_bridge_error, - public bool|null $is_connected_account_error, - public bool|null $is_device_error, - public string|null $managed_access_code_id, - public string|null $message, - public array $modified_fields, - public string|null $unmanaged_access_code_id, - ) {} -} diff --git a/src/Objects/AccessCodeFrom.php b/src/Objects/AccessCodeFrom.php deleted file mode 100644 index 05eb0844..00000000 --- a/src/Objects/AccessCodeFrom.php +++ /dev/null @@ -1,26 +0,0 @@ -code ?? null, - ends_at: $json->ends_at ?? null, - name: $json->name ?? null, - starts_at: $json->starts_at ?? null, - ); - } - - public function __construct( - public string|null $code, - public string|null $ends_at, - public string|null $name, - public string|null $starts_at, - ) {} -} diff --git a/src/Objects/AccessCodeModifiedFields.php b/src/Objects/AccessCodeModifiedFields.php deleted file mode 100644 index 4e6cb14c..00000000 --- a/src/Objects/AccessCodeModifiedFields.php +++ /dev/null @@ -1,24 +0,0 @@ -field ?? null, - from: $json->from ?? null, - to: $json->to ?? null, - ); - } - - public function __construct( - public string|null $field, - public string|null $from, - public string|null $to, - ) {} -} diff --git a/src/Objects/AccessCodePendingMutations.php b/src/Objects/AccessCodePendingMutations.php deleted file mode 100644 index e12cadde..00000000 --- a/src/Objects/AccessCodePendingMutations.php +++ /dev/null @@ -1,33 +0,0 @@ -created_at ?? null, - from: isset($json->from) - ? AccessCodeFrom::from_json($json->from) - : null, - message: $json->message ?? null, - mutation_code: $json->mutation_code ?? null, - scheduled_at: $json->scheduled_at ?? null, - to: isset($json->to) ? AccessCodeTo::from_json($json->to) : null, - ); - } - - public function __construct( - public string|null $created_at, - public AccessCodeFrom|null $from, - public string|null $message, - public string|null $mutation_code, - public string|null $scheduled_at, - public AccessCodeTo|null $to, - ) {} -} diff --git a/src/Objects/AccessCodeTo.php b/src/Objects/AccessCodeTo.php deleted file mode 100644 index 6d860fac..00000000 --- a/src/Objects/AccessCodeTo.php +++ /dev/null @@ -1,26 +0,0 @@ -code ?? null, - ends_at: $json->ends_at ?? null, - name: $json->name ?? null, - starts_at: $json->starts_at ?? null, - ); - } - - public function __construct( - public string|null $code, - public string|null $ends_at, - public string|null $name, - public string|null $starts_at, - ) {} -} diff --git a/src/Objects/AccessCodeWarnings.php b/src/Objects/AccessCodeWarnings.php deleted file mode 100644 index 83d249e3..00000000 --- a/src/Objects/AccessCodeWarnings.php +++ /dev/null @@ -1,31 +0,0 @@ -change_type ?? null, - created_at: $json->created_at ?? null, - message: $json->message ?? null, - modified_fields: array_map( - fn($m) => AccessCodeModifiedFields::from_json($m), - $json->modified_fields ?? [], - ), - warning_code: $json->warning_code ?? null, - ); - } - - public function __construct( - public string|null $change_type, - public string|null $created_at, - public string|null $message, - public array $modified_fields, - public string|null $warning_code, - ) {} -} diff --git a/src/Objects/AccessGrant.php b/src/Objects/AccessGrant.php deleted file mode 100644 index 18937da2..00000000 --- a/src/Objects/AccessGrant.php +++ /dev/null @@ -1,70 +0,0 @@ -access_grant_id ?? null, - access_grant_key: $json->access_grant_key ?? null, - access_method_ids: $json->access_method_ids ?? null, - client_session_token: $json->client_session_token ?? null, - created_at: $json->created_at ?? null, - customization_profile_id: $json->customization_profile_id ?? null, - display_name: $json->display_name ?? null, - ends_at: $json->ends_at ?? null, - errors: array_map( - fn($e) => AccessGrantErrors::from_json($e), - $json->errors ?? [], - ), - instant_key_url: $json->instant_key_url ?? null, - location_ids: $json->location_ids ?? null, - name: $json->name ?? null, - pending_mutations: array_map( - fn($p) => AccessGrantPendingMutations::from_json($p), - $json->pending_mutations ?? [], - ), - requested_access_methods: array_map( - fn($r) => AccessGrantRequestedAccessMethods::from_json($r), - $json->requested_access_methods ?? [], - ), - reservation_key: $json->reservation_key ?? null, - space_ids: $json->space_ids ?? null, - starts_at: $json->starts_at ?? null, - user_identity_id: $json->user_identity_id ?? null, - warnings: array_map( - fn($w) => AccessGrantWarnings::from_json($w), - $json->warnings ?? [], - ), - workspace_id: $json->workspace_id ?? null, - ); - } - - public function __construct( - public string|null $access_grant_id, - public string|null $access_grant_key, - public array|null $access_method_ids, - public string|null $client_session_token, - public string|null $created_at, - public string|null $customization_profile_id, - public string|null $display_name, - public string|null $ends_at, - public array $errors, - public string|null $instant_key_url, - public array|null $location_ids, - public string|null $name, - public array $pending_mutations, - public array $requested_access_methods, - public string|null $reservation_key, - public array|null $space_ids, - public string|null $starts_at, - public string|null $user_identity_id, - public array $warnings, - public string|null $workspace_id, - ) {} -} diff --git a/src/Objects/AccessGrantErrors.php b/src/Objects/AccessGrantErrors.php deleted file mode 100644 index 3cd4362a..00000000 --- a/src/Objects/AccessGrantErrors.php +++ /dev/null @@ -1,26 +0,0 @@ -created_at ?? null, - error_code: $json->error_code ?? null, - message: $json->message ?? null, - missing_device_ids: $json->missing_device_ids ?? null, - ); - } - - public function __construct( - public string|null $created_at, - public string|null $error_code, - public string|null $message, - public array|null $missing_device_ids, - ) {} -} diff --git a/src/Objects/AccessGrantFailedDevices.php b/src/Objects/AccessGrantFailedDevices.php deleted file mode 100644 index 92362630..00000000 --- a/src/Objects/AccessGrantFailedDevices.php +++ /dev/null @@ -1,24 +0,0 @@ -device_id ?? null, - error_code: $json->error_code ?? null, - message: $json->message ?? null, - ); - } - - public function __construct( - public string|null $device_id, - public string|null $error_code, - public string|null $message, - ) {} -} diff --git a/src/Objects/AccessGrantFrom.php b/src/Objects/AccessGrantFrom.php deleted file mode 100644 index 4eade595..00000000 --- a/src/Objects/AccessGrantFrom.php +++ /dev/null @@ -1,24 +0,0 @@ -device_ids ?? null, - ends_at: $json->ends_at ?? null, - starts_at: $json->starts_at ?? null, - ); - } - - public function __construct( - public array|null $device_ids, - public string|null $ends_at, - public string|null $starts_at, - ) {} -} diff --git a/src/Objects/AccessGrantPendingMutations.php b/src/Objects/AccessGrantPendingMutations.php deleted file mode 100644 index a05eb302..00000000 --- a/src/Objects/AccessGrantPendingMutations.php +++ /dev/null @@ -1,33 +0,0 @@ -access_method_ids ?? null, - created_at: $json->created_at ?? null, - from: isset($json->from) - ? AccessGrantFrom::from_json($json->from) - : null, - message: $json->message ?? null, - mutation_code: $json->mutation_code ?? null, - to: isset($json->to) ? AccessGrantTo::from_json($json->to) : null, - ); - } - - public function __construct( - public array|null $access_method_ids, - public string|null $created_at, - public AccessGrantFrom|null $from, - public string|null $message, - public string|null $mutation_code, - public AccessGrantTo|null $to, - ) {} -} diff --git a/src/Objects/AccessGrantRequestedAccessMethods.php b/src/Objects/AccessGrantRequestedAccessMethods.php deleted file mode 100644 index a3127279..00000000 --- a/src/Objects/AccessGrantRequestedAccessMethods.php +++ /dev/null @@ -1,31 +0,0 @@ -code ?? null, - created_access_method_ids: $json->created_access_method_ids ?? null, - created_at: $json->created_at ?? null, - display_name: $json->display_name ?? null, - instant_key_max_use_count: $json->instant_key_max_use_count ?? null, - mode: $json->mode ?? null, - ); - } - - public function __construct( - public string|null $code, - public array|null $created_access_method_ids, - public string|null $created_at, - public string|null $display_name, - public int|null $instant_key_max_use_count, - public string|null $mode, - ) {} -} diff --git a/src/Objects/AccessGrantTo.php b/src/Objects/AccessGrantTo.php deleted file mode 100644 index bbcd4078..00000000 --- a/src/Objects/AccessGrantTo.php +++ /dev/null @@ -1,26 +0,0 @@ -common_code_key ?? null, - device_ids: $json->device_ids ?? null, - ends_at: $json->ends_at ?? null, - starts_at: $json->starts_at ?? null, - ); - } - - public function __construct( - public string|null $common_code_key, - public array|null $device_ids, - public string|null $ends_at, - public string|null $starts_at, - ) {} -} diff --git a/src/Objects/AccessGrantWarnings.php b/src/Objects/AccessGrantWarnings.php deleted file mode 100644 index 92cceafa..00000000 --- a/src/Objects/AccessGrantWarnings.php +++ /dev/null @@ -1,39 +0,0 @@ -access_method_ids ?? null, - created_at: $json->created_at ?? null, - device_id: $json->device_id ?? null, - failed_devices: array_map( - fn($f) => AccessGrantFailedDevices::from_json($f), - $json->failed_devices ?? [], - ), - message: $json->message ?? null, - new_code: $json->new_code ?? null, - original_code: $json->original_code ?? null, - reason: $json->reason ?? null, - warning_code: $json->warning_code ?? null, - ); - } - - public function __construct( - public array|null $access_method_ids, - public string|null $created_at, - public string|null $device_id, - public array $failed_devices, - public string|null $message, - public string|null $new_code, - public string|null $original_code, - public string|null $reason, - public string|null $warning_code, - ) {} -} diff --git a/src/Objects/AccessMethod.php b/src/Objects/AccessMethod.php deleted file mode 100644 index da472bf8..00000000 --- a/src/Objects/AccessMethod.php +++ /dev/null @@ -1,63 +0,0 @@ -access_method_id ?? null, - client_session_token: $json->client_session_token ?? null, - code: $json->code ?? null, - created_at: $json->created_at ?? null, - customization_profile_id: $json->customization_profile_id ?? null, - display_name: $json->display_name ?? null, - errors: array_map( - fn($e) => AccessMethodErrors::from_json($e), - $json->errors ?? [], - ), - instant_key_url: $json->instant_key_url ?? null, - is_assignment_required: $json->is_assignment_required ?? null, - is_encoding_required: $json->is_encoding_required ?? null, - is_issued: $json->is_issued ?? null, - is_ready_for_assignment: $json->is_ready_for_assignment ?? null, - is_ready_for_encoding: $json->is_ready_for_encoding ?? null, - issued_at: $json->issued_at ?? null, - mode: $json->mode ?? null, - pending_mutations: array_map( - fn($p) => AccessMethodPendingMutations::from_json($p), - $json->pending_mutations ?? [], - ), - warnings: array_map( - fn($w) => AccessMethodWarnings::from_json($w), - $json->warnings ?? [], - ), - workspace_id: $json->workspace_id ?? null, - ); - } - - public function __construct( - public string|null $access_method_id, - public string|null $client_session_token, - public string|null $code, - public string|null $created_at, - public string|null $customization_profile_id, - public string|null $display_name, - public array $errors, - public string|null $instant_key_url, - public bool|null $is_assignment_required, - public bool|null $is_encoding_required, - public bool|null $is_issued, - public bool|null $is_ready_for_assignment, - public bool|null $is_ready_for_encoding, - public string|null $issued_at, - public string|null $mode, - public array $pending_mutations, - public array $warnings, - public string|null $workspace_id, - ) {} -} diff --git a/src/Objects/AccessMethodErrors.php b/src/Objects/AccessMethodErrors.php deleted file mode 100644 index 394453c0..00000000 --- a/src/Objects/AccessMethodErrors.php +++ /dev/null @@ -1,24 +0,0 @@ -created_at ?? null, - error_code: $json->error_code ?? null, - message: $json->message ?? null, - ); - } - - public function __construct( - public string|null $created_at, - public string|null $error_code, - public string|null $message, - ) {} -} diff --git a/src/Objects/AccessMethodFrom.php b/src/Objects/AccessMethodFrom.php deleted file mode 100644 index 7111d3a8..00000000 --- a/src/Objects/AccessMethodFrom.php +++ /dev/null @@ -1,24 +0,0 @@ -device_ids ?? null, - ends_at: $json->ends_at ?? null, - starts_at: $json->starts_at ?? null, - ); - } - - public function __construct( - public array|null $device_ids, - public string|null $ends_at, - public string|null $starts_at, - ) {} -} diff --git a/src/Objects/AccessMethodPendingMutations.php b/src/Objects/AccessMethodPendingMutations.php deleted file mode 100644 index 117d9dbb..00000000 --- a/src/Objects/AccessMethodPendingMutations.php +++ /dev/null @@ -1,31 +0,0 @@ -created_at ?? null, - from: isset($json->from) - ? AccessMethodFrom::from_json($json->from) - : null, - message: $json->message ?? null, - mutation_code: $json->mutation_code ?? null, - to: isset($json->to) ? AccessMethodTo::from_json($json->to) : null, - ); - } - - public function __construct( - public string|null $created_at, - public AccessMethodFrom|null $from, - public string|null $message, - public string|null $mutation_code, - public AccessMethodTo|null $to, - ) {} -} diff --git a/src/Objects/AccessMethodTo.php b/src/Objects/AccessMethodTo.php deleted file mode 100644 index a1ca5f23..00000000 --- a/src/Objects/AccessMethodTo.php +++ /dev/null @@ -1,24 +0,0 @@ -device_ids ?? null, - ends_at: $json->ends_at ?? null, - starts_at: $json->starts_at ?? null, - ); - } - - public function __construct( - public array|null $device_ids, - public string|null $ends_at, - public string|null $starts_at, - ) {} -} diff --git a/src/Objects/AccessMethodWarnings.php b/src/Objects/AccessMethodWarnings.php deleted file mode 100644 index 114cac67..00000000 --- a/src/Objects/AccessMethodWarnings.php +++ /dev/null @@ -1,26 +0,0 @@ -created_at ?? null, - message: $json->message ?? null, - original_access_method_id: $json->original_access_method_id ?? null, - warning_code: $json->warning_code ?? null, - ); - } - - public function __construct( - public string|null $created_at, - public string|null $message, - public string|null $original_access_method_id, - public string|null $warning_code, - ) {} -} diff --git a/src/Objects/AcsAccessGroup.php b/src/Objects/AcsAccessGroup.php deleted file mode 100644 index 76c0658b..00000000 --- a/src/Objects/AcsAccessGroup.php +++ /dev/null @@ -1,65 +0,0 @@ -access_group_type ?? null, - access_group_type_display_name: $json->access_group_type_display_name ?? - null, - access_schedule: isset($json->access_schedule) - ? AcsAccessGroupAccessSchedule::from_json( - $json->access_schedule, - ) - : null, - acs_access_group_id: $json->acs_access_group_id ?? null, - acs_system_id: $json->acs_system_id ?? null, - connected_account_id: $json->connected_account_id ?? null, - created_at: $json->created_at ?? null, - display_name: $json->display_name ?? null, - errors: array_map( - fn($e) => AcsAccessGroupErrors::from_json($e), - $json->errors ?? [], - ), - external_type: $json->external_type ?? null, - external_type_display_name: $json->external_type_display_name ?? - null, - is_managed: $json->is_managed ?? null, - name: $json->name ?? null, - pending_mutations: array_map( - fn($p) => AcsAccessGroupPendingMutations::from_json($p), - $json->pending_mutations ?? [], - ), - warnings: array_map( - fn($w) => AcsAccessGroupWarnings::from_json($w), - $json->warnings ?? [], - ), - workspace_id: $json->workspace_id ?? null, - ); - } - - public function __construct( - public string|null $access_group_type, - public string|null $access_group_type_display_name, - public AcsAccessGroupAccessSchedule|null $access_schedule, - public string|null $acs_access_group_id, - public string|null $acs_system_id, - public string|null $connected_account_id, - public string|null $created_at, - public string|null $display_name, - public array $errors, - public string|null $external_type, - public string|null $external_type_display_name, - public bool|null $is_managed, - public string|null $name, - public array $pending_mutations, - public array $warnings, - public string|null $workspace_id, - ) {} -} diff --git a/src/Objects/AcsAccessGroupAccessSchedule.php b/src/Objects/AcsAccessGroupAccessSchedule.php deleted file mode 100644 index 78633da8..00000000 --- a/src/Objects/AcsAccessGroupAccessSchedule.php +++ /dev/null @@ -1,23 +0,0 @@ -ends_at ?? null, - starts_at: $json->starts_at ?? null, - ); - } - - public function __construct( - public string|null $ends_at, - public string|null $starts_at, - ) {} -} diff --git a/src/Objects/AcsAccessGroupErrors.php b/src/Objects/AcsAccessGroupErrors.php deleted file mode 100644 index 494e48e8..00000000 --- a/src/Objects/AcsAccessGroupErrors.php +++ /dev/null @@ -1,24 +0,0 @@ -created_at ?? null, - error_code: $json->error_code ?? null, - message: $json->message ?? null, - ); - } - - public function __construct( - public string|null $created_at, - public string|null $error_code, - public string|null $message, - ) {} -} diff --git a/src/Objects/AcsAccessGroupFrom.php b/src/Objects/AcsAccessGroupFrom.php deleted file mode 100644 index 7d077ba6..00000000 --- a/src/Objects/AcsAccessGroupFrom.php +++ /dev/null @@ -1,28 +0,0 @@ -acs_entrance_id ?? null, - acs_user_id: $json->acs_user_id ?? null, - ends_at: $json->ends_at ?? null, - name: $json->name ?? null, - starts_at: $json->starts_at ?? null, - ); - } - - public function __construct( - public string|null $acs_entrance_id, - public string|null $acs_user_id, - public string|null $ends_at, - public string|null $name, - public string|null $starts_at, - ) {} -} diff --git a/src/Objects/AcsAccessGroupPendingMutations.php b/src/Objects/AcsAccessGroupPendingMutations.php deleted file mode 100644 index 9c3ffa9d..00000000 --- a/src/Objects/AcsAccessGroupPendingMutations.php +++ /dev/null @@ -1,37 +0,0 @@ -acs_user_id ?? null, - created_at: $json->created_at ?? null, - from: isset($json->from) - ? AcsAccessGroupFrom::from_json($json->from) - : null, - message: $json->message ?? null, - mutation_code: $json->mutation_code ?? null, - to: isset($json->to) - ? AcsAccessGroupTo::from_json($json->to) - : null, - variant: $json->variant ?? null, - ); - } - - public function __construct( - public string|null $acs_user_id, - public string|null $created_at, - public AcsAccessGroupFrom|null $from, - public string|null $message, - public string|null $mutation_code, - public AcsAccessGroupTo|null $to, - public string|null $variant, - ) {} -} diff --git a/src/Objects/AcsAccessGroupTo.php b/src/Objects/AcsAccessGroupTo.php deleted file mode 100644 index 2f7982ae..00000000 --- a/src/Objects/AcsAccessGroupTo.php +++ /dev/null @@ -1,28 +0,0 @@ -acs_entrance_id ?? null, - acs_user_id: $json->acs_user_id ?? null, - ends_at: $json->ends_at ?? null, - name: $json->name ?? null, - starts_at: $json->starts_at ?? null, - ); - } - - public function __construct( - public string|null $acs_entrance_id, - public string|null $acs_user_id, - public string|null $ends_at, - public string|null $name, - public string|null $starts_at, - ) {} -} diff --git a/src/Objects/AcsAccessGroupWarnings.php b/src/Objects/AcsAccessGroupWarnings.php deleted file mode 100644 index d3bbd407..00000000 --- a/src/Objects/AcsAccessGroupWarnings.php +++ /dev/null @@ -1,24 +0,0 @@ -created_at ?? null, - message: $json->message ?? null, - warning_code: $json->warning_code ?? null, - ); - } - - public function __construct( - public string|null $created_at, - public string|null $message, - public string|null $warning_code, - ) {} -} diff --git a/src/Objects/AcsCredentialAssaAbloyVostioMetadata.php b/src/Objects/AcsCredentialAssaAbloyVostioMetadata.php deleted file mode 100644 index 674362f5..00000000 --- a/src/Objects/AcsCredentialAssaAbloyVostioMetadata.php +++ /dev/null @@ -1,32 +0,0 @@ -auto_join ?? null, - door_names: $json->door_names ?? null, - endpoint_id: $json->endpoint_id ?? null, - key_id: $json->key_id ?? null, - key_issuing_request_id: $json->key_issuing_request_id ?? null, - override_guest_acs_entrance_ids: $json->override_guest_acs_entrance_ids ?? - null, - ); - } - - public function __construct( - public bool|null $auto_join, - public array|null $door_names, - public string|null $endpoint_id, - public string|null $key_id, - public string|null $key_issuing_request_id, - public array|null $override_guest_acs_entrance_ids, - ) {} -} diff --git a/src/Objects/AcsCredentialErrors.php b/src/Objects/AcsCredentialErrors.php deleted file mode 100644 index 28d93723..00000000 --- a/src/Objects/AcsCredentialErrors.php +++ /dev/null @@ -1,24 +0,0 @@ -created_at ?? null, - error_code: $json->error_code ?? null, - message: $json->message ?? null, - ); - } - - public function __construct( - public string|null $created_at, - public string|null $error_code, - public string|null $message, - ) {} -} diff --git a/src/Objects/AcsCredentialVisionlineMetadata.php b/src/Objects/AcsCredentialVisionlineMetadata.php deleted file mode 100644 index f71cedcd..00000000 --- a/src/Objects/AcsCredentialVisionlineMetadata.php +++ /dev/null @@ -1,35 +0,0 @@ -auto_join ?? null, - card_function_type: $json->card_function_type ?? null, - card_id: $json->card_id ?? null, - common_acs_entrance_ids: $json->common_acs_entrance_ids ?? null, - credential_id: $json->credential_id ?? null, - guest_acs_entrance_ids: $json->guest_acs_entrance_ids ?? null, - is_valid: $json->is_valid ?? null, - joiner_acs_credential_ids: $json->joiner_acs_credential_ids ?? null, - ); - } - - public function __construct( - public bool|null $auto_join, - public string|null $card_function_type, - public string|null $card_id, - public array|null $common_acs_entrance_ids, - public string|null $credential_id, - public array|null $guest_acs_entrance_ids, - public bool|null $is_valid, - public array|null $joiner_acs_credential_ids, - ) {} -} diff --git a/src/Objects/AcsCredentialWarnings.php b/src/Objects/AcsCredentialWarnings.php deleted file mode 100644 index 4d910aff..00000000 --- a/src/Objects/AcsCredentialWarnings.php +++ /dev/null @@ -1,24 +0,0 @@ -created_at ?? null, - message: $json->message ?? null, - warning_code: $json->warning_code ?? null, - ); - } - - public function __construct( - public string|null $created_at, - public string|null $message, - public string|null $warning_code, - ) {} -} diff --git a/src/Objects/AcsEncoderErrors.php b/src/Objects/AcsEncoderErrors.php deleted file mode 100644 index eabeb59d..00000000 --- a/src/Objects/AcsEncoderErrors.php +++ /dev/null @@ -1,24 +0,0 @@ -created_at ?? null, - error_code: $json->error_code ?? null, - message: $json->message ?? null, - ); - } - - public function __construct( - public string|null $created_at, - public string|null $error_code, - public string|null $message, - ) {} -} diff --git a/src/Objects/AcsEntrance.php b/src/Objects/AcsEntrance.php deleted file mode 100644 index 2b0ef4ce..00000000 --- a/src/Objects/AcsEntrance.php +++ /dev/null @@ -1,115 +0,0 @@ -acs_entrance_id ?? null, - acs_system_id: $json->acs_system_id ?? null, - akiles_metadata: isset($json->akiles_metadata) - ? AcsEntranceAkilesMetadata::from_json($json->akiles_metadata) - : null, - assa_abloy_vostio_metadata: isset($json->assa_abloy_vostio_metadata) - ? AcsEntranceAssaAbloyVostioMetadata::from_json( - $json->assa_abloy_vostio_metadata, - ) - : null, - avigilon_alta_metadata: isset($json->avigilon_alta_metadata) - ? AcsEntranceAvigilonAltaMetadata::from_json( - $json->avigilon_alta_metadata, - ) - : null, - brivo_metadata: isset($json->brivo_metadata) - ? AcsEntranceBrivoMetadata::from_json($json->brivo_metadata) - : null, - can_belong_to_reservation: $json->can_belong_to_reservation ?? null, - can_unlock_with_card: $json->can_unlock_with_card ?? null, - can_unlock_with_cloud_key: $json->can_unlock_with_cloud_key ?? null, - can_unlock_with_code: $json->can_unlock_with_code ?? null, - can_unlock_with_mobile_key: $json->can_unlock_with_mobile_key ?? - null, - connected_account_id: $json->connected_account_id ?? null, - created_at: $json->created_at ?? null, - display_name: $json->display_name ?? null, - dormakaba_ambiance_metadata: isset( - $json->dormakaba_ambiance_metadata, - ) - ? AcsEntranceDormakabaAmbianceMetadata::from_json( - $json->dormakaba_ambiance_metadata, - ) - : null, - dormakaba_community_metadata: isset( - $json->dormakaba_community_metadata, - ) - ? AcsEntranceDormakabaCommunityMetadata::from_json( - $json->dormakaba_community_metadata, - ) - : null, - errors: array_map( - fn($e) => AcsEntranceErrors::from_json($e), - $json->errors ?? [], - ), - hotek_metadata: isset($json->hotek_metadata) - ? AcsEntranceHotekMetadata::from_json($json->hotek_metadata) - : null, - is_locked: $json->is_locked ?? null, - latch_metadata: isset($json->latch_metadata) - ? AcsEntranceLatchMetadata::from_json($json->latch_metadata) - : null, - salto_ks_metadata: isset($json->salto_ks_metadata) - ? AcsEntranceSaltoKsMetadata::from_json( - $json->salto_ks_metadata, - ) - : null, - salto_space_metadata: isset($json->salto_space_metadata) - ? AcsEntranceSaltoSpaceMetadata::from_json( - $json->salto_space_metadata, - ) - : null, - space_ids: $json->space_ids ?? null, - visionline_metadata: isset($json->visionline_metadata) - ? AcsEntranceVisionlineMetadata::from_json( - $json->visionline_metadata, - ) - : null, - warnings: array_map( - fn($w) => AcsEntranceWarnings::from_json($w), - $json->warnings ?? [], - ), - ); - } - - public function __construct( - public string|null $acs_entrance_id, - public string|null $acs_system_id, - public AcsEntranceAkilesMetadata|null $akiles_metadata, - public AcsEntranceAssaAbloyVostioMetadata|null $assa_abloy_vostio_metadata, - public AcsEntranceAvigilonAltaMetadata|null $avigilon_alta_metadata, - public AcsEntranceBrivoMetadata|null $brivo_metadata, - public bool|null $can_belong_to_reservation, - public bool|null $can_unlock_with_card, - public bool|null $can_unlock_with_cloud_key, - public bool|null $can_unlock_with_code, - public bool|null $can_unlock_with_mobile_key, - public string|null $connected_account_id, - public string|null $created_at, - public string|null $display_name, - public AcsEntranceDormakabaAmbianceMetadata|null $dormakaba_ambiance_metadata, - public AcsEntranceDormakabaCommunityMetadata|null $dormakaba_community_metadata, - public array $errors, - public AcsEntranceHotekMetadata|null $hotek_metadata, - public bool|null $is_locked, - public AcsEntranceLatchMetadata|null $latch_metadata, - public AcsEntranceSaltoKsMetadata|null $salto_ks_metadata, - public AcsEntranceSaltoSpaceMetadata|null $salto_space_metadata, - public array|null $space_ids, - public AcsEntranceVisionlineMetadata|null $visionline_metadata, - public array $warnings, - ) {} -} diff --git a/src/Objects/AcsEntranceActions.php b/src/Objects/AcsEntranceActions.php deleted file mode 100644 index abb5dc54..00000000 --- a/src/Objects/AcsEntranceActions.php +++ /dev/null @@ -1,19 +0,0 @@ -id ?? null, name: $json->name ?? null); - } - - public function __construct( - public string|null $id, - public string|null $name, - ) {} -} diff --git a/src/Objects/AcsEntranceAkilesMetadata.php b/src/Objects/AcsEntranceAkilesMetadata.php deleted file mode 100644 index ea657af9..00000000 --- a/src/Objects/AcsEntranceAkilesMetadata.php +++ /dev/null @@ -1,30 +0,0 @@ - AcsEntranceActions::from_json($a), - $json->actions ?? [], - ), - gadget_id: $json->gadget_id ?? null, - site_id: $json->site_id ?? null, - site_name: $json->site_name ?? null, - ); - } - - public function __construct( - public array $actions, - public string|null $gadget_id, - public string|null $site_id, - public string|null $site_name, - ) {} -} diff --git a/src/Objects/AcsEntranceAssaAbloyVostioMetadata.php b/src/Objects/AcsEntranceAssaAbloyVostioMetadata.php deleted file mode 100644 index 04976009..00000000 --- a/src/Objects/AcsEntranceAssaAbloyVostioMetadata.php +++ /dev/null @@ -1,29 +0,0 @@ -door_name ?? null, - door_number: $json->door_number ?? null, - door_type: $json->door_type ?? null, - pms_id: $json->pms_id ?? null, - stand_open: $json->stand_open ?? null, - ); - } - - public function __construct( - public string|null $door_name, - public float|null $door_number, - public string|null $door_type, - public string|null $pms_id, - public bool|null $stand_open, - ) {} -} diff --git a/src/Objects/AcsEntranceAvigilonAltaMetadata.php b/src/Objects/AcsEntranceAvigilonAltaMetadata.php deleted file mode 100644 index 4f1f783f..00000000 --- a/src/Objects/AcsEntranceAvigilonAltaMetadata.php +++ /dev/null @@ -1,33 +0,0 @@ -entry_name ?? null, - entry_relays_total_count: $json->entry_relays_total_count ?? null, - org_name: $json->org_name ?? null, - site_id: $json->site_id ?? null, - site_name: $json->site_name ?? null, - zone_id: $json->zone_id ?? null, - zone_name: $json->zone_name ?? null, - ); - } - - public function __construct( - public string|null $entry_name, - public float|null $entry_relays_total_count, - public string|null $org_name, - public float|null $site_id, - public string|null $site_name, - public float|null $zone_id, - public string|null $zone_name, - ) {} -} diff --git a/src/Objects/AcsEntranceBrivoMetadata.php b/src/Objects/AcsEntranceBrivoMetadata.php deleted file mode 100644 index bd81ab70..00000000 --- a/src/Objects/AcsEntranceBrivoMetadata.php +++ /dev/null @@ -1,24 +0,0 @@ -access_point_id ?? null, - site_id: $json->site_id ?? null, - site_name: $json->site_name ?? null, - ); - } - - public function __construct( - public string|null $access_point_id, - public float|null $site_id, - public string|null $site_name, - ) {} -} diff --git a/src/Objects/AcsEntranceDormakabaAmbianceMetadata.php b/src/Objects/AcsEntranceDormakabaAmbianceMetadata.php deleted file mode 100644 index 48b96f27..00000000 --- a/src/Objects/AcsEntranceDormakabaAmbianceMetadata.php +++ /dev/null @@ -1,17 +0,0 @@ -access_point_name ?? null); - } - - public function __construct(public string|null $access_point_name) {} -} diff --git a/src/Objects/AcsEntranceDormakabaCommunityMetadata.php b/src/Objects/AcsEntranceDormakabaCommunityMetadata.php deleted file mode 100644 index 5bb46bcc..00000000 --- a/src/Objects/AcsEntranceDormakabaCommunityMetadata.php +++ /dev/null @@ -1,19 +0,0 @@ -access_point_profile ?? null, - ); - } - - public function __construct(public string|null $access_point_profile) {} -} diff --git a/src/Objects/AcsEntranceErrors.php b/src/Objects/AcsEntranceErrors.php deleted file mode 100644 index f33a8479..00000000 --- a/src/Objects/AcsEntranceErrors.php +++ /dev/null @@ -1,24 +0,0 @@ -created_at ?? null, - error_code: $json->error_code ?? null, - message: $json->message ?? null, - ); - } - - public function __construct( - public string|null $created_at, - public string|null $error_code, - public string|null $message, - ) {} -} diff --git a/src/Objects/AcsEntranceHotekMetadata.php b/src/Objects/AcsEntranceHotekMetadata.php deleted file mode 100644 index 648ce74b..00000000 --- a/src/Objects/AcsEntranceHotekMetadata.php +++ /dev/null @@ -1,24 +0,0 @@ -common_area_name ?? null, - common_area_number: $json->common_area_number ?? null, - room_number: $json->room_number ?? null, - ); - } - - public function __construct( - public string|null $common_area_name, - public string|null $common_area_number, - public string|null $room_number, - ) {} -} diff --git a/src/Objects/AcsEntranceLatchMetadata.php b/src/Objects/AcsEntranceLatchMetadata.php deleted file mode 100644 index 8b5ffdc2..00000000 --- a/src/Objects/AcsEntranceLatchMetadata.php +++ /dev/null @@ -1,26 +0,0 @@ -accessibility_type ?? null, - door_name: $json->door_name ?? null, - door_type: $json->door_type ?? null, - is_connected: $json->is_connected ?? null, - ); - } - - public function __construct( - public string|null $accessibility_type, - public string|null $door_name, - public string|null $door_type, - public bool|null $is_connected, - ) {} -} diff --git a/src/Objects/AcsEntranceProfiles.php b/src/Objects/AcsEntranceProfiles.php deleted file mode 100644 index afbb6f9b..00000000 --- a/src/Objects/AcsEntranceProfiles.php +++ /dev/null @@ -1,24 +0,0 @@ -visionline_door_profile_id ?? - null, - visionline_door_profile_type: $json->visionline_door_profile_type ?? - null, - ); - } - - public function __construct( - public string|null $visionline_door_profile_id, - public string|null $visionline_door_profile_type, - ) {} -} diff --git a/src/Objects/AcsEntranceSaltoKsMetadata.php b/src/Objects/AcsEntranceSaltoKsMetadata.php deleted file mode 100644 index 3266ed14..00000000 --- a/src/Objects/AcsEntranceSaltoKsMetadata.php +++ /dev/null @@ -1,35 +0,0 @@ -battery_level ?? null, - door_name: $json->door_name ?? null, - intrusion_alarm: $json->intrusion_alarm ?? null, - left_open_alarm: $json->left_open_alarm ?? null, - lock_type: $json->lock_type ?? null, - locked_state: $json->locked_state ?? null, - online: $json->online ?? null, - privacy_mode: $json->privacy_mode ?? null, - ); - } - - public function __construct( - public string|null $battery_level, - public string|null $door_name, - public bool|null $intrusion_alarm, - public bool|null $left_open_alarm, - public string|null $lock_type, - public string|null $locked_state, - public bool|null $online, - public bool|null $privacy_mode, - ) {} -} diff --git a/src/Objects/AcsEntranceSaltoSpaceMetadata.php b/src/Objects/AcsEntranceSaltoSpaceMetadata.php deleted file mode 100644 index 0a478b4f..00000000 --- a/src/Objects/AcsEntranceSaltoSpaceMetadata.php +++ /dev/null @@ -1,31 +0,0 @@ -audit_on_keys ?? null, - door_description: $json->door_description ?? null, - door_id: $json->door_id ?? null, - door_name: $json->door_name ?? null, - room_description: $json->room_description ?? null, - room_name: $json->room_name ?? null, - ); - } - - public function __construct( - public bool|null $audit_on_keys, - public string|null $door_description, - public string|null $door_id, - public string|null $door_name, - public string|null $room_description, - public string|null $room_name, - ) {} -} diff --git a/src/Objects/AcsEntranceVisionlineMetadata.php b/src/Objects/AcsEntranceVisionlineMetadata.php deleted file mode 100644 index fc4c2cb1..00000000 --- a/src/Objects/AcsEntranceVisionlineMetadata.php +++ /dev/null @@ -1,28 +0,0 @@ -door_category ?? null, - door_name: $json->door_name ?? null, - profiles: array_map( - fn($p) => AcsEntranceProfiles::from_json($p), - $json->profiles ?? [], - ), - ); - } - - public function __construct( - public string|null $door_category, - public string|null $door_name, - public array $profiles, - ) {} -} diff --git a/src/Objects/AcsEntranceWarnings.php b/src/Objects/AcsEntranceWarnings.php deleted file mode 100644 index 3d29d169..00000000 --- a/src/Objects/AcsEntranceWarnings.php +++ /dev/null @@ -1,24 +0,0 @@ -created_at ?? null, - message: $json->message ?? null, - warning_code: $json->warning_code ?? null, - ); - } - - public function __construct( - public string|null $created_at, - public string|null $message, - public string|null $warning_code, - ) {} -} diff --git a/src/Objects/AcsSystemErrors.php b/src/Objects/AcsSystemErrors.php deleted file mode 100644 index 84f4140d..00000000 --- a/src/Objects/AcsSystemErrors.php +++ /dev/null @@ -1,26 +0,0 @@ -created_at ?? null, - error_code: $json->error_code ?? null, - is_bridge_error: $json->is_bridge_error ?? null, - message: $json->message ?? null, - ); - } - - public function __construct( - public string|null $created_at, - public string|null $error_code, - public bool|null $is_bridge_error, - public string|null $message, - ) {} -} diff --git a/src/Objects/AcsSystemLocation.php b/src/Objects/AcsSystemLocation.php deleted file mode 100644 index 46124a5b..00000000 --- a/src/Objects/AcsSystemLocation.php +++ /dev/null @@ -1,16 +0,0 @@ -time_zone ?? null); - } - - public function __construct(public string|null $time_zone) {} -} diff --git a/src/Objects/AcsSystemVisionlineMetadata.php b/src/Objects/AcsSystemVisionlineMetadata.php deleted file mode 100644 index 7298bba2..00000000 --- a/src/Objects/AcsSystemVisionlineMetadata.php +++ /dev/null @@ -1,25 +0,0 @@ -lan_address ?? null, - mobile_access_uuid: $json->mobile_access_uuid ?? null, - system_id: $json->system_id ?? null, - ); - } - - public function __construct( - public string|null $lan_address, - public string|null $mobile_access_uuid, - public string|null $system_id, - ) {} -} diff --git a/src/Objects/AcsSystemWarnings.php b/src/Objects/AcsSystemWarnings.php deleted file mode 100644 index d5c44335..00000000 --- a/src/Objects/AcsSystemWarnings.php +++ /dev/null @@ -1,27 +0,0 @@ -created_at ?? null, - message: $json->message ?? null, - misconfigured_acs_entrance_ids: $json->misconfigured_acs_entrance_ids ?? - null, - warning_code: $json->warning_code ?? null, - ); - } - - public function __construct( - public string|null $created_at, - public string|null $message, - public array|null $misconfigured_acs_entrance_ids, - public string|null $warning_code, - ) {} -} diff --git a/src/Objects/AcsUser.php b/src/Objects/AcsUser.php deleted file mode 100644 index c104111e..00000000 --- a/src/Objects/AcsUser.php +++ /dev/null @@ -1,88 +0,0 @@ -access_schedule) - ? AcsUserAccessSchedule::from_json($json->access_schedule) - : null, - acs_system_id: $json->acs_system_id ?? null, - acs_user_id: $json->acs_user_id ?? null, - connected_account_id: $json->connected_account_id ?? null, - created_at: $json->created_at ?? null, - display_name: $json->display_name ?? null, - email: $json->email ?? null, - email_address: $json->email_address ?? null, - errors: array_map( - fn($e) => AcsUserErrors::from_json($e), - $json->errors ?? [], - ), - external_type: $json->external_type ?? null, - external_type_display_name: $json->external_type_display_name ?? - null, - full_name: $json->full_name ?? null, - hid_acs_system_id: $json->hid_acs_system_id ?? null, - is_managed: $json->is_managed ?? null, - is_suspended: $json->is_suspended ?? null, - pending_mutations: array_map( - fn($p) => AcsUserPendingMutations::from_json($p), - $json->pending_mutations ?? [], - ), - phone_number: $json->phone_number ?? null, - salto_ks_metadata: isset($json->salto_ks_metadata) - ? AcsUserSaltoKsMetadata::from_json($json->salto_ks_metadata) - : null, - salto_space_metadata: isset($json->salto_space_metadata) - ? AcsUserSaltoSpaceMetadata::from_json( - $json->salto_space_metadata, - ) - : null, - user_identity_email_address: $json->user_identity_email_address ?? - null, - user_identity_full_name: $json->user_identity_full_name ?? null, - user_identity_id: $json->user_identity_id ?? null, - user_identity_phone_number: $json->user_identity_phone_number ?? - null, - warnings: array_map( - fn($w) => AcsUserWarnings::from_json($w), - $json->warnings ?? [], - ), - workspace_id: $json->workspace_id ?? null, - ); - } - - public function __construct( - public AcsUserAccessSchedule|null $access_schedule, - public string|null $acs_system_id, - public string|null $acs_user_id, - public string|null $connected_account_id, - public string|null $created_at, - public string|null $display_name, - public string|null $email, - public string|null $email_address, - public array $errors, - public string|null $external_type, - public string|null $external_type_display_name, - public string|null $full_name, - public string|null $hid_acs_system_id, - public bool|null $is_managed, - public bool|null $is_suspended, - public array $pending_mutations, - public string|null $phone_number, - public AcsUserSaltoKsMetadata|null $salto_ks_metadata, - public AcsUserSaltoSpaceMetadata|null $salto_space_metadata, - public string|null $user_identity_email_address, - public string|null $user_identity_full_name, - public string|null $user_identity_id, - public string|null $user_identity_phone_number, - public array $warnings, - public string|null $workspace_id, - ) {} -} diff --git a/src/Objects/AcsUserAccessSchedule.php b/src/Objects/AcsUserAccessSchedule.php deleted file mode 100644 index 34298ecb..00000000 --- a/src/Objects/AcsUserAccessSchedule.php +++ /dev/null @@ -1,22 +0,0 @@ -ends_at ?? null, - starts_at: $json->starts_at ?? null, - ); - } - - public function __construct( - public string|null $ends_at, - public string|null $starts_at, - ) {} -} diff --git a/src/Objects/AcsUserErrors.php b/src/Objects/AcsUserErrors.php deleted file mode 100644 index aca6a44f..00000000 --- a/src/Objects/AcsUserErrors.php +++ /dev/null @@ -1,24 +0,0 @@ -created_at ?? null, - error_code: $json->error_code ?? null, - message: $json->message ?? null, - ); - } - - public function __construct( - public string|null $created_at, - public string|null $error_code, - public string|null $message, - ) {} -} diff --git a/src/Objects/AcsUserFrom.php b/src/Objects/AcsUserFrom.php deleted file mode 100644 index 4e2b6cd0..00000000 --- a/src/Objects/AcsUserFrom.php +++ /dev/null @@ -1,34 +0,0 @@ -acs_access_group_id ?? null, - acs_credential_id: $json->acs_credential_id ?? null, - email_address: $json->email_address ?? null, - ends_at: $json->ends_at ?? null, - full_name: $json->full_name ?? null, - is_suspended: $json->is_suspended ?? null, - phone_number: $json->phone_number ?? null, - starts_at: $json->starts_at ?? null, - ); - } - - public function __construct( - public string|null $acs_access_group_id, - public string|null $acs_credential_id, - public string|null $email_address, - public string|null $ends_at, - public string|null $full_name, - public bool|null $is_suspended, - public string|null $phone_number, - public string|null $starts_at, - ) {} -} diff --git a/src/Objects/AcsUserPendingMutations.php b/src/Objects/AcsUserPendingMutations.php deleted file mode 100644 index f6a1f5e3..00000000 --- a/src/Objects/AcsUserPendingMutations.php +++ /dev/null @@ -1,36 +0,0 @@ -acs_access_group_id ?? null, - created_at: $json->created_at ?? null, - from: isset($json->from) - ? AcsUserFrom::from_json($json->from) - : null, - message: $json->message ?? null, - mutation_code: $json->mutation_code ?? null, - scheduled_at: $json->scheduled_at ?? null, - to: isset($json->to) ? AcsUserTo::from_json($json->to) : null, - variant: $json->variant ?? null, - ); - } - - public function __construct( - public string|null $acs_access_group_id, - public string|null $created_at, - public AcsUserFrom|null $from, - public string|null $message, - public string|null $mutation_code, - public string|null $scheduled_at, - public AcsUserTo|null $to, - public string|null $variant, - ) {} -} diff --git a/src/Objects/AcsUserSaltoKsMetadata.php b/src/Objects/AcsUserSaltoKsMetadata.php deleted file mode 100644 index 638589d0..00000000 --- a/src/Objects/AcsUserSaltoKsMetadata.php +++ /dev/null @@ -1,16 +0,0 @@ -is_subscribed ?? null); - } - - public function __construct(public bool|null $is_subscribed) {} -} diff --git a/src/Objects/AcsUserSaltoSpaceMetadata.php b/src/Objects/AcsUserSaltoSpaceMetadata.php deleted file mode 100644 index a2c6891f..00000000 --- a/src/Objects/AcsUserSaltoSpaceMetadata.php +++ /dev/null @@ -1,23 +0,0 @@ -audit_openings ?? null, - user_id: $json->user_id ?? null, - ); - } - - public function __construct( - public bool|null $audit_openings, - public string|null $user_id, - ) {} -} diff --git a/src/Objects/AcsUserTo.php b/src/Objects/AcsUserTo.php deleted file mode 100644 index 9e59e4e2..00000000 --- a/src/Objects/AcsUserTo.php +++ /dev/null @@ -1,34 +0,0 @@ -acs_access_group_id ?? null, - acs_credential_id: $json->acs_credential_id ?? null, - email_address: $json->email_address ?? null, - ends_at: $json->ends_at ?? null, - full_name: $json->full_name ?? null, - is_suspended: $json->is_suspended ?? null, - phone_number: $json->phone_number ?? null, - starts_at: $json->starts_at ?? null, - ); - } - - public function __construct( - public string|null $acs_access_group_id, - public string|null $acs_credential_id, - public string|null $email_address, - public string|null $ends_at, - public string|null $full_name, - public bool|null $is_suspended, - public string|null $phone_number, - public string|null $starts_at, - ) {} -} diff --git a/src/Objects/AcsUserWarnings.php b/src/Objects/AcsUserWarnings.php deleted file mode 100644 index ef105786..00000000 --- a/src/Objects/AcsUserWarnings.php +++ /dev/null @@ -1,24 +0,0 @@ -created_at ?? null, - message: $json->message ?? null, - warning_code: $json->warning_code ?? null, - ); - } - - public function __construct( - public string|null $created_at, - public string|null $message, - public string|null $warning_code, - ) {} -} diff --git a/src/Objects/ActionAttempt.php b/src/Objects/ActionAttempt.php deleted file mode 100644 index 27081525..00000000 --- a/src/Objects/ActionAttempt.php +++ /dev/null @@ -1,32 +0,0 @@ -action_attempt_id ?? null, - action_type: $json->action_type ?? null, - error: isset($json->error) - ? ActionAttemptError::from_json($json->error) - : null, - result: isset($json->result) - ? ActionAttemptResult::from_json($json->result) - : null, - status: $json->status ?? null, - ); - } - - public function __construct( - public string|null $action_attempt_id, - public string|null $action_type, - public ActionAttemptError|null $error, - public ActionAttemptResult|null $result, - public string|null $status, - ) {} -} diff --git a/src/Objects/ActionAttemptAcsCredentialOnEncoder.php b/src/Objects/ActionAttemptAcsCredentialOnEncoder.php deleted file mode 100644 index 8d5d6ae1..00000000 --- a/src/Objects/ActionAttemptAcsCredentialOnEncoder.php +++ /dev/null @@ -1,35 +0,0 @@ -card_number ?? null, - created_at: $json->created_at ?? null, - ends_at: $json->ends_at ?? null, - is_issued: $json->is_issued ?? null, - starts_at: $json->starts_at ?? null, - visionline_metadata: isset($json->visionline_metadata) - ? ActionAttemptVisionlineMetadata::from_json( - $json->visionline_metadata, - ) - : null, - ); - } - - public function __construct( - public string|null $card_number, - public string|null $created_at, - public string|null $ends_at, - public bool|null $is_issued, - public string|null $starts_at, - public ActionAttemptVisionlineMetadata|null $visionline_metadata, - ) {} -} diff --git a/src/Objects/ActionAttemptAcsCredentialOnSeam.php b/src/Objects/ActionAttemptAcsCredentialOnSeam.php deleted file mode 100644 index 8baa1192..00000000 --- a/src/Objects/ActionAttemptAcsCredentialOnSeam.php +++ /dev/null @@ -1,93 +0,0 @@ -access_method ?? null, - acs_credential_id: $json->acs_credential_id ?? null, - acs_credential_pool_id: $json->acs_credential_pool_id ?? null, - acs_system_id: $json->acs_system_id ?? null, - acs_user_id: $json->acs_user_id ?? null, - assa_abloy_vostio_metadata: isset($json->assa_abloy_vostio_metadata) - ? ActionAttemptAssaAbloyVostioMetadata::from_json( - $json->assa_abloy_vostio_metadata, - ) - : null, - card_number: $json->card_number ?? null, - code: $json->code ?? null, - connected_account_id: $json->connected_account_id ?? null, - created_at: $json->created_at ?? null, - display_name: $json->display_name ?? null, - ends_at: $json->ends_at ?? null, - errors: array_map( - fn($e) => ActionAttemptErrors::from_json($e), - $json->errors ?? [], - ), - external_type: $json->external_type ?? null, - external_type_display_name: $json->external_type_display_name ?? - null, - is_issued: $json->is_issued ?? null, - is_latest_desired_state_synced_with_provider: $json->is_latest_desired_state_synced_with_provider ?? - null, - is_managed: $json->is_managed ?? null, - is_multi_phone_sync_credential: $json->is_multi_phone_sync_credential ?? - null, - is_one_time_use: $json->is_one_time_use ?? null, - issued_at: $json->issued_at ?? null, - latest_desired_state_synced_with_provider_at: $json->latest_desired_state_synced_with_provider_at ?? - null, - parent_acs_credential_id: $json->parent_acs_credential_id ?? null, - starts_at: $json->starts_at ?? null, - user_identity_id: $json->user_identity_id ?? null, - visionline_metadata: isset($json->visionline_metadata) - ? ActionAttemptVisionlineMetadata::from_json( - $json->visionline_metadata, - ) - : null, - warnings: array_map( - fn($w) => ActionAttemptWarnings::from_json($w), - $json->warnings ?? [], - ), - workspace_id: $json->workspace_id ?? null, - ); - } - - public function __construct( - public string|null $access_method, - public string|null $acs_credential_id, - public string|null $acs_credential_pool_id, - public string|null $acs_system_id, - public string|null $acs_user_id, - public ActionAttemptAssaAbloyVostioMetadata|null $assa_abloy_vostio_metadata, - public string|null $card_number, - public string|null $code, - public string|null $connected_account_id, - public string|null $created_at, - public string|null $display_name, - public string|null $ends_at, - public array $errors, - public string|null $external_type, - public string|null $external_type_display_name, - public bool|null $is_issued, - public bool|null $is_latest_desired_state_synced_with_provider, - public bool|null $is_managed, - public bool|null $is_multi_phone_sync_credential, - public bool|null $is_one_time_use, - public string|null $issued_at, - public string|null $latest_desired_state_synced_with_provider_at, - public string|null $parent_acs_credential_id, - public string|null $starts_at, - public string|null $user_identity_id, - public ActionAttemptVisionlineMetadata|null $visionline_metadata, - public array $warnings, - public string|null $workspace_id, - ) {} -} diff --git a/src/Objects/ActionAttemptAssaAbloyVostioMetadata.php b/src/Objects/ActionAttemptAssaAbloyVostioMetadata.php deleted file mode 100644 index 9bc57b26..00000000 --- a/src/Objects/ActionAttemptAssaAbloyVostioMetadata.php +++ /dev/null @@ -1,32 +0,0 @@ -auto_join ?? null, - door_names: $json->door_names ?? null, - endpoint_id: $json->endpoint_id ?? null, - key_id: $json->key_id ?? null, - key_issuing_request_id: $json->key_issuing_request_id ?? null, - override_guest_acs_entrance_ids: $json->override_guest_acs_entrance_ids ?? - null, - ); - } - - public function __construct( - public bool|null $auto_join, - public array|null $door_names, - public string|null $endpoint_id, - public string|null $key_id, - public string|null $key_issuing_request_id, - public array|null $override_guest_acs_entrance_ids, - ) {} -} diff --git a/src/Objects/ActionAttemptError.php b/src/Objects/ActionAttemptError.php deleted file mode 100644 index 9b2d4239..00000000 --- a/src/Objects/ActionAttemptError.php +++ /dev/null @@ -1,22 +0,0 @@ -message ?? null, - type: $json->type ?? null, - ); - } - - public function __construct( - public string|null $message, - public string|null $type, - ) {} -} diff --git a/src/Objects/ActionAttemptErrors.php b/src/Objects/ActionAttemptErrors.php deleted file mode 100644 index 222c5720..00000000 --- a/src/Objects/ActionAttemptErrors.php +++ /dev/null @@ -1,24 +0,0 @@ -created_at ?? null, - error_code: $json->error_code ?? null, - message: $json->message ?? null, - ); - } - - public function __construct( - public string|null $created_at, - public string|null $error_code, - public string|null $message, - ) {} -} diff --git a/src/Objects/ActionAttemptFrom.php b/src/Objects/ActionAttemptFrom.php deleted file mode 100644 index c59cfd89..00000000 --- a/src/Objects/ActionAttemptFrom.php +++ /dev/null @@ -1,22 +0,0 @@ -ends_at ?? null, - starts_at: $json->starts_at ?? null, - ); - } - - public function __construct( - public string|null $ends_at, - public string|null $starts_at, - ) {} -} diff --git a/src/Objects/ActionAttemptPendingMutations.php b/src/Objects/ActionAttemptPendingMutations.php deleted file mode 100644 index 0536a889..00000000 --- a/src/Objects/ActionAttemptPendingMutations.php +++ /dev/null @@ -1,31 +0,0 @@ -created_at ?? null, - from: isset($json->from) - ? ActionAttemptFrom::from_json($json->from) - : null, - message: $json->message ?? null, - mutation_code: $json->mutation_code ?? null, - to: isset($json->to) ? ActionAttemptTo::from_json($json->to) : null, - ); - } - - public function __construct( - public string|null $created_at, - public ActionAttemptFrom|null $from, - public string|null $message, - public string|null $mutation_code, - public ActionAttemptTo|null $to, - ) {} -} diff --git a/src/Objects/ActionAttemptResult.php b/src/Objects/ActionAttemptResult.php deleted file mode 100644 index f5d9b06d..00000000 --- a/src/Objects/ActionAttemptResult.php +++ /dev/null @@ -1,129 +0,0 @@ -access_method ?? null, - access_method_id: $json->access_method_id ?? null, - acs_credential_id: $json->acs_credential_id ?? null, - acs_credential_on_encoder: isset($json->acs_credential_on_encoder) - ? ActionAttemptAcsCredentialOnEncoder::from_json( - $json->acs_credential_on_encoder, - ) - : null, - acs_credential_on_seam: isset($json->acs_credential_on_seam) - ? ActionAttemptAcsCredentialOnSeam::from_json( - $json->acs_credential_on_seam, - ) - : null, - acs_credential_pool_id: $json->acs_credential_pool_id ?? null, - acs_system_id: $json->acs_system_id ?? null, - acs_user_id: $json->acs_user_id ?? null, - assa_abloy_vostio_metadata: isset($json->assa_abloy_vostio_metadata) - ? ActionAttemptAssaAbloyVostioMetadata::from_json( - $json->assa_abloy_vostio_metadata, - ) - : null, - card_number: $json->card_number ?? null, - client_session_token: $json->client_session_token ?? null, - code: $json->code ?? null, - connected_account_id: $json->connected_account_id ?? null, - created_at: $json->created_at ?? null, - customization_profile_id: $json->customization_profile_id ?? null, - display_name: $json->display_name ?? null, - ends_at: $json->ends_at ?? null, - errors: array_map( - fn($e) => ActionAttemptErrors::from_json($e), - $json->errors ?? [], - ), - external_type: $json->external_type ?? null, - external_type_display_name: $json->external_type_display_name ?? - null, - instant_key_url: $json->instant_key_url ?? null, - is_assignment_required: $json->is_assignment_required ?? null, - is_encoding_required: $json->is_encoding_required ?? null, - is_issued: $json->is_issued ?? null, - is_latest_desired_state_synced_with_provider: $json->is_latest_desired_state_synced_with_provider ?? - null, - is_managed: $json->is_managed ?? null, - is_multi_phone_sync_credential: $json->is_multi_phone_sync_credential ?? - null, - is_one_time_use: $json->is_one_time_use ?? null, - is_ready_for_assignment: $json->is_ready_for_assignment ?? null, - is_ready_for_encoding: $json->is_ready_for_encoding ?? null, - issued_at: $json->issued_at ?? null, - latest_desired_state_synced_with_provider_at: $json->latest_desired_state_synced_with_provider_at ?? - null, - mode: $json->mode ?? null, - parent_acs_credential_id: $json->parent_acs_credential_id ?? null, - pending_mutations: array_map( - fn($p) => ActionAttemptPendingMutations::from_json($p), - $json->pending_mutations ?? [], - ), - starts_at: $json->starts_at ?? null, - user_identity_id: $json->user_identity_id ?? null, - visionline_metadata: isset($json->visionline_metadata) - ? ActionAttemptVisionlineMetadata::from_json( - $json->visionline_metadata, - ) - : null, - warnings: array_map( - fn($w) => ActionAttemptWarnings::from_json($w), - $json->warnings ?? [], - ), - was_confirmed_by_device: $json->was_confirmed_by_device ?? null, - workspace_id: $json->workspace_id ?? null, - ); - } - - public function __construct( - public string|null $access_method, - public string|null $access_method_id, - public string|null $acs_credential_id, - public ActionAttemptAcsCredentialOnEncoder|null $acs_credential_on_encoder, - public ActionAttemptAcsCredentialOnSeam|null $acs_credential_on_seam, - public string|null $acs_credential_pool_id, - public string|null $acs_system_id, - public string|null $acs_user_id, - public ActionAttemptAssaAbloyVostioMetadata|null $assa_abloy_vostio_metadata, - public string|null $card_number, - public string|null $client_session_token, - public string|null $code, - public string|null $connected_account_id, - public string|null $created_at, - public string|null $customization_profile_id, - public string|null $display_name, - public string|null $ends_at, - public array $errors, - public string|null $external_type, - public string|null $external_type_display_name, - public string|null $instant_key_url, - public bool|null $is_assignment_required, - public bool|null $is_encoding_required, - public bool|null $is_issued, - public bool|null $is_latest_desired_state_synced_with_provider, - public bool|null $is_managed, - public bool|null $is_multi_phone_sync_credential, - public bool|null $is_one_time_use, - public bool|null $is_ready_for_assignment, - public bool|null $is_ready_for_encoding, - public string|null $issued_at, - public string|null $latest_desired_state_synced_with_provider_at, - public string|null $mode, - public string|null $parent_acs_credential_id, - public array $pending_mutations, - public string|null $starts_at, - public string|null $user_identity_id, - public ActionAttemptVisionlineMetadata|null $visionline_metadata, - public array $warnings, - public bool|null $was_confirmed_by_device, - public string|null $workspace_id, - ) {} -} diff --git a/src/Objects/ActionAttemptTo.php b/src/Objects/ActionAttemptTo.php deleted file mode 100644 index 52d14277..00000000 --- a/src/Objects/ActionAttemptTo.php +++ /dev/null @@ -1,22 +0,0 @@ -ends_at ?? null, - starts_at: $json->starts_at ?? null, - ); - } - - public function __construct( - public string|null $ends_at, - public string|null $starts_at, - ) {} -} diff --git a/src/Objects/ActionAttemptVisionlineMetadata.php b/src/Objects/ActionAttemptVisionlineMetadata.php deleted file mode 100644 index a06c3e13..00000000 --- a/src/Objects/ActionAttemptVisionlineMetadata.php +++ /dev/null @@ -1,43 +0,0 @@ -cancelled ?? null, - card_format: $json->card_format ?? null, - card_holder: $json->card_holder ?? null, - card_id: $json->card_id ?? null, - common_acs_entrance_ids: $json->common_acs_entrance_ids ?? null, - discarded: $json->discarded ?? null, - expired: $json->expired ?? null, - guest_acs_entrance_ids: $json->guest_acs_entrance_ids ?? null, - number_of_issued_cards: $json->number_of_issued_cards ?? null, - overridden: $json->overridden ?? null, - overwritten: $json->overwritten ?? null, - pending_auto_update: $json->pending_auto_update ?? null, - ); - } - - public function __construct( - public bool|null $cancelled, - public string|null $card_format, - public string|null $card_holder, - public string|null $card_id, - public array|null $common_acs_entrance_ids, - public bool|null $discarded, - public bool|null $expired, - public array|null $guest_acs_entrance_ids, - public float|null $number_of_issued_cards, - public bool|null $overridden, - public bool|null $overwritten, - public bool|null $pending_auto_update, - ) {} -} diff --git a/src/Objects/ActionAttemptWarnings.php b/src/Objects/ActionAttemptWarnings.php deleted file mode 100644 index 114f1a57..00000000 --- a/src/Objects/ActionAttemptWarnings.php +++ /dev/null @@ -1,24 +0,0 @@ -created_at ?? null, - message: $json->message ?? null, - warning_code: $json->warning_code ?? null, - ); - } - - public function __construct( - public string|null $created_at, - public string|null $message, - public string|null $warning_code, - ) {} -} diff --git a/src/Objects/ConnectedAccount.php b/src/Objects/ConnectedAccount.php deleted file mode 100644 index 8def7b43..00000000 --- a/src/Objects/ConnectedAccount.php +++ /dev/null @@ -1,65 +0,0 @@ -accepted_capabilities ?? null, - account_type: $json->account_type ?? null, - account_type_display_name: $json->account_type_display_name ?? null, - automatically_manage_new_devices: $json->automatically_manage_new_devices ?? - null, - connected_account_id: $json->connected_account_id ?? null, - created_at: $json->created_at ?? null, - custom_metadata: $json->custom_metadata ?? null, - customer_key: $json->customer_key ?? null, - default_checkin_time: $json->default_checkin_time ?? null, - default_checkout_time: $json->default_checkout_time ?? null, - display_name: $json->display_name ?? null, - errors: array_map( - fn($e) => ConnectedAccountErrors::from_json($e), - $json->errors ?? [], - ), - ical_feed_origin: $json->ical_feed_origin ?? null, - ical_url: $json->ical_url ?? null, - image_url: $json->image_url ?? null, - time_zone: $json->time_zone ?? null, - user_identifier: isset($json->user_identifier) - ? ConnectedAccountUserIdentifier::from_json( - $json->user_identifier, - ) - : null, - warnings: array_map( - fn($w) => ConnectedAccountWarnings::from_json($w), - $json->warnings ?? [], - ), - ); - } - - public function __construct( - public array|null $accepted_capabilities, - public string|null $account_type, - public string|null $account_type_display_name, - public bool|null $automatically_manage_new_devices, - public string|null $connected_account_id, - public string|null $created_at, - public mixed $custom_metadata, - public string|null $customer_key, - public string|null $default_checkin_time, - public string|null $default_checkout_time, - public string|null $display_name, - public array $errors, - public string|null $ical_feed_origin, - public string|null $ical_url, - public string|null $image_url, - public string|null $time_zone, - public ConnectedAccountUserIdentifier|null $user_identifier, - public array $warnings, - ) {} -} diff --git a/src/Objects/ConnectedAccountErrors.php b/src/Objects/ConnectedAccountErrors.php deleted file mode 100644 index 454e6726..00000000 --- a/src/Objects/ConnectedAccountErrors.php +++ /dev/null @@ -1,35 +0,0 @@ -created_at ?? null, - error_code: $json->error_code ?? null, - is_bridge_error: $json->is_bridge_error ?? null, - is_connected_account_error: $json->is_connected_account_error ?? - null, - message: $json->message ?? null, - salto_ks_metadata: isset($json->salto_ks_metadata) - ? ConnectedAccountSaltoKsMetadata::from_json( - $json->salto_ks_metadata, - ) - : null, - ); - } - - public function __construct( - public string|null $created_at, - public string|null $error_code, - public bool|null $is_bridge_error, - public bool|null $is_connected_account_error, - public string|null $message, - public ConnectedAccountSaltoKsMetadata|null $salto_ks_metadata, - ) {} -} diff --git a/src/Objects/ConnectedAccountSaltoKsMetadata.php b/src/Objects/ConnectedAccountSaltoKsMetadata.php deleted file mode 100644 index 3e9b0de2..00000000 --- a/src/Objects/ConnectedAccountSaltoKsMetadata.php +++ /dev/null @@ -1,22 +0,0 @@ - ConnectedAccountSites::from_json($s), - $json->sites ?? [], - ), - ); - } - - public function __construct(public array $sites) {} -} diff --git a/src/Objects/ConnectedAccountSites.php b/src/Objects/ConnectedAccountSites.php deleted file mode 100644 index 133da75e..00000000 --- a/src/Objects/ConnectedAccountSites.php +++ /dev/null @@ -1,28 +0,0 @@ -site_id ?? null, - site_name: $json->site_name ?? null, - site_user_subscription_limit: $json->site_user_subscription_limit ?? - null, - subscribed_site_user_count: $json->subscribed_site_user_count ?? - null, - ); - } - - public function __construct( - public string|null $site_id, - public string|null $site_name, - public int|null $site_user_subscription_limit, - public int|null $subscribed_site_user_count, - ) {} -} diff --git a/src/Objects/ConnectedAccountUserIdentifier.php b/src/Objects/ConnectedAccountUserIdentifier.php deleted file mode 100644 index 553140a5..00000000 --- a/src/Objects/ConnectedAccountUserIdentifier.php +++ /dev/null @@ -1,29 +0,0 @@ -api_url ?? null, - email: $json->email ?? null, - exclusive: $json->exclusive ?? null, - phone: $json->phone ?? null, - username: $json->username ?? null, - ); - } - - public function __construct( - public string|null $api_url, - public string|null $email, - public bool|null $exclusive, - public string|null $phone, - public string|null $username, - ) {} -} diff --git a/src/Objects/ConnectedAccountWarnings.php b/src/Objects/ConnectedAccountWarnings.php deleted file mode 100644 index 609ccf18..00000000 --- a/src/Objects/ConnectedAccountWarnings.php +++ /dev/null @@ -1,30 +0,0 @@ -created_at ?? null, - message: $json->message ?? null, - salto_ks_metadata: isset($json->salto_ks_metadata) - ? ConnectedAccountSaltoKsMetadata::from_json( - $json->salto_ks_metadata, - ) - : null, - warning_code: $json->warning_code ?? null, - ); - } - - public function __construct( - public string|null $created_at, - public string|null $message, - public ConnectedAccountSaltoKsMetadata|null $salto_ks_metadata, - public string|null $warning_code, - ) {} -} diff --git a/src/Objects/Device.php b/src/Objects/Device.php deleted file mode 100644 index d75a50d7..00000000 --- a/src/Objects/Device.php +++ /dev/null @@ -1,118 +0,0 @@ -can_configure_auto_lock ?? null, - can_hvac_cool: $json->can_hvac_cool ?? null, - can_hvac_heat: $json->can_hvac_heat ?? null, - can_hvac_heat_cool: $json->can_hvac_heat_cool ?? null, - can_program_offline_access_codes: $json->can_program_offline_access_codes ?? - null, - can_program_online_access_codes: $json->can_program_online_access_codes ?? - null, - can_program_thermostat_programs_as_different_each_day: $json->can_program_thermostat_programs_as_different_each_day ?? - null, - can_program_thermostat_programs_as_same_each_day: $json->can_program_thermostat_programs_as_same_each_day ?? - null, - can_program_thermostat_programs_as_weekday_weekend: $json->can_program_thermostat_programs_as_weekday_weekend ?? - null, - can_remotely_lock: $json->can_remotely_lock ?? null, - can_remotely_unlock: $json->can_remotely_unlock ?? null, - can_run_thermostat_programs: $json->can_run_thermostat_programs ?? - null, - can_simulate_connection: $json->can_simulate_connection ?? null, - can_simulate_disconnection: $json->can_simulate_disconnection ?? - null, - can_simulate_hub_connection: $json->can_simulate_hub_connection ?? - null, - can_simulate_hub_disconnection: $json->can_simulate_hub_disconnection ?? - null, - can_simulate_paid_subscription: $json->can_simulate_paid_subscription ?? - null, - can_simulate_removal: $json->can_simulate_removal ?? null, - can_turn_off_hvac: $json->can_turn_off_hvac ?? null, - can_unlock_with_code: $json->can_unlock_with_code ?? null, - capabilities_supported: $json->capabilities_supported ?? null, - connected_account_id: $json->connected_account_id ?? null, - created_at: $json->created_at ?? null, - custom_metadata: $json->custom_metadata ?? null, - device_id: $json->device_id ?? null, - device_manufacturer: isset($json->device_manufacturer) - ? DeviceDeviceManufacturer::from_json( - $json->device_manufacturer, - ) - : null, - device_provider: isset($json->device_provider) - ? DeviceDeviceProvider::from_json($json->device_provider) - : null, - device_type: $json->device_type ?? null, - display_name: $json->display_name ?? null, - errors: array_map( - fn($e) => DeviceErrors::from_json($e), - $json->errors ?? [], - ), - is_managed: $json->is_managed ?? null, - location: isset($json->location) - ? DeviceLocation::from_json($json->location) - : null, - nickname: $json->nickname ?? null, - properties: isset($json->properties) - ? DeviceProperties::from_json($json->properties) - : null, - space_ids: $json->space_ids ?? null, - warnings: array_map( - fn($w) => DeviceWarnings::from_json($w), - $json->warnings ?? [], - ), - workspace_id: $json->workspace_id ?? null, - ); - } - - public function __construct( - public bool|null $can_configure_auto_lock, - public bool|null $can_hvac_cool, - public bool|null $can_hvac_heat, - public bool|null $can_hvac_heat_cool, - public bool|null $can_program_offline_access_codes, - public bool|null $can_program_online_access_codes, - public bool|null $can_program_thermostat_programs_as_different_each_day, - public bool|null $can_program_thermostat_programs_as_same_each_day, - public bool|null $can_program_thermostat_programs_as_weekday_weekend, - public bool|null $can_remotely_lock, - public bool|null $can_remotely_unlock, - public bool|null $can_run_thermostat_programs, - public bool|null $can_simulate_connection, - public bool|null $can_simulate_disconnection, - public bool|null $can_simulate_hub_connection, - public bool|null $can_simulate_hub_disconnection, - public bool|null $can_simulate_paid_subscription, - public bool|null $can_simulate_removal, - public bool|null $can_turn_off_hvac, - public bool|null $can_unlock_with_code, - public array|null $capabilities_supported, - public string|null $connected_account_id, - public string|null $created_at, - public mixed $custom_metadata, - public string|null $device_id, - public DeviceDeviceManufacturer|null $device_manufacturer, - public DeviceDeviceProvider|null $device_provider, - public string|null $device_type, - public string|null $display_name, - public array $errors, - public bool|null $is_managed, - public DeviceLocation|null $location, - public string|null $nickname, - public DeviceProperties|null $properties, - public array|null $space_ids, - public array $warnings, - public string|null $workspace_id, - ) {} -} diff --git a/src/Objects/DeviceAccelerometerZ.php b/src/Objects/DeviceAccelerometerZ.php deleted file mode 100644 index cd9a0fb5..00000000 --- a/src/Objects/DeviceAccelerometerZ.php +++ /dev/null @@ -1,19 +0,0 @@ -time ?? null, value: $json->value ?? null); - } - - public function __construct( - public string|null $time, - public float|null $value, - ) {} -} diff --git a/src/Objects/DeviceAccessoryKeypad.php b/src/Objects/DeviceAccessoryKeypad.php deleted file mode 100644 index 7503c437..00000000 --- a/src/Objects/DeviceAccessoryKeypad.php +++ /dev/null @@ -1,24 +0,0 @@ -battery) - ? DeviceBattery::from_json($json->battery) - : null, - is_connected: $json->is_connected ?? null, - ); - } - - public function __construct( - public DeviceBattery|null $battery, - public bool|null $is_connected, - ) {} -} diff --git a/src/Objects/DeviceActiveThermostatSchedule.php b/src/Objects/DeviceActiveThermostatSchedule.php deleted file mode 100644 index 5bbfe1a7..00000000 --- a/src/Objects/DeviceActiveThermostatSchedule.php +++ /dev/null @@ -1,45 +0,0 @@ -climate_preset_key ?? null, - created_at: $json->created_at ?? null, - device_id: $json->device_id ?? null, - ends_at: $json->ends_at ?? null, - errors: array_map( - fn($e) => DeviceErrors::from_json($e), - $json->errors ?? [], - ), - is_override_allowed: $json->is_override_allowed ?? null, - max_override_period_minutes: $json->max_override_period_minutes ?? - null, - name: $json->name ?? null, - starts_at: $json->starts_at ?? null, - thermostat_schedule_id: $json->thermostat_schedule_id ?? null, - workspace_id: $json->workspace_id ?? null, - ); - } - - public function __construct( - public string|null $climate_preset_key, - public string|null $created_at, - public string|null $device_id, - public string|null $ends_at, - public array $errors, - public bool|null $is_override_allowed, - public int|null $max_override_period_minutes, - public string|null $name, - public string|null $starts_at, - public string|null $thermostat_schedule_id, - public string|null $workspace_id, - ) {} -} diff --git a/src/Objects/DeviceAkilesMetadata.php b/src/Objects/DeviceAkilesMetadata.php deleted file mode 100644 index 74de411d..00000000 --- a/src/Objects/DeviceAkilesMetadata.php +++ /dev/null @@ -1,26 +0,0 @@ -_member_group_id ?? null, - gadget_id: $json->gadget_id ?? null, - gadget_name: $json->gadget_name ?? null, - product_name: $json->product_name ?? null, - ); - } - - public function __construct( - public string|null $_member_group_id, - public string|null $gadget_id, - public string|null $gadget_name, - public string|null $product_name, - ) {} -} diff --git a/src/Objects/DeviceAppearance.php b/src/Objects/DeviceAppearance.php deleted file mode 100644 index d4eebc6a..00000000 --- a/src/Objects/DeviceAppearance.php +++ /dev/null @@ -1,16 +0,0 @@ -name ?? null); - } - - public function __construct(public string|null $name) {} -} diff --git a/src/Objects/DeviceAqaraMetadata.php b/src/Objects/DeviceAqaraMetadata.php deleted file mode 100644 index 5e26e574..00000000 --- a/src/Objects/DeviceAqaraMetadata.php +++ /dev/null @@ -1,34 +0,0 @@ -device_name ?? null, - did: $json->did ?? null, - firmware_version: $json->firmware_version ?? null, - model: $json->model ?? null, - model_type: $json->model_type ?? null, - parent_did: $json->parent_did ?? null, - position_id: $json->position_id ?? null, - time_zone: $json->time_zone ?? null, - ); - } - - public function __construct( - public string|null $device_name, - public string|null $did, - public string|null $firmware_version, - public string|null $model, - public float|null $model_type, - public string|null $parent_did, - public string|null $position_id, - public string|null $time_zone, - ) {} -} diff --git a/src/Objects/DeviceAssaAbloyCredentialServiceMetadata.php b/src/Objects/DeviceAssaAbloyCredentialServiceMetadata.php deleted file mode 100644 index 4f9a816b..00000000 --- a/src/Objects/DeviceAssaAbloyCredentialServiceMetadata.php +++ /dev/null @@ -1,26 +0,0 @@ - DeviceEndpoints::from_json($e), - $json->endpoints ?? [], - ), - has_active_endpoint: $json->has_active_endpoint ?? null, - ); - } - - public function __construct( - public array $endpoints, - public bool|null $has_active_endpoint, - ) {} -} diff --git a/src/Objects/DeviceAssaAbloyVostioMetadata.php b/src/Objects/DeviceAssaAbloyVostioMetadata.php deleted file mode 100644 index 9be33bc9..00000000 --- a/src/Objects/DeviceAssaAbloyVostioMetadata.php +++ /dev/null @@ -1,17 +0,0 @@ -encoder_name ?? null); - } - - public function __construct(public string|null $encoder_name) {} -} diff --git a/src/Objects/DeviceAugustMetadata.php b/src/Objects/DeviceAugustMetadata.php deleted file mode 100644 index 5dcbbdfe..00000000 --- a/src/Objects/DeviceAugustMetadata.php +++ /dev/null @@ -1,32 +0,0 @@ -has_keypad ?? null, - house_id: $json->house_id ?? null, - house_name: $json->house_name ?? null, - keypad_battery_level: $json->keypad_battery_level ?? null, - lock_id: $json->lock_id ?? null, - lock_name: $json->lock_name ?? null, - model: $json->model ?? null, - ); - } - - public function __construct( - public bool|null $has_keypad, - public string|null $house_id, - public string|null $house_name, - public string|null $keypad_battery_level, - public string|null $lock_id, - public string|null $lock_name, - public string|null $model, - ) {} -} diff --git a/src/Objects/DeviceAvailableClimatePresets.php b/src/Objects/DeviceAvailableClimatePresets.php deleted file mode 100644 index fa114afb..00000000 --- a/src/Objects/DeviceAvailableClimatePresets.php +++ /dev/null @@ -1,54 +0,0 @@ -can_delete ?? null, - can_edit: $json->can_edit ?? null, - can_use_with_thermostat_daily_programs: $json->can_use_with_thermostat_daily_programs ?? - null, - climate_preset_key: $json->climate_preset_key ?? null, - climate_preset_mode: $json->climate_preset_mode ?? null, - cooling_set_point_celsius: $json->cooling_set_point_celsius ?? null, - cooling_set_point_fahrenheit: $json->cooling_set_point_fahrenheit ?? - null, - display_name: $json->display_name ?? null, - ecobee_metadata: isset($json->ecobee_metadata) - ? DeviceEcobeeMetadata::from_json($json->ecobee_metadata) - : null, - fan_mode_setting: $json->fan_mode_setting ?? null, - heating_set_point_celsius: $json->heating_set_point_celsius ?? null, - heating_set_point_fahrenheit: $json->heating_set_point_fahrenheit ?? - null, - hvac_mode_setting: $json->hvac_mode_setting ?? null, - manual_override_allowed: $json->manual_override_allowed ?? null, - name: $json->name ?? null, - ); - } - - public function __construct( - public bool|null $can_delete, - public bool|null $can_edit, - public bool|null $can_use_with_thermostat_daily_programs, - public string|null $climate_preset_key, - public string|null $climate_preset_mode, - public float|null $cooling_set_point_celsius, - public float|null $cooling_set_point_fahrenheit, - public string|null $display_name, - public DeviceEcobeeMetadata|null $ecobee_metadata, - public string|null $fan_mode_setting, - public float|null $heating_set_point_celsius, - public float|null $heating_set_point_fahrenheit, - public string|null $hvac_mode_setting, - public bool|null $manual_override_allowed, - public string|null $name, - ) {} -} diff --git a/src/Objects/DeviceAvigilonAltaMetadata.php b/src/Objects/DeviceAvigilonAltaMetadata.php deleted file mode 100644 index 4f594a06..00000000 --- a/src/Objects/DeviceAvigilonAltaMetadata.php +++ /dev/null @@ -1,33 +0,0 @@ -entry_name ?? null, - entry_relays_total_count: $json->entry_relays_total_count ?? null, - org_name: $json->org_name ?? null, - site_id: $json->site_id ?? null, - site_name: $json->site_name ?? null, - zone_id: $json->zone_id ?? null, - zone_name: $json->zone_name ?? null, - ); - } - - public function __construct( - public string|null $entry_name, - public float|null $entry_relays_total_count, - public string|null $org_name, - public float|null $site_id, - public string|null $site_name, - public float|null $zone_id, - public string|null $zone_name, - ) {} -} diff --git a/src/Objects/DeviceBattery.php b/src/Objects/DeviceBattery.php deleted file mode 100644 index bfc9bb39..00000000 --- a/src/Objects/DeviceBattery.php +++ /dev/null @@ -1,16 +0,0 @@ -level ?? null); - } - - public function __construct(public float|null $level) {} -} diff --git a/src/Objects/DeviceBrivoMetadata.php b/src/Objects/DeviceBrivoMetadata.php deleted file mode 100644 index 597964b2..00000000 --- a/src/Objects/DeviceBrivoMetadata.php +++ /dev/null @@ -1,22 +0,0 @@ -activation_enabled ?? null, - device_name: $json->device_name ?? null, - ); - } - - public function __construct( - public bool|null $activation_enabled, - public string|null $device_name, - ) {} -} diff --git a/src/Objects/DeviceCodeConstraints.php b/src/Objects/DeviceCodeConstraints.php deleted file mode 100644 index dbb52b65..00000000 --- a/src/Objects/DeviceCodeConstraints.php +++ /dev/null @@ -1,24 +0,0 @@ -constraint_type ?? null, - max_length: $json->max_length ?? null, - min_length: $json->min_length ?? null, - ); - } - - public function __construct( - public string|null $constraint_type, - public float|null $max_length, - public float|null $min_length, - ) {} -} diff --git a/src/Objects/DeviceControlbywebMetadata.php b/src/Objects/DeviceControlbywebMetadata.php deleted file mode 100644 index ba5c50c6..00000000 --- a/src/Objects/DeviceControlbywebMetadata.php +++ /dev/null @@ -1,25 +0,0 @@ -device_id ?? null, - device_name: $json->device_name ?? null, - relay_name: $json->relay_name ?? null, - ); - } - - public function __construct( - public string|null $device_id, - public string|null $device_name, - public string|null $relay_name, - ) {} -} diff --git a/src/Objects/DeviceCurrentClimateSetting.php b/src/Objects/DeviceCurrentClimateSetting.php deleted file mode 100644 index cff82418..00000000 --- a/src/Objects/DeviceCurrentClimateSetting.php +++ /dev/null @@ -1,54 +0,0 @@ -can_delete ?? null, - can_edit: $json->can_edit ?? null, - can_use_with_thermostat_daily_programs: $json->can_use_with_thermostat_daily_programs ?? - null, - climate_preset_key: $json->climate_preset_key ?? null, - climate_preset_mode: $json->climate_preset_mode ?? null, - cooling_set_point_celsius: $json->cooling_set_point_celsius ?? null, - cooling_set_point_fahrenheit: $json->cooling_set_point_fahrenheit ?? - null, - display_name: $json->display_name ?? null, - ecobee_metadata: isset($json->ecobee_metadata) - ? DeviceEcobeeMetadata::from_json($json->ecobee_metadata) - : null, - fan_mode_setting: $json->fan_mode_setting ?? null, - heating_set_point_celsius: $json->heating_set_point_celsius ?? null, - heating_set_point_fahrenheit: $json->heating_set_point_fahrenheit ?? - null, - hvac_mode_setting: $json->hvac_mode_setting ?? null, - manual_override_allowed: $json->manual_override_allowed ?? null, - name: $json->name ?? null, - ); - } - - public function __construct( - public bool|null $can_delete, - public bool|null $can_edit, - public bool|null $can_use_with_thermostat_daily_programs, - public string|null $climate_preset_key, - public string|null $climate_preset_mode, - public float|null $cooling_set_point_celsius, - public float|null $cooling_set_point_fahrenheit, - public string|null $display_name, - public DeviceEcobeeMetadata|null $ecobee_metadata, - public string|null $fan_mode_setting, - public float|null $heating_set_point_celsius, - public float|null $heating_set_point_fahrenheit, - public string|null $hvac_mode_setting, - public bool|null $manual_override_allowed, - public string|null $name, - ) {} -} diff --git a/src/Objects/DeviceDefaultClimateSetting.php b/src/Objects/DeviceDefaultClimateSetting.php deleted file mode 100644 index e0f7cd01..00000000 --- a/src/Objects/DeviceDefaultClimateSetting.php +++ /dev/null @@ -1,54 +0,0 @@ -can_delete ?? null, - can_edit: $json->can_edit ?? null, - can_use_with_thermostat_daily_programs: $json->can_use_with_thermostat_daily_programs ?? - null, - climate_preset_key: $json->climate_preset_key ?? null, - climate_preset_mode: $json->climate_preset_mode ?? null, - cooling_set_point_celsius: $json->cooling_set_point_celsius ?? null, - cooling_set_point_fahrenheit: $json->cooling_set_point_fahrenheit ?? - null, - display_name: $json->display_name ?? null, - ecobee_metadata: isset($json->ecobee_metadata) - ? DeviceEcobeeMetadata::from_json($json->ecobee_metadata) - : null, - fan_mode_setting: $json->fan_mode_setting ?? null, - heating_set_point_celsius: $json->heating_set_point_celsius ?? null, - heating_set_point_fahrenheit: $json->heating_set_point_fahrenheit ?? - null, - hvac_mode_setting: $json->hvac_mode_setting ?? null, - manual_override_allowed: $json->manual_override_allowed ?? null, - name: $json->name ?? null, - ); - } - - public function __construct( - public bool|null $can_delete, - public bool|null $can_edit, - public bool|null $can_use_with_thermostat_daily_programs, - public string|null $climate_preset_key, - public string|null $climate_preset_mode, - public float|null $cooling_set_point_celsius, - public float|null $cooling_set_point_fahrenheit, - public string|null $display_name, - public DeviceEcobeeMetadata|null $ecobee_metadata, - public string|null $fan_mode_setting, - public float|null $heating_set_point_celsius, - public float|null $heating_set_point_fahrenheit, - public string|null $hvac_mode_setting, - public bool|null $manual_override_allowed, - public string|null $name, - ) {} -} diff --git a/src/Objects/DeviceDeviceManufacturer.php b/src/Objects/DeviceDeviceManufacturer.php deleted file mode 100644 index cc5bc1eb..00000000 --- a/src/Objects/DeviceDeviceManufacturer.php +++ /dev/null @@ -1,24 +0,0 @@ -display_name ?? null, - image_url: $json->image_url ?? null, - manufacturer: $json->manufacturer ?? null, - ); - } - - public function __construct( - public string|null $display_name, - public string|null $image_url, - public string|null $manufacturer, - ) {} -} diff --git a/src/Objects/DeviceDeviceProvider.php b/src/Objects/DeviceDeviceProvider.php deleted file mode 100644 index f27bc4f1..00000000 --- a/src/Objects/DeviceDeviceProvider.php +++ /dev/null @@ -1,26 +0,0 @@ -device_provider_name ?? null, - display_name: $json->display_name ?? null, - image_url: $json->image_url ?? null, - provider_category: $json->provider_category ?? null, - ); - } - - public function __construct( - public string|null $device_provider_name, - public string|null $display_name, - public string|null $image_url, - public string|null $provider_category, - ) {} -} diff --git a/src/Objects/DeviceDormakabaOracodeMetadata.php b/src/Objects/DeviceDormakabaOracodeMetadata.php deleted file mode 100644 index 36abe8bc..00000000 --- a/src/Objects/DeviceDormakabaOracodeMetadata.php +++ /dev/null @@ -1,38 +0,0 @@ -device_id ?? null, - door_id: $json->door_id ?? null, - door_is_wireless: $json->door_is_wireless ?? null, - door_name: $json->door_name ?? null, - iana_timezone: $json->iana_timezone ?? null, - predefined_time_slots: array_map( - fn($p) => DevicePredefinedTimeSlots::from_json($p), - $json->predefined_time_slots ?? [], - ), - site_id: $json->site_id ?? null, - site_name: $json->site_name ?? null, - ); - } - - public function __construct( - public mixed $device_id, - public float|null $door_id, - public bool|null $door_is_wireless, - public string|null $door_name, - public string|null $iana_timezone, - public array $predefined_time_slots, - public float|null $site_id, - public string|null $site_name, - ) {} -} diff --git a/src/Objects/DeviceEcobeeMetadata.php b/src/Objects/DeviceEcobeeMetadata.php deleted file mode 100644 index cd74c93b..00000000 --- a/src/Objects/DeviceEcobeeMetadata.php +++ /dev/null @@ -1,22 +0,0 @@ -device_name ?? null, - ecobee_device_id: $json->ecobee_device_id ?? null, - ); - } - - public function __construct( - public string|null $device_name, - public string|null $ecobee_device_id, - ) {} -} diff --git a/src/Objects/DeviceEndpoints.php b/src/Objects/DeviceEndpoints.php deleted file mode 100644 index 38d003ad..00000000 --- a/src/Objects/DeviceEndpoints.php +++ /dev/null @@ -1,22 +0,0 @@ -endpoint_id ?? null, - is_active: $json->is_active ?? null, - ); - } - - public function __construct( - public string|null $endpoint_id, - public bool|null $is_active, - ) {} -} diff --git a/src/Objects/DeviceErrors.php b/src/Objects/DeviceErrors.php deleted file mode 100644 index 6a6b66d1..00000000 --- a/src/Objects/DeviceErrors.php +++ /dev/null @@ -1,31 +0,0 @@ -created_at ?? null, - error_code: $json->error_code ?? null, - is_bridge_error: $json->is_bridge_error ?? null, - is_connected_account_error: $json->is_connected_account_error ?? - null, - is_device_error: $json->is_device_error ?? null, - message: $json->message ?? null, - ); - } - - public function __construct( - public string|null $created_at, - public string|null $error_code, - public bool|null $is_bridge_error, - public bool|null $is_connected_account_error, - public bool|null $is_device_error, - public string|null $message, - ) {} -} diff --git a/src/Objects/DeviceFeatures.php b/src/Objects/DeviceFeatures.php deleted file mode 100644 index 9a143241..00000000 --- a/src/Objects/DeviceFeatures.php +++ /dev/null @@ -1,33 +0,0 @@ -auto_lock_time_config ?? null, - incomplete_keyboard_passcode: $json->incomplete_keyboard_passcode ?? - null, - lock_command: $json->lock_command ?? null, - passcode: $json->passcode ?? null, - passcode_management: $json->passcode_management ?? null, - unlock_via_gateway: $json->unlock_via_gateway ?? null, - wifi: $json->wifi ?? null, - ); - } - - public function __construct( - public bool|null $auto_lock_time_config, - public bool|null $incomplete_keyboard_passcode, - public bool|null $lock_command, - public bool|null $passcode, - public bool|null $passcode_management, - public bool|null $unlock_via_gateway, - public bool|null $wifi, - ) {} -} diff --git a/src/Objects/DeviceFourSuitesMetadata.php b/src/Objects/DeviceFourSuitesMetadata.php deleted file mode 100644 index 4355fddd..00000000 --- a/src/Objects/DeviceFourSuitesMetadata.php +++ /dev/null @@ -1,24 +0,0 @@ -device_id ?? null, - device_name: $json->device_name ?? null, - reclose_delay_in_seconds: $json->reclose_delay_in_seconds ?? null, - ); - } - - public function __construct( - public float|null $device_id, - public string|null $device_name, - public float|null $reclose_delay_in_seconds, - ) {} -} diff --git a/src/Objects/DeviceGenieMetadata.php b/src/Objects/DeviceGenieMetadata.php deleted file mode 100644 index 76810635..00000000 --- a/src/Objects/DeviceGenieMetadata.php +++ /dev/null @@ -1,22 +0,0 @@ -device_name ?? null, - door_name: $json->door_name ?? null, - ); - } - - public function __construct( - public string|null $device_name, - public string|null $door_name, - ) {} -} diff --git a/src/Objects/DeviceHoneywellResideoMetadata.php b/src/Objects/DeviceHoneywellResideoMetadata.php deleted file mode 100644 index 57b5b46b..00000000 --- a/src/Objects/DeviceHoneywellResideoMetadata.php +++ /dev/null @@ -1,24 +0,0 @@ -device_name ?? null, - honeywell_resideo_device_id: $json->honeywell_resideo_device_id ?? - null, - ); - } - - public function __construct( - public string|null $device_name, - public string|null $honeywell_resideo_device_id, - ) {} -} diff --git a/src/Objects/DeviceHumidity.php b/src/Objects/DeviceHumidity.php deleted file mode 100644 index a24dde61..00000000 --- a/src/Objects/DeviceHumidity.php +++ /dev/null @@ -1,19 +0,0 @@ -time ?? null, value: $json->value ?? null); - } - - public function __construct( - public string|null $time, - public float|null $value, - ) {} -} diff --git a/src/Objects/DeviceIglooMetadata.php b/src/Objects/DeviceIglooMetadata.php deleted file mode 100644 index 8c135dab..00000000 --- a/src/Objects/DeviceIglooMetadata.php +++ /dev/null @@ -1,24 +0,0 @@ -bridge_id ?? null, - device_id: $json->device_id ?? null, - model: $json->model ?? null, - ); - } - - public function __construct( - public string|null $bridge_id, - public string|null $device_id, - public string|null $model, - ) {} -} diff --git a/src/Objects/DeviceIgloohomeMetadata.php b/src/Objects/DeviceIgloohomeMetadata.php deleted file mode 100644 index f089a5ae..00000000 --- a/src/Objects/DeviceIgloohomeMetadata.php +++ /dev/null @@ -1,31 +0,0 @@ -bridge_id ?? null, - bridge_name: $json->bridge_name ?? null, - device_id: $json->device_id ?? null, - device_name: $json->device_name ?? null, - is_accessory_keypad_linked_to_bridge: $json->is_accessory_keypad_linked_to_bridge ?? - null, - keypad_id: $json->keypad_id ?? null, - ); - } - - public function __construct( - public string|null $bridge_id, - public string|null $bridge_name, - public string|null $device_id, - public string|null $device_name, - public bool|null $is_accessory_keypad_linked_to_bridge, - public string|null $keypad_id, - ) {} -} diff --git a/src/Objects/DeviceKeynestMetadata.php b/src/Objects/DeviceKeynestMetadata.php deleted file mode 100644 index 072485f0..00000000 --- a/src/Objects/DeviceKeynestMetadata.php +++ /dev/null @@ -1,60 +0,0 @@ -address ?? null, - current_or_last_store_id: $json->current_or_last_store_id ?? null, - current_status: $json->current_status ?? null, - current_user_company: $json->current_user_company ?? null, - current_user_email: $json->current_user_email ?? null, - current_user_name: $json->current_user_name ?? null, - current_user_phone_number: $json->current_user_phone_number ?? null, - default_office_id: $json->default_office_id ?? null, - device_name: $json->device_name ?? null, - fob_id: $json->fob_id ?? null, - handover_method: $json->handover_method ?? null, - has_photo: $json->has_photo ?? null, - is_quadient_locker: $json->is_quadient_locker ?? null, - key_id: $json->key_id ?? null, - key_notes: $json->key_notes ?? null, - keynest_app_user: $json->keynest_app_user ?? null, - last_movement: $json->last_movement ?? null, - property_id: $json->property_id ?? null, - property_postcode: $json->property_postcode ?? null, - status_type: $json->status_type ?? null, - subscription_plan: $json->subscription_plan ?? null, - ); - } - - public function __construct( - public string|null $address, - public float|null $current_or_last_store_id, - public string|null $current_status, - public string|null $current_user_company, - public string|null $current_user_email, - public string|null $current_user_name, - public string|null $current_user_phone_number, - public float|null $default_office_id, - public string|null $device_name, - public float|null $fob_id, - public string|null $handover_method, - public bool|null $has_photo, - public bool|null $is_quadient_locker, - public string|null $key_id, - public string|null $key_notes, - public string|null $keynest_app_user, - public string|null $last_movement, - public string|null $property_id, - public string|null $property_postcode, - public string|null $status_type, - public string|null $subscription_plan, - ) {} -} diff --git a/src/Objects/DeviceKeypadBattery.php b/src/Objects/DeviceKeypadBattery.php deleted file mode 100644 index cdfe474d..00000000 --- a/src/Objects/DeviceKeypadBattery.php +++ /dev/null @@ -1,16 +0,0 @@ -level ?? null); - } - - public function __construct(public float|null $level) {} -} diff --git a/src/Objects/DeviceKisiMetadata.php b/src/Objects/DeviceKisiMetadata.php deleted file mode 100644 index 81ac7207..00000000 --- a/src/Objects/DeviceKisiMetadata.php +++ /dev/null @@ -1,26 +0,0 @@ -description ?? null, - lock_id: $json->lock_id ?? null, - lock_name: $json->lock_name ?? null, - place_name: $json->place_name ?? null, - ); - } - - public function __construct( - public string|null $description, - public float|null $lock_id, - public string|null $lock_name, - public string|null $place_name, - ) {} -} diff --git a/src/Objects/DeviceKorelockMetadata.php b/src/Objects/DeviceKorelockMetadata.php deleted file mode 100644 index 17e4043b..00000000 --- a/src/Objects/DeviceKorelockMetadata.php +++ /dev/null @@ -1,32 +0,0 @@ -device_id ?? null, - device_name: $json->device_name ?? null, - firmware_version: $json->firmware_version ?? null, - location_id: $json->location_id ?? null, - model_code: $json->model_code ?? null, - serial_number: $json->serial_number ?? null, - wifi_signal_strength: $json->wifi_signal_strength ?? null, - ); - } - - public function __construct( - public string|null $device_id, - public string|null $device_name, - public string|null $firmware_version, - public string|null $location_id, - public string|null $model_code, - public string|null $serial_number, - public float|null $wifi_signal_strength, - ) {} -} diff --git a/src/Objects/DeviceKwiksetMetadata.php b/src/Objects/DeviceKwiksetMetadata.php deleted file mode 100644 index 2f909e0a..00000000 --- a/src/Objects/DeviceKwiksetMetadata.php +++ /dev/null @@ -1,24 +0,0 @@ -device_id ?? null, - device_name: $json->device_name ?? null, - model_number: $json->model_number ?? null, - ); - } - - public function __construct( - public string|null $device_id, - public string|null $device_name, - public string|null $model_number, - ) {} -} diff --git a/src/Objects/DeviceLatestSensorValues.php b/src/Objects/DeviceLatestSensorValues.php deleted file mode 100644 index b571503e..00000000 --- a/src/Objects/DeviceLatestSensorValues.php +++ /dev/null @@ -1,38 +0,0 @@ -accelerometer_z) - ? DeviceAccelerometerZ::from_json($json->accelerometer_z) - : null, - humidity: isset($json->humidity) - ? DeviceHumidity::from_json($json->humidity) - : null, - pressure: isset($json->pressure) - ? DevicePressure::from_json($json->pressure) - : null, - sound: isset($json->sound) - ? DeviceSound::from_json($json->sound) - : null, - temperature: isset($json->temperature) - ? DeviceTemperature::from_json($json->temperature) - : null, - ); - } - - public function __construct( - public DeviceAccelerometerZ|null $accelerometer_z, - public DeviceHumidity|null $humidity, - public DevicePressure|null $pressure, - public DeviceSound|null $sound, - public DeviceTemperature|null $temperature, - ) {} -} diff --git a/src/Objects/DeviceLocation.php b/src/Objects/DeviceLocation.php deleted file mode 100644 index 6dcf100f..00000000 --- a/src/Objects/DeviceLocation.php +++ /dev/null @@ -1,24 +0,0 @@ -location_name ?? null, - time_zone: $json->time_zone ?? null, - timezone: $json->timezone ?? null, - ); - } - - public function __construct( - public string|null $location_name, - public string|null $time_zone, - public string|null $timezone, - ) {} -} diff --git a/src/Objects/DeviceLocklyMetadata.php b/src/Objects/DeviceLocklyMetadata.php deleted file mode 100644 index a103d1a5..00000000 --- a/src/Objects/DeviceLocklyMetadata.php +++ /dev/null @@ -1,24 +0,0 @@ -device_id ?? null, - device_name: $json->device_name ?? null, - model: $json->model ?? null, - ); - } - - public function __construct( - public string|null $device_id, - public string|null $device_name, - public string|null $model, - ) {} -} diff --git a/src/Objects/DeviceMinutMetadata.php b/src/Objects/DeviceMinutMetadata.php deleted file mode 100644 index 01160965..00000000 --- a/src/Objects/DeviceMinutMetadata.php +++ /dev/null @@ -1,28 +0,0 @@ -device_id ?? null, - device_name: $json->device_name ?? null, - latest_sensor_values: isset($json->latest_sensor_values) - ? DeviceLatestSensorValues::from_json( - $json->latest_sensor_values, - ) - : null, - ); - } - - public function __construct( - public string|null $device_id, - public string|null $device_name, - public DeviceLatestSensorValues|null $latest_sensor_values, - ) {} -} diff --git a/src/Objects/DeviceModel.php b/src/Objects/DeviceModel.php deleted file mode 100644 index 248fb31b..00000000 --- a/src/Objects/DeviceModel.php +++ /dev/null @@ -1,36 +0,0 @@ -accessory_keypad_supported ?? - null, - can_connect_accessory_keypad: $json->can_connect_accessory_keypad ?? - null, - display_name: $json->display_name ?? null, - has_built_in_keypad: $json->has_built_in_keypad ?? null, - manufacturer_display_name: $json->manufacturer_display_name ?? null, - offline_access_codes_supported: $json->offline_access_codes_supported ?? - null, - online_access_codes_supported: $json->online_access_codes_supported ?? - null, - ); - } - - public function __construct( - public bool|null $accessory_keypad_supported, - public bool|null $can_connect_accessory_keypad, - public string|null $display_name, - public bool|null $has_built_in_keypad, - public string|null $manufacturer_display_name, - public bool|null $offline_access_codes_supported, - public bool|null $online_access_codes_supported, - ) {} -} diff --git a/src/Objects/DeviceNestMetadata.php b/src/Objects/DeviceNestMetadata.php deleted file mode 100644 index 14e073d5..00000000 --- a/src/Objects/DeviceNestMetadata.php +++ /dev/null @@ -1,26 +0,0 @@ -device_custom_name ?? null, - device_name: $json->device_name ?? null, - display_name: $json->display_name ?? null, - nest_device_id: $json->nest_device_id ?? null, - ); - } - - public function __construct( - public string|null $device_custom_name, - public string|null $device_name, - public string|null $display_name, - public string|null $nest_device_id, - ) {} -} diff --git a/src/Objects/DeviceNoiseawareMetadata.php b/src/Objects/DeviceNoiseawareMetadata.php deleted file mode 100644 index 154fec7d..00000000 --- a/src/Objects/DeviceNoiseawareMetadata.php +++ /dev/null @@ -1,28 +0,0 @@ -device_id ?? null, - device_model: $json->device_model ?? null, - device_name: $json->device_name ?? null, - noise_level_decibel: $json->noise_level_decibel ?? null, - noise_level_nrs: $json->noise_level_nrs ?? null, - ); - } - - public function __construct( - public string|null $device_id, - public string|null $device_model, - public string|null $device_name, - public float|null $noise_level_decibel, - public float|null $noise_level_nrs, - ) {} -} diff --git a/src/Objects/DeviceNukiMetadata.php b/src/Objects/DeviceNukiMetadata.php deleted file mode 100644 index f0822548..00000000 --- a/src/Objects/DeviceNukiMetadata.php +++ /dev/null @@ -1,28 +0,0 @@ -device_id ?? null, - device_name: $json->device_name ?? null, - keypad_2_paired: $json->keypad_2_paired ?? null, - keypad_battery_critical: $json->keypad_battery_critical ?? null, - keypad_paired: $json->keypad_paired ?? null, - ); - } - - public function __construct( - public string|null $device_id, - public string|null $device_name, - public bool|null $keypad_2_paired, - public bool|null $keypad_battery_critical, - public bool|null $keypad_paired, - ) {} -} diff --git a/src/Objects/DeviceOfflineTimeFrameOptions.php b/src/Objects/DeviceOfflineTimeFrameOptions.php deleted file mode 100644 index 4c38466d..00000000 --- a/src/Objects/DeviceOfflineTimeFrameOptions.php +++ /dev/null @@ -1,39 +0,0 @@ -display_name ?? null, - end_date_recurrence_rule: $json->end_date_recurrence_rule ?? null, - matching_start_end_time: $json->matching_start_end_time ?? null, - max_duration: $json->max_duration ?? null, - min_duration: $json->min_duration ?? null, - start_date_recurrence_rule: $json->start_date_recurrence_rule ?? - null, - time_pairs: array_map( - fn($t) => DeviceTimePairs::from_json($t), - $json->time_pairs ?? [], - ), - time_zone: $json->time_zone ?? null, - ); - } - - public function __construct( - public string|null $display_name, - public string|null $end_date_recurrence_rule, - public bool|null $matching_start_end_time, - public string|null $max_duration, - public string|null $min_duration, - public string|null $start_date_recurrence_rule, - public array $time_pairs, - public string|null $time_zone, - ) {} -} diff --git a/src/Objects/DeviceOmnitecMetadata.php b/src/Objects/DeviceOmnitecMetadata.php deleted file mode 100644 index aec1ac4e..00000000 --- a/src/Objects/DeviceOmnitecMetadata.php +++ /dev/null @@ -1,32 +0,0 @@ -has_gateway ?? null, - lock_alias: $json->lock_alias ?? null, - lock_id: $json->lock_id ?? null, - lock_mac: $json->lock_mac ?? null, - lock_name: $json->lock_name ?? null, - time_zone: $json->time_zone ?? null, - timezone_raw_offset_ms: $json->timezone_raw_offset_ms ?? null, - ); - } - - public function __construct( - public bool|null $has_gateway, - public string|null $lock_alias, - public float|null $lock_id, - public string|null $lock_mac, - public string|null $lock_name, - public string|null $time_zone, - public float|null $timezone_raw_offset_ms, - ) {} -} diff --git a/src/Objects/DeviceOnlineTimeFrameOptions.php b/src/Objects/DeviceOnlineTimeFrameOptions.php deleted file mode 100644 index 85435485..00000000 --- a/src/Objects/DeviceOnlineTimeFrameOptions.php +++ /dev/null @@ -1,39 +0,0 @@ -display_name ?? null, - end_date_recurrence_rule: $json->end_date_recurrence_rule ?? null, - matching_start_end_time: $json->matching_start_end_time ?? null, - max_duration: $json->max_duration ?? null, - min_duration: $json->min_duration ?? null, - start_date_recurrence_rule: $json->start_date_recurrence_rule ?? - null, - time_pairs: array_map( - fn($t) => DeviceTimePairs::from_json($t), - $json->time_pairs ?? [], - ), - time_zone: $json->time_zone ?? null, - ); - } - - public function __construct( - public string|null $display_name, - public string|null $end_date_recurrence_rule, - public bool|null $matching_start_end_time, - public string|null $max_duration, - public string|null $min_duration, - public string|null $start_date_recurrence_rule, - public array $time_pairs, - public string|null $time_zone, - ) {} -} diff --git a/src/Objects/DevicePeriods.php b/src/Objects/DevicePeriods.php deleted file mode 100644 index b65cfe65..00000000 --- a/src/Objects/DevicePeriods.php +++ /dev/null @@ -1,22 +0,0 @@ -climate_preset_key ?? null, - starts_at_time: $json->starts_at_time ?? null, - ); - } - - public function __construct( - public string|null $climate_preset_key, - public string|null $starts_at_time, - ) {} -} diff --git a/src/Objects/DevicePredefinedTimeSlots.php b/src/Objects/DevicePredefinedTimeSlots.php deleted file mode 100644 index 01ff0ba6..00000000 --- a/src/Objects/DevicePredefinedTimeSlots.php +++ /dev/null @@ -1,41 +0,0 @@ -check_in_time ?? null, - check_out_time: $json->check_out_time ?? null, - dormakaba_oracode_user_level_id: $json->dormakaba_oracode_user_level_id ?? - null, - dormakaba_oracode_user_level_prefix: $json->dormakaba_oracode_user_level_prefix ?? - null, - is_24_hour: $json->is_24_hour ?? null, - is_biweekly_mode: $json->is_biweekly_mode ?? null, - is_master: $json->is_master ?? null, - is_one_shot: $json->is_one_shot ?? null, - name: $json->name ?? null, - prefix: $json->prefix ?? null, - ); - } - - public function __construct( - public string|null $check_in_time, - public string|null $check_out_time, - public string|null $dormakaba_oracode_user_level_id, - public float|null $dormakaba_oracode_user_level_prefix, - public bool|null $is_24_hour, - public bool|null $is_biweekly_mode, - public bool|null $is_master, - public bool|null $is_one_shot, - public string|null $name, - public float|null $prefix, - ) {} -} diff --git a/src/Objects/DevicePressure.php b/src/Objects/DevicePressure.php deleted file mode 100644 index c9696333..00000000 --- a/src/Objects/DevicePressure.php +++ /dev/null @@ -1,19 +0,0 @@ -time ?? null, value: $json->value ?? null); - } - - public function __construct( - public string|null $time, - public float|null $value, - ) {} -} diff --git a/src/Objects/DeviceProperties.php b/src/Objects/DeviceProperties.php deleted file mode 100644 index 51bde1d8..00000000 --- a/src/Objects/DeviceProperties.php +++ /dev/null @@ -1,405 +0,0 @@ -accessory_keypad) - ? DeviceAccessoryKeypad::from_json($json->accessory_keypad) - : null, - active_thermostat_schedule: isset($json->active_thermostat_schedule) - ? DeviceActiveThermostatSchedule::from_json( - $json->active_thermostat_schedule, - ) - : null, - active_thermostat_schedule_id: $json->active_thermostat_schedule_id ?? - null, - akiles_metadata: isset($json->akiles_metadata) - ? DeviceAkilesMetadata::from_json($json->akiles_metadata) - : null, - appearance: isset($json->appearance) - ? DeviceAppearance::from_json($json->appearance) - : null, - aqara_metadata: isset($json->aqara_metadata) - ? DeviceAqaraMetadata::from_json($json->aqara_metadata) - : null, - assa_abloy_credential_service_metadata: isset( - $json->assa_abloy_credential_service_metadata, - ) - ? DeviceAssaAbloyCredentialServiceMetadata::from_json( - $json->assa_abloy_credential_service_metadata, - ) - : null, - assa_abloy_vostio_metadata: isset($json->assa_abloy_vostio_metadata) - ? DeviceAssaAbloyVostioMetadata::from_json( - $json->assa_abloy_vostio_metadata, - ) - : null, - august_metadata: isset($json->august_metadata) - ? DeviceAugustMetadata::from_json($json->august_metadata) - : null, - auto_lock_delay_seconds: $json->auto_lock_delay_seconds ?? null, - auto_lock_enabled: $json->auto_lock_enabled ?? null, - available_climate_preset_modes: $json->available_climate_preset_modes ?? - null, - available_climate_presets: array_map( - fn($a) => DeviceAvailableClimatePresets::from_json($a), - $json->available_climate_presets ?? [], - ), - available_fan_mode_settings: $json->available_fan_mode_settings ?? - null, - available_hvac_mode_settings: $json->available_hvac_mode_settings ?? - null, - avigilon_alta_metadata: isset($json->avigilon_alta_metadata) - ? DeviceAvigilonAltaMetadata::from_json( - $json->avigilon_alta_metadata, - ) - : null, - backup_access_code_pool_enabled: $json->backup_access_code_pool_enabled ?? - null, - battery: isset($json->battery) - ? DeviceBattery::from_json($json->battery) - : null, - battery_level: $json->battery_level ?? null, - brivo_metadata: isset($json->brivo_metadata) - ? DeviceBrivoMetadata::from_json($json->brivo_metadata) - : null, - code_constraints: array_map( - fn($c) => DeviceCodeConstraints::from_json($c), - $json->code_constraints ?? [], - ), - controlbyweb_metadata: isset($json->controlbyweb_metadata) - ? DeviceControlbywebMetadata::from_json( - $json->controlbyweb_metadata, - ) - : null, - current_climate_setting: isset($json->current_climate_setting) - ? DeviceCurrentClimateSetting::from_json( - $json->current_climate_setting, - ) - : null, - currently_triggering_noise_threshold_ids: $json->currently_triggering_noise_threshold_ids ?? - null, - default_climate_setting: isset($json->default_climate_setting) - ? DeviceDefaultClimateSetting::from_json( - $json->default_climate_setting, - ) - : null, - door_open: $json->door_open ?? null, - dormakaba_oracode_metadata: isset($json->dormakaba_oracode_metadata) - ? DeviceDormakabaOracodeMetadata::from_json( - $json->dormakaba_oracode_metadata, - ) - : null, - ecobee_metadata: isset($json->ecobee_metadata) - ? DeviceEcobeeMetadata::from_json($json->ecobee_metadata) - : null, - fallback_climate_preset_key: $json->fallback_climate_preset_key ?? - null, - fan_mode_setting: $json->fan_mode_setting ?? null, - four_suites_metadata: isset($json->four_suites_metadata) - ? DeviceFourSuitesMetadata::from_json( - $json->four_suites_metadata, - ) - : null, - genie_metadata: isset($json->genie_metadata) - ? DeviceGenieMetadata::from_json($json->genie_metadata) - : null, - has_direct_power: $json->has_direct_power ?? null, - has_native_entry_events: $json->has_native_entry_events ?? null, - honeywell_resideo_metadata: isset($json->honeywell_resideo_metadata) - ? DeviceHoneywellResideoMetadata::from_json( - $json->honeywell_resideo_metadata, - ) - : null, - igloo_metadata: isset($json->igloo_metadata) - ? DeviceIglooMetadata::from_json($json->igloo_metadata) - : null, - igloohome_metadata: isset($json->igloohome_metadata) - ? DeviceIgloohomeMetadata::from_json($json->igloohome_metadata) - : null, - image_alt_text: $json->image_alt_text ?? null, - image_url: $json->image_url ?? null, - is_cooling: $json->is_cooling ?? null, - is_fan_running: $json->is_fan_running ?? null, - is_heating: $json->is_heating ?? null, - is_temporary_manual_override_active: $json->is_temporary_manual_override_active ?? - null, - keynest_metadata: isset($json->keynest_metadata) - ? DeviceKeynestMetadata::from_json($json->keynest_metadata) - : null, - keypad_battery: isset($json->keypad_battery) - ? DeviceKeypadBattery::from_json($json->keypad_battery) - : null, - kisi_metadata: isset($json->kisi_metadata) - ? DeviceKisiMetadata::from_json($json->kisi_metadata) - : null, - korelock_metadata: isset($json->korelock_metadata) - ? DeviceKorelockMetadata::from_json($json->korelock_metadata) - : null, - kwikset_metadata: isset($json->kwikset_metadata) - ? DeviceKwiksetMetadata::from_json($json->kwikset_metadata) - : null, - locked: $json->locked ?? null, - lockly_metadata: isset($json->lockly_metadata) - ? DeviceLocklyMetadata::from_json($json->lockly_metadata) - : null, - manufacturer: $json->manufacturer ?? null, - max_active_codes_supported: $json->max_active_codes_supported ?? - null, - max_cooling_set_point_celsius: $json->max_cooling_set_point_celsius ?? - null, - max_cooling_set_point_fahrenheit: $json->max_cooling_set_point_fahrenheit ?? - null, - max_heating_set_point_celsius: $json->max_heating_set_point_celsius ?? - null, - max_heating_set_point_fahrenheit: $json->max_heating_set_point_fahrenheit ?? - null, - max_thermostat_daily_program_periods_per_day: $json->max_thermostat_daily_program_periods_per_day ?? - null, - max_unique_climate_presets_per_thermostat_weekly_program: $json->max_unique_climate_presets_per_thermostat_weekly_program ?? - null, - min_cooling_set_point_celsius: $json->min_cooling_set_point_celsius ?? - null, - min_cooling_set_point_fahrenheit: $json->min_cooling_set_point_fahrenheit ?? - null, - min_heating_cooling_delta_celsius: $json->min_heating_cooling_delta_celsius ?? - null, - min_heating_cooling_delta_fahrenheit: $json->min_heating_cooling_delta_fahrenheit ?? - null, - min_heating_set_point_celsius: $json->min_heating_set_point_celsius ?? - null, - min_heating_set_point_fahrenheit: $json->min_heating_set_point_fahrenheit ?? - null, - minut_metadata: isset($json->minut_metadata) - ? DeviceMinutMetadata::from_json($json->minut_metadata) - : null, - model: isset($json->model) - ? DeviceModel::from_json($json->model) - : null, - name: $json->name ?? null, - nest_metadata: isset($json->nest_metadata) - ? DeviceNestMetadata::from_json($json->nest_metadata) - : null, - noise_level_decibels: $json->noise_level_decibels ?? null, - noiseaware_metadata: isset($json->noiseaware_metadata) - ? DeviceNoiseawareMetadata::from_json( - $json->noiseaware_metadata, - ) - : null, - nuki_metadata: isset($json->nuki_metadata) - ? DeviceNukiMetadata::from_json($json->nuki_metadata) - : null, - offline_access_codes_enabled: $json->offline_access_codes_enabled ?? - null, - offline_time_frame_options: array_map( - fn($o) => DeviceOfflineTimeFrameOptions::from_json($o), - $json->offline_time_frame_options ?? [], - ), - omnitec_metadata: isset($json->omnitec_metadata) - ? DeviceOmnitecMetadata::from_json($json->omnitec_metadata) - : null, - online: $json->online ?? null, - online_access_codes_enabled: $json->online_access_codes_enabled ?? - null, - online_time_frame_options: array_map( - fn($o) => DeviceOnlineTimeFrameOptions::from_json($o), - $json->online_time_frame_options ?? [], - ), - relative_humidity: $json->relative_humidity ?? null, - ring_metadata: isset($json->ring_metadata) - ? DeviceRingMetadata::from_json($json->ring_metadata) - : null, - salto_ks_metadata: isset($json->salto_ks_metadata) - ? DeviceSaltoKsMetadata::from_json($json->salto_ks_metadata) - : null, - salto_metadata: isset($json->salto_metadata) - ? DeviceSaltoMetadata::from_json($json->salto_metadata) - : null, - salto_space_credential_service_metadata: isset( - $json->salto_space_credential_service_metadata, - ) - ? DeviceSaltoSpaceCredentialServiceMetadata::from_json( - $json->salto_space_credential_service_metadata, - ) - : null, - schlage_metadata: isset($json->schlage_metadata) - ? DeviceSchlageMetadata::from_json($json->schlage_metadata) - : null, - seam_bridge_metadata: isset($json->seam_bridge_metadata) - ? DeviceSeamBridgeMetadata::from_json( - $json->seam_bridge_metadata, - ) - : null, - sensi_metadata: isset($json->sensi_metadata) - ? DeviceSensiMetadata::from_json($json->sensi_metadata) - : null, - serial_number: $json->serial_number ?? null, - smartthings_metadata: isset($json->smartthings_metadata) - ? DeviceSmartthingsMetadata::from_json( - $json->smartthings_metadata, - ) - : null, - supported_code_lengths: $json->supported_code_lengths ?? null, - supports_accessory_keypad: $json->supports_accessory_keypad ?? null, - supports_backup_access_code_pool: $json->supports_backup_access_code_pool ?? - null, - supports_offline_access_codes: $json->supports_offline_access_codes ?? - null, - tado_metadata: isset($json->tado_metadata) - ? DeviceTadoMetadata::from_json($json->tado_metadata) - : null, - tedee_metadata: isset($json->tedee_metadata) - ? DeviceTedeeMetadata::from_json($json->tedee_metadata) - : null, - temperature_celsius: $json->temperature_celsius ?? null, - temperature_fahrenheit: $json->temperature_fahrenheit ?? null, - temperature_threshold: isset($json->temperature_threshold) - ? DeviceTemperatureThreshold::from_json( - $json->temperature_threshold, - ) - : null, - thermostat_daily_program_period_precision_minutes: $json->thermostat_daily_program_period_precision_minutes ?? - null, - thermostat_daily_programs: array_map( - fn($t) => DeviceThermostatDailyPrograms::from_json($t), - $json->thermostat_daily_programs ?? [], - ), - thermostat_weekly_program: isset($json->thermostat_weekly_program) - ? DeviceThermostatWeeklyProgram::from_json( - $json->thermostat_weekly_program, - ) - : null, - ttlock_metadata: isset($json->ttlock_metadata) - ? DeviceTtlockMetadata::from_json($json->ttlock_metadata) - : null, - two_n_metadata: isset($json->two_n_metadata) - ? DeviceTwoNMetadata::from_json($json->two_n_metadata) - : null, - ultraloq_metadata: isset($json->ultraloq_metadata) - ? DeviceUltraloqMetadata::from_json($json->ultraloq_metadata) - : null, - visionline_metadata: isset($json->visionline_metadata) - ? DeviceVisionlineMetadata::from_json( - $json->visionline_metadata, - ) - : null, - wyze_metadata: isset($json->wyze_metadata) - ? DeviceWyzeMetadata::from_json($json->wyze_metadata) - : null, - ); - } - - public function __construct( - public DeviceAccessoryKeypad|null $accessory_keypad, - public DeviceActiveThermostatSchedule|null $active_thermostat_schedule, - public string|null $active_thermostat_schedule_id, - public DeviceAkilesMetadata|null $akiles_metadata, - public DeviceAppearance|null $appearance, - public DeviceAqaraMetadata|null $aqara_metadata, - public DeviceAssaAbloyCredentialServiceMetadata|null $assa_abloy_credential_service_metadata, - public DeviceAssaAbloyVostioMetadata|null $assa_abloy_vostio_metadata, - public DeviceAugustMetadata|null $august_metadata, - public float|null $auto_lock_delay_seconds, - public bool|null $auto_lock_enabled, - public array|null $available_climate_preset_modes, - public array $available_climate_presets, - public array|null $available_fan_mode_settings, - public array|null $available_hvac_mode_settings, - public DeviceAvigilonAltaMetadata|null $avigilon_alta_metadata, - public bool|null $backup_access_code_pool_enabled, - public DeviceBattery|null $battery, - public float|null $battery_level, - public DeviceBrivoMetadata|null $brivo_metadata, - public array $code_constraints, - public DeviceControlbywebMetadata|null $controlbyweb_metadata, - public DeviceCurrentClimateSetting|null $current_climate_setting, - public array|null $currently_triggering_noise_threshold_ids, - public DeviceDefaultClimateSetting|null $default_climate_setting, - public bool|null $door_open, - public DeviceDormakabaOracodeMetadata|null $dormakaba_oracode_metadata, - public DeviceEcobeeMetadata|null $ecobee_metadata, - public string|null $fallback_climate_preset_key, - public string|null $fan_mode_setting, - public DeviceFourSuitesMetadata|null $four_suites_metadata, - public DeviceGenieMetadata|null $genie_metadata, - public bool|null $has_direct_power, - public bool|null $has_native_entry_events, - public DeviceHoneywellResideoMetadata|null $honeywell_resideo_metadata, - public DeviceIglooMetadata|null $igloo_metadata, - public DeviceIgloohomeMetadata|null $igloohome_metadata, - public string|null $image_alt_text, - public string|null $image_url, - public bool|null $is_cooling, - public bool|null $is_fan_running, - public bool|null $is_heating, - public bool|null $is_temporary_manual_override_active, - public DeviceKeynestMetadata|null $keynest_metadata, - public DeviceKeypadBattery|null $keypad_battery, - public DeviceKisiMetadata|null $kisi_metadata, - public DeviceKorelockMetadata|null $korelock_metadata, - public DeviceKwiksetMetadata|null $kwikset_metadata, - public bool|null $locked, - public DeviceLocklyMetadata|null $lockly_metadata, - public string|null $manufacturer, - public float|null $max_active_codes_supported, - public float|null $max_cooling_set_point_celsius, - public float|null $max_cooling_set_point_fahrenheit, - public float|null $max_heating_set_point_celsius, - public float|null $max_heating_set_point_fahrenheit, - public float|null $max_thermostat_daily_program_periods_per_day, - public float|null $max_unique_climate_presets_per_thermostat_weekly_program, - public float|null $min_cooling_set_point_celsius, - public float|null $min_cooling_set_point_fahrenheit, - public float|null $min_heating_cooling_delta_celsius, - public float|null $min_heating_cooling_delta_fahrenheit, - public float|null $min_heating_set_point_celsius, - public float|null $min_heating_set_point_fahrenheit, - public DeviceMinutMetadata|null $minut_metadata, - public DeviceModel|null $model, - public string|null $name, - public DeviceNestMetadata|null $nest_metadata, - public float|null $noise_level_decibels, - public DeviceNoiseawareMetadata|null $noiseaware_metadata, - public DeviceNukiMetadata|null $nuki_metadata, - public bool|null $offline_access_codes_enabled, - public array $offline_time_frame_options, - public DeviceOmnitecMetadata|null $omnitec_metadata, - public bool|null $online, - public bool|null $online_access_codes_enabled, - public array $online_time_frame_options, - public float|null $relative_humidity, - public DeviceRingMetadata|null $ring_metadata, - public DeviceSaltoKsMetadata|null $salto_ks_metadata, - public DeviceSaltoMetadata|null $salto_metadata, - public DeviceSaltoSpaceCredentialServiceMetadata|null $salto_space_credential_service_metadata, - public DeviceSchlageMetadata|null $schlage_metadata, - public DeviceSeamBridgeMetadata|null $seam_bridge_metadata, - public DeviceSensiMetadata|null $sensi_metadata, - public string|null $serial_number, - public DeviceSmartthingsMetadata|null $smartthings_metadata, - public array|null $supported_code_lengths, - public bool|null $supports_accessory_keypad, - public bool|null $supports_backup_access_code_pool, - public bool|null $supports_offline_access_codes, - public DeviceTadoMetadata|null $tado_metadata, - public DeviceTedeeMetadata|null $tedee_metadata, - public float|null $temperature_celsius, - public float|null $temperature_fahrenheit, - public DeviceTemperatureThreshold|null $temperature_threshold, - public float|null $thermostat_daily_program_period_precision_minutes, - public array $thermostat_daily_programs, - public DeviceThermostatWeeklyProgram|null $thermostat_weekly_program, - public DeviceTtlockMetadata|null $ttlock_metadata, - public DeviceTwoNMetadata|null $two_n_metadata, - public DeviceUltraloqMetadata|null $ultraloq_metadata, - public DeviceVisionlineMetadata|null $visionline_metadata, - public DeviceWyzeMetadata|null $wyze_metadata, - ) {} -} diff --git a/src/Objects/DeviceRingMetadata.php b/src/Objects/DeviceRingMetadata.php deleted file mode 100644 index e78f6bd9..00000000 --- a/src/Objects/DeviceRingMetadata.php +++ /dev/null @@ -1,22 +0,0 @@ -device_id ?? null, - device_name: $json->device_name ?? null, - ); - } - - public function __construct( - public string|null $device_id, - public string|null $device_name, - ) {} -} diff --git a/src/Objects/DeviceSaltoKsMetadata.php b/src/Objects/DeviceSaltoKsMetadata.php deleted file mode 100644 index a421998f..00000000 --- a/src/Objects/DeviceSaltoKsMetadata.php +++ /dev/null @@ -1,37 +0,0 @@ -battery_level ?? null, - customer_reference: $json->customer_reference ?? null, - has_custom_pin_subscription: $json->has_custom_pin_subscription ?? - null, - lock_id: $json->lock_id ?? null, - lock_type: $json->lock_type ?? null, - locked_state: $json->locked_state ?? null, - model: $json->model ?? null, - site_id: $json->site_id ?? null, - site_name: $json->site_name ?? null, - ); - } - - public function __construct( - public string|null $battery_level, - public string|null $customer_reference, - public bool|null $has_custom_pin_subscription, - public string|null $lock_id, - public string|null $lock_type, - public string|null $locked_state, - public string|null $model, - public string|null $site_id, - public string|null $site_name, - ) {} -} diff --git a/src/Objects/DeviceSaltoMetadata.php b/src/Objects/DeviceSaltoMetadata.php deleted file mode 100644 index 384b3456..00000000 --- a/src/Objects/DeviceSaltoMetadata.php +++ /dev/null @@ -1,34 +0,0 @@ -battery_level ?? null, - customer_reference: $json->customer_reference ?? null, - lock_id: $json->lock_id ?? null, - lock_type: $json->lock_type ?? null, - locked_state: $json->locked_state ?? null, - model: $json->model ?? null, - site_id: $json->site_id ?? null, - site_name: $json->site_name ?? null, - ); - } - - public function __construct( - public string|null $battery_level, - public string|null $customer_reference, - public string|null $lock_id, - public string|null $lock_type, - public string|null $locked_state, - public string|null $model, - public string|null $site_id, - public string|null $site_name, - ) {} -} diff --git a/src/Objects/DeviceSaltoSpaceCredentialServiceMetadata.php b/src/Objects/DeviceSaltoSpaceCredentialServiceMetadata.php deleted file mode 100644 index e039240e..00000000 --- a/src/Objects/DeviceSaltoSpaceCredentialServiceMetadata.php +++ /dev/null @@ -1,17 +0,0 @@ -has_active_phone ?? null); - } - - public function __construct(public bool|null $has_active_phone) {} -} diff --git a/src/Objects/DeviceSchlageMetadata.php b/src/Objects/DeviceSchlageMetadata.php deleted file mode 100644 index 8b183d53..00000000 --- a/src/Objects/DeviceSchlageMetadata.php +++ /dev/null @@ -1,24 +0,0 @@ -device_id ?? null, - device_name: $json->device_name ?? null, - model: $json->model ?? null, - ); - } - - public function __construct( - public string|null $device_id, - public string|null $device_name, - public string|null $model, - ) {} -} diff --git a/src/Objects/DeviceSeamBridgeMetadata.php b/src/Objects/DeviceSeamBridgeMetadata.php deleted file mode 100644 index d3389a22..00000000 --- a/src/Objects/DeviceSeamBridgeMetadata.php +++ /dev/null @@ -1,24 +0,0 @@ -device_num ?? null, - name: $json->name ?? null, - unlock_method: $json->unlock_method ?? null, - ); - } - - public function __construct( - public float|null $device_num, - public string|null $name, - public string|null $unlock_method, - ) {} -} diff --git a/src/Objects/DeviceSensiMetadata.php b/src/Objects/DeviceSensiMetadata.php deleted file mode 100644 index 090bcd2c..00000000 --- a/src/Objects/DeviceSensiMetadata.php +++ /dev/null @@ -1,27 +0,0 @@ -device_id ?? null, - device_name: $json->device_name ?? null, - dual_setpoints_not_supported: $json->dual_setpoints_not_supported ?? - null, - product_type: $json->product_type ?? null, - ); - } - - public function __construct( - public string|null $device_id, - public string|null $device_name, - public bool|null $dual_setpoints_not_supported, - public string|null $product_type, - ) {} -} diff --git a/src/Objects/DeviceSmartthingsMetadata.php b/src/Objects/DeviceSmartthingsMetadata.php deleted file mode 100644 index 96e82089..00000000 --- a/src/Objects/DeviceSmartthingsMetadata.php +++ /dev/null @@ -1,27 +0,0 @@ -device_id ?? null, - device_name: $json->device_name ?? null, - location_id: $json->location_id ?? null, - model: $json->model ?? null, - ); - } - - public function __construct( - public string|null $device_id, - public string|null $device_name, - public string|null $location_id, - public string|null $model, - ) {} -} diff --git a/src/Objects/DeviceSound.php b/src/Objects/DeviceSound.php deleted file mode 100644 index d7018106..00000000 --- a/src/Objects/DeviceSound.php +++ /dev/null @@ -1,19 +0,0 @@ -time ?? null, value: $json->value ?? null); - } - - public function __construct( - public string|null $time, - public float|null $value, - ) {} -} diff --git a/src/Objects/DeviceTadoMetadata.php b/src/Objects/DeviceTadoMetadata.php deleted file mode 100644 index ff65ee6d..00000000 --- a/src/Objects/DeviceTadoMetadata.php +++ /dev/null @@ -1,22 +0,0 @@ -device_type ?? null, - serial_no: $json->serial_no ?? null, - ); - } - - public function __construct( - public string|null $device_type, - public string|null $serial_no, - ) {} -} diff --git a/src/Objects/DeviceTedeeMetadata.php b/src/Objects/DeviceTedeeMetadata.php deleted file mode 100644 index f5c4f5af..00000000 --- a/src/Objects/DeviceTedeeMetadata.php +++ /dev/null @@ -1,32 +0,0 @@ -bridge_id ?? null, - bridge_name: $json->bridge_name ?? null, - device_id: $json->device_id ?? null, - device_model: $json->device_model ?? null, - device_name: $json->device_name ?? null, - keypad_id: $json->keypad_id ?? null, - serial_number: $json->serial_number ?? null, - ); - } - - public function __construct( - public float|null $bridge_id, - public string|null $bridge_name, - public float|null $device_id, - public string|null $device_model, - public string|null $device_name, - public float|null $keypad_id, - public string|null $serial_number, - ) {} -} diff --git a/src/Objects/DeviceTemperature.php b/src/Objects/DeviceTemperature.php deleted file mode 100644 index 756bf0de..00000000 --- a/src/Objects/DeviceTemperature.php +++ /dev/null @@ -1,19 +0,0 @@ -time ?? null, value: $json->value ?? null); - } - - public function __construct( - public string|null $time, - public float|null $value, - ) {} -} diff --git a/src/Objects/DeviceTemperatureThreshold.php b/src/Objects/DeviceTemperatureThreshold.php deleted file mode 100644 index 33f5da22..00000000 --- a/src/Objects/DeviceTemperatureThreshold.php +++ /dev/null @@ -1,27 +0,0 @@ -lower_limit_celsius ?? null, - lower_limit_fahrenheit: $json->lower_limit_fahrenheit ?? null, - upper_limit_celsius: $json->upper_limit_celsius ?? null, - upper_limit_fahrenheit: $json->upper_limit_fahrenheit ?? null, - ); - } - - public function __construct( - public float|null $lower_limit_celsius, - public float|null $lower_limit_fahrenheit, - public float|null $upper_limit_celsius, - public float|null $upper_limit_fahrenheit, - ) {} -} diff --git a/src/Objects/DeviceThermostatDailyPrograms.php b/src/Objects/DeviceThermostatDailyPrograms.php deleted file mode 100644 index dcfd3ab8..00000000 --- a/src/Objects/DeviceThermostatDailyPrograms.php +++ /dev/null @@ -1,35 +0,0 @@ -created_at ?? null, - device_id: $json->device_id ?? null, - name: $json->name ?? null, - periods: array_map( - fn($p) => DevicePeriods::from_json($p), - $json->periods ?? [], - ), - thermostat_daily_program_id: $json->thermostat_daily_program_id ?? - null, - workspace_id: $json->workspace_id ?? null, - ); - } - - public function __construct( - public string|null $created_at, - public string|null $device_id, - public string|null $name, - public array $periods, - public string|null $thermostat_daily_program_id, - public string|null $workspace_id, - ) {} -} diff --git a/src/Objects/DeviceThermostatWeeklyProgram.php b/src/Objects/DeviceThermostatWeeklyProgram.php deleted file mode 100644 index fd87a1b3..00000000 --- a/src/Objects/DeviceThermostatWeeklyProgram.php +++ /dev/null @@ -1,35 +0,0 @@ -created_at ?? null, - friday_program_id: $json->friday_program_id ?? null, - monday_program_id: $json->monday_program_id ?? null, - saturday_program_id: $json->saturday_program_id ?? null, - sunday_program_id: $json->sunday_program_id ?? null, - thursday_program_id: $json->thursday_program_id ?? null, - tuesday_program_id: $json->tuesday_program_id ?? null, - wednesday_program_id: $json->wednesday_program_id ?? null, - ); - } - - public function __construct( - public string|null $created_at, - public string|null $friday_program_id, - public string|null $monday_program_id, - public string|null $saturday_program_id, - public string|null $sunday_program_id, - public string|null $thursday_program_id, - public string|null $tuesday_program_id, - public string|null $wednesday_program_id, - ) {} -} diff --git a/src/Objects/DeviceTimePairs.php b/src/Objects/DeviceTimePairs.php deleted file mode 100644 index b85f66a2..00000000 --- a/src/Objects/DeviceTimePairs.php +++ /dev/null @@ -1,24 +0,0 @@ -display_name ?? null, - end_time: $json->end_time ?? null, - start_time: $json->start_time ?? null, - ); - } - - public function __construct( - public string|null $display_name, - public string|null $end_time, - public string|null $start_time, - ) {} -} diff --git a/src/Objects/DeviceTtlockMetadata.php b/src/Objects/DeviceTtlockMetadata.php deleted file mode 100644 index 4f993252..00000000 --- a/src/Objects/DeviceTtlockMetadata.php +++ /dev/null @@ -1,37 +0,0 @@ -feature_value ?? null, - features: isset($json->features) - ? DeviceFeatures::from_json($json->features) - : null, - has_gateway: $json->has_gateway ?? null, - lock_alias: $json->lock_alias ?? null, - lock_id: $json->lock_id ?? null, - timezone_raw_offset_ms: $json->timezone_raw_offset_ms ?? null, - wireless_keypads: array_map( - fn($w) => DeviceWirelessKeypads::from_json($w), - $json->wireless_keypads ?? [], - ), - ); - } - - public function __construct( - public string|null $feature_value, - public DeviceFeatures|null $features, - public bool|null $has_gateway, - public string|null $lock_alias, - public float|null $lock_id, - public float|null $timezone_raw_offset_ms, - public array $wireless_keypads, - ) {} -} diff --git a/src/Objects/DeviceTwoNMetadata.php b/src/Objects/DeviceTwoNMetadata.php deleted file mode 100644 index c4192eda..00000000 --- a/src/Objects/DeviceTwoNMetadata.php +++ /dev/null @@ -1,22 +0,0 @@ -device_id ?? null, - device_name: $json->device_name ?? null, - ); - } - - public function __construct( - public float|null $device_id, - public string|null $device_name, - ) {} -} diff --git a/src/Objects/DeviceUltraloqMetadata.php b/src/Objects/DeviceUltraloqMetadata.php deleted file mode 100644 index 30133f92..00000000 --- a/src/Objects/DeviceUltraloqMetadata.php +++ /dev/null @@ -1,26 +0,0 @@ -device_id ?? null, - device_name: $json->device_name ?? null, - device_type: $json->device_type ?? null, - time_zone: $json->time_zone ?? null, - ); - } - - public function __construct( - public string|null $device_id, - public string|null $device_name, - public string|null $device_type, - public string|null $time_zone, - ) {} -} diff --git a/src/Objects/DeviceVisionlineMetadata.php b/src/Objects/DeviceVisionlineMetadata.php deleted file mode 100644 index e3515f60..00000000 --- a/src/Objects/DeviceVisionlineMetadata.php +++ /dev/null @@ -1,16 +0,0 @@ -encoder_id ?? null); - } - - public function __construct(public string|null $encoder_id) {} -} diff --git a/src/Objects/DeviceWarnings.php b/src/Objects/DeviceWarnings.php deleted file mode 100644 index 168b5dd9..00000000 --- a/src/Objects/DeviceWarnings.php +++ /dev/null @@ -1,29 +0,0 @@ -active_access_code_count ?? null, - created_at: $json->created_at ?? null, - max_active_access_code_count: $json->max_active_access_code_count ?? - null, - message: $json->message ?? null, - warning_code: $json->warning_code ?? null, - ); - } - - public function __construct( - public int|null $active_access_code_count, - public string|null $created_at, - public int|null $max_active_access_code_count, - public string|null $message, - public string|null $warning_code, - ) {} -} diff --git a/src/Objects/DeviceWirelessKeypads.php b/src/Objects/DeviceWirelessKeypads.php deleted file mode 100644 index be1e40b2..00000000 --- a/src/Objects/DeviceWirelessKeypads.php +++ /dev/null @@ -1,22 +0,0 @@ -wireless_keypad_id ?? null, - wireless_keypad_name: $json->wireless_keypad_name ?? null, - ); - } - - public function __construct( - public float|null $wireless_keypad_id, - public string|null $wireless_keypad_name, - ) {} -} diff --git a/src/Objects/DeviceWyzeMetadata.php b/src/Objects/DeviceWyzeMetadata.php deleted file mode 100644 index b9ab6608..00000000 --- a/src/Objects/DeviceWyzeMetadata.php +++ /dev/null @@ -1,34 +0,0 @@ -device_id ?? null, - device_info_model: $json->device_info_model ?? null, - device_name: $json->device_name ?? null, - keypad_uuid: $json->keypad_uuid ?? null, - locker_status_hardlock: $json->locker_status_hardlock ?? null, - product_model: $json->product_model ?? null, - product_name: $json->product_name ?? null, - product_type: $json->product_type ?? null, - ); - } - - public function __construct( - public string|null $device_id, - public string|null $device_info_model, - public string|null $device_name, - public string|null $keypad_uuid, - public float|null $locker_status_hardlock, - public string|null $product_model, - public string|null $product_name, - public string|null $product_type, - ) {} -} diff --git a/src/Objects/EventAccessCodeErrors.php b/src/Objects/EventAccessCodeErrors.php deleted file mode 100644 index a4892226..00000000 --- a/src/Objects/EventAccessCodeErrors.php +++ /dev/null @@ -1,24 +0,0 @@ -created_at ?? null, - error_code: $json->error_code ?? null, - message: $json->message ?? null, - ); - } - - public function __construct( - public string|null $created_at, - public string|null $error_code, - public string|null $message, - ) {} -} diff --git a/src/Objects/EventAccessCodeWarnings.php b/src/Objects/EventAccessCodeWarnings.php deleted file mode 100644 index ef20dd3a..00000000 --- a/src/Objects/EventAccessCodeWarnings.php +++ /dev/null @@ -1,24 +0,0 @@ -created_at ?? null, - message: $json->message ?? null, - warning_code: $json->warning_code ?? null, - ); - } - - public function __construct( - public string|null $created_at, - public string|null $message, - public string|null $warning_code, - ) {} -} diff --git a/src/Objects/EventAcsSystemErrors.php b/src/Objects/EventAcsSystemErrors.php deleted file mode 100644 index 11a5dd9b..00000000 --- a/src/Objects/EventAcsSystemErrors.php +++ /dev/null @@ -1,24 +0,0 @@ -created_at ?? null, - error_code: $json->error_code ?? null, - message: $json->message ?? null, - ); - } - - public function __construct( - public string|null $created_at, - public string|null $error_code, - public string|null $message, - ) {} -} diff --git a/src/Objects/EventAcsSystemWarnings.php b/src/Objects/EventAcsSystemWarnings.php deleted file mode 100644 index 76dd75c6..00000000 --- a/src/Objects/EventAcsSystemWarnings.php +++ /dev/null @@ -1,24 +0,0 @@ -created_at ?? null, - message: $json->message ?? null, - warning_code: $json->warning_code ?? null, - ); - } - - public function __construct( - public string|null $created_at, - public string|null $message, - public string|null $warning_code, - ) {} -} diff --git a/src/Objects/EventChangedProperties.php b/src/Objects/EventChangedProperties.php deleted file mode 100644 index 8a1299f2..00000000 --- a/src/Objects/EventChangedProperties.php +++ /dev/null @@ -1,24 +0,0 @@ -from ?? null, - property: $json->property ?? null, - to: $json->to ?? null, - ); - } - - public function __construct( - public string|null $from, - public string|null $property, - public string|null $to, - ) {} -} diff --git a/src/Objects/EventConnectedAccountErrors.php b/src/Objects/EventConnectedAccountErrors.php deleted file mode 100644 index 432a664c..00000000 --- a/src/Objects/EventConnectedAccountErrors.php +++ /dev/null @@ -1,25 +0,0 @@ -created_at ?? null, - error_code: $json->error_code ?? null, - message: $json->message ?? null, - ); - } - - public function __construct( - public string|null $created_at, - public string|null $error_code, - public string|null $message, - ) {} -} diff --git a/src/Objects/EventConnectedAccountWarnings.php b/src/Objects/EventConnectedAccountWarnings.php deleted file mode 100644 index 533fe5a6..00000000 --- a/src/Objects/EventConnectedAccountWarnings.php +++ /dev/null @@ -1,25 +0,0 @@ -created_at ?? null, - message: $json->message ?? null, - warning_code: $json->warning_code ?? null, - ); - } - - public function __construct( - public string|null $created_at, - public string|null $message, - public string|null $warning_code, - ) {} -} diff --git a/src/Objects/EventDeviceErrors.php b/src/Objects/EventDeviceErrors.php deleted file mode 100644 index a7561dc2..00000000 --- a/src/Objects/EventDeviceErrors.php +++ /dev/null @@ -1,24 +0,0 @@ -created_at ?? null, - error_code: $json->error_code ?? null, - message: $json->message ?? null, - ); - } - - public function __construct( - public string|null $created_at, - public string|null $error_code, - public string|null $message, - ) {} -} diff --git a/src/Objects/EventDeviceWarnings.php b/src/Objects/EventDeviceWarnings.php deleted file mode 100644 index c28203af..00000000 --- a/src/Objects/EventDeviceWarnings.php +++ /dev/null @@ -1,24 +0,0 @@ -created_at ?? null, - message: $json->message ?? null, - warning_code: $json->warning_code ?? null, - ); - } - - public function __construct( - public string|null $created_at, - public string|null $message, - public string|null $warning_code, - ) {} -} diff --git a/src/Objects/EventFrom.php b/src/Objects/EventFrom.php deleted file mode 100644 index e0dfbe63..00000000 --- a/src/Objects/EventFrom.php +++ /dev/null @@ -1,26 +0,0 @@ -code ?? null, - ends_at: $json->ends_at ?? null, - name: $json->name ?? null, - starts_at: $json->starts_at ?? null, - ); - } - - public function __construct( - public string|null $code, - public string|null $ends_at, - public string|null $name, - public string|null $starts_at, - ) {} -} diff --git a/src/Objects/EventReason.php b/src/Objects/EventReason.php deleted file mode 100644 index c1812a53..00000000 --- a/src/Objects/EventReason.php +++ /dev/null @@ -1,22 +0,0 @@ -message ?? null, - reason_code: $json->reason_code ?? null, - ); - } - - public function __construct( - public string|null $message, - public string|null $reason_code, - ) {} -} diff --git a/src/Objects/EventRequestedMutations.php b/src/Objects/EventRequestedMutations.php deleted file mode 100644 index 71f2b32a..00000000 --- a/src/Objects/EventRequestedMutations.php +++ /dev/null @@ -1,24 +0,0 @@ -from ?? null, - mutation_code: $json->mutation_code ?? null, - to: $json->to ?? null, - ); - } - - public function __construct( - public mixed $from, - public string|null $mutation_code, - public mixed $to, - ) {} -} diff --git a/src/Objects/EventTo.php b/src/Objects/EventTo.php deleted file mode 100644 index 0cbeaac3..00000000 --- a/src/Objects/EventTo.php +++ /dev/null @@ -1,26 +0,0 @@ -code ?? null, - ends_at: $json->ends_at ?? null, - name: $json->name ?? null, - starts_at: $json->starts_at ?? null, - ); - } - - public function __construct( - public string|null $code, - public string|null $ends_at, - public string|null $name, - public string|null $starts_at, - ) {} -} diff --git a/src/Objects/InstantKeyCustomization.php b/src/Objects/InstantKeyCustomization.php deleted file mode 100644 index 46e91149..00000000 --- a/src/Objects/InstantKeyCustomization.php +++ /dev/null @@ -1,24 +0,0 @@ -logo_url ?? null, - primary_color: $json->primary_color ?? null, - secondary_color: $json->secondary_color ?? null, - ); - } - - public function __construct( - public string|null $logo_url, - public string|null $primary_color, - public string|null $secondary_color, - ) {} -} diff --git a/src/Objects/Phone.php b/src/Objects/Phone.php deleted file mode 100644 index 40d363ed..00000000 --- a/src/Objects/Phone.php +++ /dev/null @@ -1,46 +0,0 @@ -created_at ?? null, - custom_metadata: $json->custom_metadata ?? null, - device_id: $json->device_id ?? null, - device_type: $json->device_type ?? null, - display_name: $json->display_name ?? null, - errors: array_map( - fn($e) => PhoneErrors::from_json($e), - $json->errors ?? [], - ), - nickname: $json->nickname ?? null, - properties: isset($json->properties) - ? PhoneProperties::from_json($json->properties) - : null, - warnings: array_map( - fn($w) => PhoneWarnings::from_json($w), - $json->warnings ?? [], - ), - workspace_id: $json->workspace_id ?? null, - ); - } - - public function __construct( - public string|null $created_at, - public mixed $custom_metadata, - public string|null $device_id, - public string|null $device_type, - public string|null $display_name, - public array $errors, - public string|null $nickname, - public PhoneProperties|null $properties, - public array $warnings, - public string|null $workspace_id, - ) {} -} diff --git a/src/Objects/PhoneAssaAbloyCredentialServiceMetadata.php b/src/Objects/PhoneAssaAbloyCredentialServiceMetadata.php deleted file mode 100644 index 86b397c4..00000000 --- a/src/Objects/PhoneAssaAbloyCredentialServiceMetadata.php +++ /dev/null @@ -1,26 +0,0 @@ - PhoneEndpoints::from_json($e), - $json->endpoints ?? [], - ), - has_active_endpoint: $json->has_active_endpoint ?? null, - ); - } - - public function __construct( - public array $endpoints, - public bool|null $has_active_endpoint, - ) {} -} diff --git a/src/Objects/PhoneEndpoints.php b/src/Objects/PhoneEndpoints.php deleted file mode 100644 index 661b7143..00000000 --- a/src/Objects/PhoneEndpoints.php +++ /dev/null @@ -1,22 +0,0 @@ -endpoint_id ?? null, - is_active: $json->is_active ?? null, - ); - } - - public function __construct( - public string|null $endpoint_id, - public bool|null $is_active, - ) {} -} diff --git a/src/Objects/PhoneErrors.php b/src/Objects/PhoneErrors.php deleted file mode 100644 index f107f264..00000000 --- a/src/Objects/PhoneErrors.php +++ /dev/null @@ -1,24 +0,0 @@ -created_at ?? null, - error_code: $json->error_code ?? null, - message: $json->message ?? null, - ); - } - - public function __construct( - public string|null $created_at, - public string|null $error_code, - public string|null $message, - ) {} -} diff --git a/src/Objects/PhoneProperties.php b/src/Objects/PhoneProperties.php deleted file mode 100644 index 19d8f409..00000000 --- a/src/Objects/PhoneProperties.php +++ /dev/null @@ -1,34 +0,0 @@ -assa_abloy_credential_service_metadata, - ) - ? PhoneAssaAbloyCredentialServiceMetadata::from_json( - $json->assa_abloy_credential_service_metadata, - ) - : null, - salto_space_credential_service_metadata: isset( - $json->salto_space_credential_service_metadata, - ) - ? PhoneSaltoSpaceCredentialServiceMetadata::from_json( - $json->salto_space_credential_service_metadata, - ) - : null, - ); - } - - public function __construct( - public PhoneAssaAbloyCredentialServiceMetadata|null $assa_abloy_credential_service_metadata, - public PhoneSaltoSpaceCredentialServiceMetadata|null $salto_space_credential_service_metadata, - ) {} -} diff --git a/src/Objects/PhoneSaltoSpaceCredentialServiceMetadata.php b/src/Objects/PhoneSaltoSpaceCredentialServiceMetadata.php deleted file mode 100644 index 75a00048..00000000 --- a/src/Objects/PhoneSaltoSpaceCredentialServiceMetadata.php +++ /dev/null @@ -1,17 +0,0 @@ -has_active_phone ?? null); - } - - public function __construct(public bool|null $has_active_phone) {} -} diff --git a/src/Objects/PhoneWarnings.php b/src/Objects/PhoneWarnings.php deleted file mode 100644 index 30424953..00000000 --- a/src/Objects/PhoneWarnings.php +++ /dev/null @@ -1,24 +0,0 @@ -created_at ?? null, - message: $json->message ?? null, - warning_code: $json->warning_code ?? null, - ); - } - - public function __construct( - public string|null $created_at, - public string|null $message, - public string|null $warning_code, - ) {} -} diff --git a/src/Objects/SpaceCustomerData.php b/src/Objects/SpaceCustomerData.php deleted file mode 100644 index 9747b432..00000000 --- a/src/Objects/SpaceCustomerData.php +++ /dev/null @@ -1,26 +0,0 @@ -address ?? null, - default_checkin_time: $json->default_checkin_time ?? null, - default_checkout_time: $json->default_checkout_time ?? null, - time_zone: $json->time_zone ?? null, - ); - } - - public function __construct( - public string|null $address, - public string|null $default_checkin_time, - public string|null $default_checkout_time, - public string|null $time_zone, - ) {} -} diff --git a/src/Objects/SpaceGeolocation.php b/src/Objects/SpaceGeolocation.php deleted file mode 100644 index e7a52e08..00000000 --- a/src/Objects/SpaceGeolocation.php +++ /dev/null @@ -1,22 +0,0 @@ -latitude ?? null, - longitude: $json->longitude ?? null, - ); - } - - public function __construct( - public float|null $latitude, - public float|null $longitude, - ) {} -} diff --git a/src/Objects/ThermostatDailyProgramPeriods.php b/src/Objects/ThermostatDailyProgramPeriods.php deleted file mode 100644 index 580586db..00000000 --- a/src/Objects/ThermostatDailyProgramPeriods.php +++ /dev/null @@ -1,23 +0,0 @@ -climate_preset_key ?? null, - starts_at_time: $json->starts_at_time ?? null, - ); - } - - public function __construct( - public string|null $climate_preset_key, - public string|null $starts_at_time, - ) {} -} diff --git a/src/Objects/ThermostatScheduleErrors.php b/src/Objects/ThermostatScheduleErrors.php deleted file mode 100644 index e0eae80b..00000000 --- a/src/Objects/ThermostatScheduleErrors.php +++ /dev/null @@ -1,24 +0,0 @@ -created_at ?? null, - error_code: $json->error_code ?? null, - message: $json->message ?? null, - ); - } - - public function __construct( - public string|null $created_at, - public string|null $error_code, - public string|null $message, - ) {} -} diff --git a/src/Objects/UnmanagedAccessCode.php b/src/Objects/UnmanagedAccessCode.php deleted file mode 100644 index ba5b57df..00000000 --- a/src/Objects/UnmanagedAccessCode.php +++ /dev/null @@ -1,61 +0,0 @@ -access_code_id ?? null, - cannot_be_managed: $json->cannot_be_managed ?? null, - cannot_delete_unmanaged_access_code: $json->cannot_delete_unmanaged_access_code ?? - null, - code: $json->code ?? null, - created_at: $json->created_at ?? null, - device_id: $json->device_id ?? null, - dormakaba_oracode_metadata: isset($json->dormakaba_oracode_metadata) - ? UnmanagedAccessCodeDormakabaOracodeMetadata::from_json( - $json->dormakaba_oracode_metadata, - ) - : null, - ends_at: $json->ends_at ?? null, - errors: array_map( - fn($e) => UnmanagedAccessCodeErrors::from_json($e), - $json->errors ?? [], - ), - is_managed: $json->is_managed ?? null, - name: $json->name ?? null, - starts_at: $json->starts_at ?? null, - status: $json->status ?? null, - type: $json->type ?? null, - warnings: array_map( - fn($w) => UnmanagedAccessCodeWarnings::from_json($w), - $json->warnings ?? [], - ), - workspace_id: $json->workspace_id ?? null, - ); - } - - public function __construct( - public string|null $access_code_id, - public bool|null $cannot_be_managed, - public bool|null $cannot_delete_unmanaged_access_code, - public string|null $code, - public string|null $created_at, - public string|null $device_id, - public UnmanagedAccessCodeDormakabaOracodeMetadata|null $dormakaba_oracode_metadata, - public string|null $ends_at, - public array $errors, - public bool|null $is_managed, - public string|null $name, - public string|null $starts_at, - public string|null $status, - public string|null $type, - public array $warnings, - public string|null $workspace_id, - ) {} -} diff --git a/src/Objects/UnmanagedAccessCodeDormakabaOracodeMetadata.php b/src/Objects/UnmanagedAccessCodeDormakabaOracodeMetadata.php deleted file mode 100644 index 3c3c7235..00000000 --- a/src/Objects/UnmanagedAccessCodeDormakabaOracodeMetadata.php +++ /dev/null @@ -1,35 +0,0 @@ -is_cancellable ?? null, - is_early_checkin_able: $json->is_early_checkin_able ?? null, - is_extendable: $json->is_extendable ?? null, - is_overridable: $json->is_overridable ?? null, - site_name: $json->site_name ?? null, - stay_id: $json->stay_id ?? null, - user_level_id: $json->user_level_id ?? null, - user_level_name: $json->user_level_name ?? null, - ); - } - - public function __construct( - public bool|null $is_cancellable, - public bool|null $is_early_checkin_able, - public bool|null $is_extendable, - public bool|null $is_overridable, - public string|null $site_name, - public float|null $stay_id, - public string|null $user_level_id, - public string|null $user_level_name, - ) {} -} diff --git a/src/Objects/UnmanagedAccessCodeErrors.php b/src/Objects/UnmanagedAccessCodeErrors.php deleted file mode 100644 index 6d8e4502..00000000 --- a/src/Objects/UnmanagedAccessCodeErrors.php +++ /dev/null @@ -1,45 +0,0 @@ -change_type ?? null, - created_at: $json->created_at ?? null, - error_code: $json->error_code ?? null, - is_access_code_error: $json->is_access_code_error ?? null, - is_bridge_error: $json->is_bridge_error ?? null, - is_connected_account_error: $json->is_connected_account_error ?? - null, - is_device_error: $json->is_device_error ?? null, - managed_access_code_id: $json->managed_access_code_id ?? null, - message: $json->message ?? null, - modified_fields: array_map( - fn($m) => UnmanagedAccessCodeModifiedFields::from_json($m), - $json->modified_fields ?? [], - ), - unmanaged_access_code_id: $json->unmanaged_access_code_id ?? null, - ); - } - - public function __construct( - public string|null $change_type, - public string|null $created_at, - public string|null $error_code, - public bool|null $is_access_code_error, - public bool|null $is_bridge_error, - public bool|null $is_connected_account_error, - public bool|null $is_device_error, - public string|null $managed_access_code_id, - public string|null $message, - public array $modified_fields, - public string|null $unmanaged_access_code_id, - ) {} -} diff --git a/src/Objects/UnmanagedAccessCodeModifiedFields.php b/src/Objects/UnmanagedAccessCodeModifiedFields.php deleted file mode 100644 index 87949ef8..00000000 --- a/src/Objects/UnmanagedAccessCodeModifiedFields.php +++ /dev/null @@ -1,25 +0,0 @@ -field ?? null, - from: $json->from ?? null, - to: $json->to ?? null, - ); - } - - public function __construct( - public string|null $field, - public string|null $from, - public string|null $to, - ) {} -} diff --git a/src/Objects/UnmanagedAccessCodeWarnings.php b/src/Objects/UnmanagedAccessCodeWarnings.php deleted file mode 100644 index daf28e62..00000000 --- a/src/Objects/UnmanagedAccessCodeWarnings.php +++ /dev/null @@ -1,32 +0,0 @@ -change_type ?? null, - created_at: $json->created_at ?? null, - message: $json->message ?? null, - modified_fields: array_map( - fn($m) => UnmanagedAccessCodeModifiedFields::from_json($m), - $json->modified_fields ?? [], - ), - warning_code: $json->warning_code ?? null, - ); - } - - public function __construct( - public string|null $change_type, - public string|null $created_at, - public string|null $message, - public array $modified_fields, - public string|null $warning_code, - ) {} -} diff --git a/src/Objects/UnmanagedDevice.php b/src/Objects/UnmanagedDevice.php deleted file mode 100644 index 38cc60a0..00000000 --- a/src/Objects/UnmanagedDevice.php +++ /dev/null @@ -1,102 +0,0 @@ -can_configure_auto_lock ?? null, - can_hvac_cool: $json->can_hvac_cool ?? null, - can_hvac_heat: $json->can_hvac_heat ?? null, - can_hvac_heat_cool: $json->can_hvac_heat_cool ?? null, - can_program_offline_access_codes: $json->can_program_offline_access_codes ?? - null, - can_program_online_access_codes: $json->can_program_online_access_codes ?? - null, - can_program_thermostat_programs_as_different_each_day: $json->can_program_thermostat_programs_as_different_each_day ?? - null, - can_program_thermostat_programs_as_same_each_day: $json->can_program_thermostat_programs_as_same_each_day ?? - null, - can_program_thermostat_programs_as_weekday_weekend: $json->can_program_thermostat_programs_as_weekday_weekend ?? - null, - can_remotely_lock: $json->can_remotely_lock ?? null, - can_remotely_unlock: $json->can_remotely_unlock ?? null, - can_run_thermostat_programs: $json->can_run_thermostat_programs ?? - null, - can_simulate_connection: $json->can_simulate_connection ?? null, - can_simulate_disconnection: $json->can_simulate_disconnection ?? - null, - can_simulate_hub_connection: $json->can_simulate_hub_connection ?? - null, - can_simulate_hub_disconnection: $json->can_simulate_hub_disconnection ?? - null, - can_simulate_paid_subscription: $json->can_simulate_paid_subscription ?? - null, - can_simulate_removal: $json->can_simulate_removal ?? null, - can_turn_off_hvac: $json->can_turn_off_hvac ?? null, - can_unlock_with_code: $json->can_unlock_with_code ?? null, - capabilities_supported: $json->capabilities_supported ?? null, - connected_account_id: $json->connected_account_id ?? null, - created_at: $json->created_at ?? null, - custom_metadata: $json->custom_metadata ?? null, - device_id: $json->device_id ?? null, - device_type: $json->device_type ?? null, - errors: array_map( - fn($e) => UnmanagedDeviceErrors::from_json($e), - $json->errors ?? [], - ), - is_managed: $json->is_managed ?? null, - location: isset($json->location) - ? UnmanagedDeviceLocation::from_json($json->location) - : null, - properties: isset($json->properties) - ? UnmanagedDeviceProperties::from_json($json->properties) - : null, - warnings: array_map( - fn($w) => UnmanagedDeviceWarnings::from_json($w), - $json->warnings ?? [], - ), - workspace_id: $json->workspace_id ?? null, - ); - } - - public function __construct( - public bool|null $can_configure_auto_lock, - public bool|null $can_hvac_cool, - public bool|null $can_hvac_heat, - public bool|null $can_hvac_heat_cool, - public bool|null $can_program_offline_access_codes, - public bool|null $can_program_online_access_codes, - public bool|null $can_program_thermostat_programs_as_different_each_day, - public bool|null $can_program_thermostat_programs_as_same_each_day, - public bool|null $can_program_thermostat_programs_as_weekday_weekend, - public bool|null $can_remotely_lock, - public bool|null $can_remotely_unlock, - public bool|null $can_run_thermostat_programs, - public bool|null $can_simulate_connection, - public bool|null $can_simulate_disconnection, - public bool|null $can_simulate_hub_connection, - public bool|null $can_simulate_hub_disconnection, - public bool|null $can_simulate_paid_subscription, - public bool|null $can_simulate_removal, - public bool|null $can_turn_off_hvac, - public bool|null $can_unlock_with_code, - public array|null $capabilities_supported, - public string|null $connected_account_id, - public string|null $created_at, - public mixed $custom_metadata, - public string|null $device_id, - public string|null $device_type, - public array $errors, - public bool|null $is_managed, - public UnmanagedDeviceLocation|null $location, - public UnmanagedDeviceProperties|null $properties, - public array $warnings, - public string|null $workspace_id, - ) {} -} diff --git a/src/Objects/UnmanagedDeviceAccessoryKeypad.php b/src/Objects/UnmanagedDeviceAccessoryKeypad.php deleted file mode 100644 index 2500dc3d..00000000 --- a/src/Objects/UnmanagedDeviceAccessoryKeypad.php +++ /dev/null @@ -1,25 +0,0 @@ -battery) - ? UnmanagedDeviceBattery::from_json($json->battery) - : null, - is_connected: $json->is_connected ?? null, - ); - } - - public function __construct( - public UnmanagedDeviceBattery|null $battery, - public bool|null $is_connected, - ) {} -} diff --git a/src/Objects/UnmanagedDeviceBattery.php b/src/Objects/UnmanagedDeviceBattery.php deleted file mode 100644 index 2663b5b8..00000000 --- a/src/Objects/UnmanagedDeviceBattery.php +++ /dev/null @@ -1,16 +0,0 @@ -level ?? null); - } - - public function __construct(public float|null $level) {} -} diff --git a/src/Objects/UnmanagedDeviceErrors.php b/src/Objects/UnmanagedDeviceErrors.php deleted file mode 100644 index a2b2806b..00000000 --- a/src/Objects/UnmanagedDeviceErrors.php +++ /dev/null @@ -1,31 +0,0 @@ -created_at ?? null, - error_code: $json->error_code ?? null, - is_bridge_error: $json->is_bridge_error ?? null, - is_connected_account_error: $json->is_connected_account_error ?? - null, - is_device_error: $json->is_device_error ?? null, - message: $json->message ?? null, - ); - } - - public function __construct( - public string|null $created_at, - public string|null $error_code, - public bool|null $is_bridge_error, - public bool|null $is_connected_account_error, - public bool|null $is_device_error, - public string|null $message, - ) {} -} diff --git a/src/Objects/UnmanagedDeviceLocation.php b/src/Objects/UnmanagedDeviceLocation.php deleted file mode 100644 index 5c857e31..00000000 --- a/src/Objects/UnmanagedDeviceLocation.php +++ /dev/null @@ -1,24 +0,0 @@ -location_name ?? null, - time_zone: $json->time_zone ?? null, - timezone: $json->timezone ?? null, - ); - } - - public function __construct( - public string|null $location_name, - public string|null $time_zone, - public string|null $timezone, - ) {} -} diff --git a/src/Objects/UnmanagedDeviceModel.php b/src/Objects/UnmanagedDeviceModel.php deleted file mode 100644 index a1c67310..00000000 --- a/src/Objects/UnmanagedDeviceModel.php +++ /dev/null @@ -1,36 +0,0 @@ -accessory_keypad_supported ?? - null, - can_connect_accessory_keypad: $json->can_connect_accessory_keypad ?? - null, - display_name: $json->display_name ?? null, - has_built_in_keypad: $json->has_built_in_keypad ?? null, - manufacturer_display_name: $json->manufacturer_display_name ?? null, - offline_access_codes_supported: $json->offline_access_codes_supported ?? - null, - online_access_codes_supported: $json->online_access_codes_supported ?? - null, - ); - } - - public function __construct( - public bool|null $accessory_keypad_supported, - public bool|null $can_connect_accessory_keypad, - public string|null $display_name, - public bool|null $has_built_in_keypad, - public string|null $manufacturer_display_name, - public bool|null $offline_access_codes_supported, - public bool|null $online_access_codes_supported, - ) {} -} diff --git a/src/Objects/UnmanagedDeviceProperties.php b/src/Objects/UnmanagedDeviceProperties.php deleted file mode 100644 index 40f13def..00000000 --- a/src/Objects/UnmanagedDeviceProperties.php +++ /dev/null @@ -1,51 +0,0 @@ -accessory_keypad) - ? UnmanagedDeviceAccessoryKeypad::from_json( - $json->accessory_keypad, - ) - : null, - battery: isset($json->battery) - ? UnmanagedDeviceBattery::from_json($json->battery) - : null, - battery_level: $json->battery_level ?? null, - image_alt_text: $json->image_alt_text ?? null, - image_url: $json->image_url ?? null, - manufacturer: $json->manufacturer ?? null, - model: isset($json->model) - ? UnmanagedDeviceModel::from_json($json->model) - : null, - name: $json->name ?? null, - offline_access_codes_enabled: $json->offline_access_codes_enabled ?? - null, - online: $json->online ?? null, - online_access_codes_enabled: $json->online_access_codes_enabled ?? - null, - ); - } - - public function __construct( - public UnmanagedDeviceAccessoryKeypad|null $accessory_keypad, - public UnmanagedDeviceBattery|null $battery, - public float|null $battery_level, - public string|null $image_alt_text, - public string|null $image_url, - public string|null $manufacturer, - public UnmanagedDeviceModel|null $model, - public string|null $name, - public bool|null $offline_access_codes_enabled, - public bool|null $online, - public bool|null $online_access_codes_enabled, - ) {} -} diff --git a/src/Objects/UnmanagedDeviceWarnings.php b/src/Objects/UnmanagedDeviceWarnings.php deleted file mode 100644 index 224d6ad1..00000000 --- a/src/Objects/UnmanagedDeviceWarnings.php +++ /dev/null @@ -1,29 +0,0 @@ -active_access_code_count ?? null, - created_at: $json->created_at ?? null, - max_active_access_code_count: $json->max_active_access_code_count ?? - null, - message: $json->message ?? null, - warning_code: $json->warning_code ?? null, - ); - } - - public function __construct( - public int|null $active_access_code_count, - public string|null $created_at, - public int|null $max_active_access_code_count, - public string|null $message, - public string|null $warning_code, - ) {} -} diff --git a/src/Objects/UserIdentityErrors.php b/src/Objects/UserIdentityErrors.php deleted file mode 100644 index baeaf0f3..00000000 --- a/src/Objects/UserIdentityErrors.php +++ /dev/null @@ -1,28 +0,0 @@ -acs_system_id ?? null, - acs_user_id: $json->acs_user_id ?? null, - created_at: $json->created_at ?? null, - error_code: $json->error_code ?? null, - message: $json->message ?? null, - ); - } - - public function __construct( - public string|null $acs_system_id, - public string|null $acs_user_id, - public string|null $created_at, - public string|null $error_code, - public string|null $message, - ) {} -} diff --git a/src/Objects/UserIdentityWarnings.php b/src/Objects/UserIdentityWarnings.php deleted file mode 100644 index dd16a01b..00000000 --- a/src/Objects/UserIdentityWarnings.php +++ /dev/null @@ -1,24 +0,0 @@ -created_at ?? null, - message: $json->message ?? null, - warning_code: $json->warning_code ?? null, - ); - } - - public function __construct( - public string|null $created_at, - public string|null $message, - public string|null $warning_code, - ) {} -} diff --git a/src/Objects/WorkspaceConnectWebviewCustomization.php b/src/Objects/WorkspaceConnectWebviewCustomization.php deleted file mode 100644 index 373165eb..00000000 --- a/src/Objects/WorkspaceConnectWebviewCustomization.php +++ /dev/null @@ -1,29 +0,0 @@ -inviter_logo_url ?? null, - logo_shape: $json->logo_shape ?? null, - primary_button_color: $json->primary_button_color ?? null, - primary_button_text_color: $json->primary_button_text_color ?? null, - success_message: $json->success_message ?? null, - ); - } - - public function __construct( - public string|null $inviter_logo_url, - public string|null $logo_shape, - public string|null $primary_button_color, - public string|null $primary_button_text_color, - public string|null $success_message, - ) {} -} diff --git a/src/Resources/AccessCode.php b/src/Resources/AccessCode.php new file mode 100644 index 00000000..2eb0f946 --- /dev/null +++ b/src/Resources/AccessCode.php @@ -0,0 +1,281 @@ +access_code_id ?? null, + code: $json->code ?? null, + common_code_key: $json->common_code_key ?? null, + created_at: $json->created_at ?? null, + device_id: $json->device_id ?? null, + dormakaba_oracode_metadata: isset($json->dormakaba_oracode_metadata) + ? AccessCodeDormakabaOracodeMetadata::from_json( + $json->dormakaba_oracode_metadata, + ) + : null, + ends_at: $json->ends_at ?? null, + errors: array_map( + fn($e) => AccessCodeErrors::from_json($e), + $json->errors ?? [], + ), + is_backup: $json->is_backup ?? null, + is_backup_access_code_available: $json->is_backup_access_code_available ?? + null, + is_external_modification_allowed: $json->is_external_modification_allowed ?? + null, + is_managed: $json->is_managed ?? null, + is_offline_access_code: $json->is_offline_access_code ?? null, + is_one_time_use: $json->is_one_time_use ?? null, + is_scheduled_on_device: $json->is_scheduled_on_device ?? null, + is_waiting_for_code_assignment: $json->is_waiting_for_code_assignment ?? + null, + name: $json->name ?? null, + pending_mutations: array_map( + fn($p) => AccessCodePendingMutations::from_json($p), + $json->pending_mutations ?? [], + ), + pulled_backup_access_code_id: $json->pulled_backup_access_code_id ?? + null, + starts_at: $json->starts_at ?? null, + status: $json->status ?? null, + type: $json->type ?? null, + warnings: array_map( + fn($w) => AccessCodeWarnings::from_json($w), + $json->warnings ?? [], + ), + workspace_id: $json->workspace_id ?? null, + ); + } + + public function __construct( + public string|null $access_code_id, + public string|null $code, + public string|null $common_code_key, + public string|null $created_at, + public string|null $device_id, + public AccessCodeDormakabaOracodeMetadata|null $dormakaba_oracode_metadata, + public string|null $ends_at, + public array $errors, + public bool|null $is_backup, + public bool|null $is_backup_access_code_available, + public bool|null $is_external_modification_allowed, + public bool|null $is_managed, + public bool|null $is_offline_access_code, + public bool|null $is_one_time_use, + public bool|null $is_scheduled_on_device, + public bool|null $is_waiting_for_code_assignment, + public string|null $name, + public array $pending_mutations, + public string|null $pulled_backup_access_code_id, + public string|null $starts_at, + public string|null $status, + public string|null $type, + public array $warnings, + public string|null $workspace_id, + ) {} +} + +class AccessCodeDormakabaOracodeMetadata +{ + public static function from_json( + mixed $json, + ): AccessCodeDormakabaOracodeMetadata|null { + if (!$json) { + return null; + } + return new self( + is_cancellable: $json->is_cancellable ?? null, + is_early_checkin_able: $json->is_early_checkin_able ?? null, + is_extendable: $json->is_extendable ?? null, + is_overridable: $json->is_overridable ?? null, + site_name: $json->site_name ?? null, + stay_id: $json->stay_id ?? null, + user_level_id: $json->user_level_id ?? null, + user_level_name: $json->user_level_name ?? null, + ); + } + + public function __construct( + public bool|null $is_cancellable, + public bool|null $is_early_checkin_able, + public bool|null $is_extendable, + public bool|null $is_overridable, + public string|null $site_name, + public float|null $stay_id, + public string|null $user_level_id, + public string|null $user_level_name, + ) {} +} + +class AccessCodeErrors +{ + public static function from_json(mixed $json): AccessCodeErrors|null + { + if (!$json) { + return null; + } + return new self( + change_type: $json->change_type ?? null, + created_at: $json->created_at ?? null, + error_code: $json->error_code ?? null, + is_access_code_error: $json->is_access_code_error ?? null, + is_bridge_error: $json->is_bridge_error ?? null, + is_connected_account_error: $json->is_connected_account_error ?? + null, + is_device_error: $json->is_device_error ?? null, + managed_access_code_id: $json->managed_access_code_id ?? null, + message: $json->message ?? null, + modified_fields: array_map( + fn($m) => AccessCodeModifiedFields::from_json($m), + $json->modified_fields ?? [], + ), + unmanaged_access_code_id: $json->unmanaged_access_code_id ?? null, + ); + } + + public function __construct( + public string|null $change_type, + public string|null $created_at, + public string|null $error_code, + public bool|null $is_access_code_error, + public bool|null $is_bridge_error, + public bool|null $is_connected_account_error, + public bool|null $is_device_error, + public string|null $managed_access_code_id, + public string|null $message, + public array $modified_fields, + public string|null $unmanaged_access_code_id, + ) {} +} + +class AccessCodeFrom +{ + public static function from_json(mixed $json): AccessCodeFrom|null + { + if (!$json) { + return null; + } + return new self( + code: $json->code ?? null, + ends_at: $json->ends_at ?? null, + name: $json->name ?? null, + starts_at: $json->starts_at ?? null, + ); + } + + public function __construct( + public string|null $code, + public string|null $ends_at, + public string|null $name, + public string|null $starts_at, + ) {} +} + +class AccessCodeModifiedFields +{ + public static function from_json(mixed $json): AccessCodeModifiedFields|null + { + if (!$json) { + return null; + } + return new self( + field: $json->field ?? null, + from: $json->from ?? null, + to: $json->to ?? null, + ); + } + + public function __construct( + public string|null $field, + public string|null $from, + public string|null $to, + ) {} +} + +class AccessCodePendingMutations +{ + public static function from_json( + mixed $json, + ): AccessCodePendingMutations|null { + if (!$json) { + return null; + } + return new self( + created_at: $json->created_at ?? null, + from: isset($json->from) + ? AccessCodeFrom::from_json($json->from) + : null, + message: $json->message ?? null, + mutation_code: $json->mutation_code ?? null, + scheduled_at: $json->scheduled_at ?? null, + to: isset($json->to) ? AccessCodeTo::from_json($json->to) : null, + ); + } + + public function __construct( + public string|null $created_at, + public AccessCodeFrom|null $from, + public string|null $message, + public string|null $mutation_code, + public string|null $scheduled_at, + public AccessCodeTo|null $to, + ) {} +} + +class AccessCodeTo +{ + public static function from_json(mixed $json): AccessCodeTo|null + { + if (!$json) { + return null; + } + return new self( + code: $json->code ?? null, + ends_at: $json->ends_at ?? null, + name: $json->name ?? null, + starts_at: $json->starts_at ?? null, + ); + } + + public function __construct( + public string|null $code, + public string|null $ends_at, + public string|null $name, + public string|null $starts_at, + ) {} +} + +class AccessCodeWarnings +{ + public static function from_json(mixed $json): AccessCodeWarnings|null + { + if (!$json) { + return null; + } + return new self( + change_type: $json->change_type ?? null, + created_at: $json->created_at ?? null, + message: $json->message ?? null, + modified_fields: array_map( + fn($m) => AccessCodeModifiedFields::from_json($m), + $json->modified_fields ?? [], + ), + warning_code: $json->warning_code ?? null, + ); + } + + public function __construct( + public string|null $change_type, + public string|null $created_at, + public string|null $message, + public array $modified_fields, + public string|null $warning_code, + ) {} +} diff --git a/src/Resources/AccessGrant.php b/src/Resources/AccessGrant.php new file mode 100644 index 00000000..cd7a8250 --- /dev/null +++ b/src/Resources/AccessGrant.php @@ -0,0 +1,252 @@ +access_grant_id ?? null, + access_grant_key: $json->access_grant_key ?? null, + access_method_ids: $json->access_method_ids ?? null, + client_session_token: $json->client_session_token ?? null, + created_at: $json->created_at ?? null, + customization_profile_id: $json->customization_profile_id ?? null, + display_name: $json->display_name ?? null, + ends_at: $json->ends_at ?? null, + errors: array_map( + fn($e) => AccessGrantErrors::from_json($e), + $json->errors ?? [], + ), + instant_key_url: $json->instant_key_url ?? null, + location_ids: $json->location_ids ?? null, + name: $json->name ?? null, + pending_mutations: array_map( + fn($p) => AccessGrantPendingMutations::from_json($p), + $json->pending_mutations ?? [], + ), + requested_access_methods: array_map( + fn($r) => AccessGrantRequestedAccessMethods::from_json($r), + $json->requested_access_methods ?? [], + ), + reservation_key: $json->reservation_key ?? null, + space_ids: $json->space_ids ?? null, + starts_at: $json->starts_at ?? null, + user_identity_id: $json->user_identity_id ?? null, + warnings: array_map( + fn($w) => AccessGrantWarnings::from_json($w), + $json->warnings ?? [], + ), + workspace_id: $json->workspace_id ?? null, + ); + } + + public function __construct( + public string|null $access_grant_id, + public string|null $access_grant_key, + public array|null $access_method_ids, + public string|null $client_session_token, + public string|null $created_at, + public string|null $customization_profile_id, + public string|null $display_name, + public string|null $ends_at, + public array $errors, + public string|null $instant_key_url, + public array|null $location_ids, + public string|null $name, + public array $pending_mutations, + public array $requested_access_methods, + public string|null $reservation_key, + public array|null $space_ids, + public string|null $starts_at, + public string|null $user_identity_id, + public array $warnings, + public string|null $workspace_id, + ) {} +} + +class AccessGrantErrors +{ + public static function from_json(mixed $json): AccessGrantErrors|null + { + if (!$json) { + return null; + } + return new self( + created_at: $json->created_at ?? null, + error_code: $json->error_code ?? null, + message: $json->message ?? null, + missing_device_ids: $json->missing_device_ids ?? null, + ); + } + + public function __construct( + public string|null $created_at, + public string|null $error_code, + public string|null $message, + public array|null $missing_device_ids, + ) {} +} + +class AccessGrantFailedDevices +{ + public static function from_json(mixed $json): AccessGrantFailedDevices|null + { + if (!$json) { + return null; + } + return new self( + device_id: $json->device_id ?? null, + error_code: $json->error_code ?? null, + message: $json->message ?? null, + ); + } + + public function __construct( + public string|null $device_id, + public string|null $error_code, + public string|null $message, + ) {} +} + +class AccessGrantFrom +{ + public static function from_json(mixed $json): AccessGrantFrom|null + { + if (!$json) { + return null; + } + return new self( + device_ids: $json->device_ids ?? null, + ends_at: $json->ends_at ?? null, + starts_at: $json->starts_at ?? null, + ); + } + + public function __construct( + public array|null $device_ids, + public string|null $ends_at, + public string|null $starts_at, + ) {} +} + +class AccessGrantPendingMutations +{ + public static function from_json( + mixed $json, + ): AccessGrantPendingMutations|null { + if (!$json) { + return null; + } + return new self( + access_method_ids: $json->access_method_ids ?? null, + created_at: $json->created_at ?? null, + from: isset($json->from) + ? AccessGrantFrom::from_json($json->from) + : null, + message: $json->message ?? null, + mutation_code: $json->mutation_code ?? null, + to: isset($json->to) ? AccessGrantTo::from_json($json->to) : null, + ); + } + + public function __construct( + public array|null $access_method_ids, + public string|null $created_at, + public AccessGrantFrom|null $from, + public string|null $message, + public string|null $mutation_code, + public AccessGrantTo|null $to, + ) {} +} + +class AccessGrantRequestedAccessMethods +{ + public static function from_json( + mixed $json, + ): AccessGrantRequestedAccessMethods|null { + if (!$json) { + return null; + } + return new self( + code: $json->code ?? null, + created_access_method_ids: $json->created_access_method_ids ?? null, + created_at: $json->created_at ?? null, + display_name: $json->display_name ?? null, + instant_key_max_use_count: $json->instant_key_max_use_count ?? null, + mode: $json->mode ?? null, + ); + } + + public function __construct( + public string|null $code, + public array|null $created_access_method_ids, + public string|null $created_at, + public string|null $display_name, + public int|null $instant_key_max_use_count, + public string|null $mode, + ) {} +} + +class AccessGrantTo +{ + public static function from_json(mixed $json): AccessGrantTo|null + { + if (!$json) { + return null; + } + return new self( + common_code_key: $json->common_code_key ?? null, + device_ids: $json->device_ids ?? null, + ends_at: $json->ends_at ?? null, + starts_at: $json->starts_at ?? null, + ); + } + + public function __construct( + public string|null $common_code_key, + public array|null $device_ids, + public string|null $ends_at, + public string|null $starts_at, + ) {} +} + +class AccessGrantWarnings +{ + public static function from_json(mixed $json): AccessGrantWarnings|null + { + if (!$json) { + return null; + } + return new self( + access_method_ids: $json->access_method_ids ?? null, + created_at: $json->created_at ?? null, + device_id: $json->device_id ?? null, + failed_devices: array_map( + fn($f) => AccessGrantFailedDevices::from_json($f), + $json->failed_devices ?? [], + ), + message: $json->message ?? null, + new_code: $json->new_code ?? null, + original_code: $json->original_code ?? null, + reason: $json->reason ?? null, + warning_code: $json->warning_code ?? null, + ); + } + + public function __construct( + public array|null $access_method_ids, + public string|null $created_at, + public string|null $device_id, + public array $failed_devices, + public string|null $message, + public string|null $new_code, + public string|null $original_code, + public string|null $reason, + public string|null $warning_code, + ) {} +} diff --git a/src/Resources/AccessMethod.php b/src/Resources/AccessMethod.php new file mode 100644 index 00000000..b46fab94 --- /dev/null +++ b/src/Resources/AccessMethod.php @@ -0,0 +1,177 @@ +access_method_id ?? null, + client_session_token: $json->client_session_token ?? null, + code: $json->code ?? null, + created_at: $json->created_at ?? null, + customization_profile_id: $json->customization_profile_id ?? null, + display_name: $json->display_name ?? null, + errors: array_map( + fn($e) => AccessMethodErrors::from_json($e), + $json->errors ?? [], + ), + instant_key_url: $json->instant_key_url ?? null, + is_assignment_required: $json->is_assignment_required ?? null, + is_encoding_required: $json->is_encoding_required ?? null, + is_issued: $json->is_issued ?? null, + is_ready_for_assignment: $json->is_ready_for_assignment ?? null, + is_ready_for_encoding: $json->is_ready_for_encoding ?? null, + issued_at: $json->issued_at ?? null, + mode: $json->mode ?? null, + pending_mutations: array_map( + fn($p) => AccessMethodPendingMutations::from_json($p), + $json->pending_mutations ?? [], + ), + warnings: array_map( + fn($w) => AccessMethodWarnings::from_json($w), + $json->warnings ?? [], + ), + workspace_id: $json->workspace_id ?? null, + ); + } + + public function __construct( + public string|null $access_method_id, + public string|null $client_session_token, + public string|null $code, + public string|null $created_at, + public string|null $customization_profile_id, + public string|null $display_name, + public array $errors, + public string|null $instant_key_url, + public bool|null $is_assignment_required, + public bool|null $is_encoding_required, + public bool|null $is_issued, + public bool|null $is_ready_for_assignment, + public bool|null $is_ready_for_encoding, + public string|null $issued_at, + public string|null $mode, + public array $pending_mutations, + public array $warnings, + public string|null $workspace_id, + ) {} +} + +class AccessMethodErrors +{ + public static function from_json(mixed $json): AccessMethodErrors|null + { + if (!$json) { + return null; + } + return new self( + created_at: $json->created_at ?? null, + error_code: $json->error_code ?? null, + message: $json->message ?? null, + ); + } + + public function __construct( + public string|null $created_at, + public string|null $error_code, + public string|null $message, + ) {} +} + +class AccessMethodFrom +{ + public static function from_json(mixed $json): AccessMethodFrom|null + { + if (!$json) { + return null; + } + return new self( + device_ids: $json->device_ids ?? null, + ends_at: $json->ends_at ?? null, + starts_at: $json->starts_at ?? null, + ); + } + + public function __construct( + public array|null $device_ids, + public string|null $ends_at, + public string|null $starts_at, + ) {} +} + +class AccessMethodPendingMutations +{ + public static function from_json( + mixed $json, + ): AccessMethodPendingMutations|null { + if (!$json) { + return null; + } + return new self( + created_at: $json->created_at ?? null, + from: isset($json->from) + ? AccessMethodFrom::from_json($json->from) + : null, + message: $json->message ?? null, + mutation_code: $json->mutation_code ?? null, + to: isset($json->to) ? AccessMethodTo::from_json($json->to) : null, + ); + } + + public function __construct( + public string|null $created_at, + public AccessMethodFrom|null $from, + public string|null $message, + public string|null $mutation_code, + public AccessMethodTo|null $to, + ) {} +} + +class AccessMethodTo +{ + public static function from_json(mixed $json): AccessMethodTo|null + { + if (!$json) { + return null; + } + return new self( + device_ids: $json->device_ids ?? null, + ends_at: $json->ends_at ?? null, + starts_at: $json->starts_at ?? null, + ); + } + + public function __construct( + public array|null $device_ids, + public string|null $ends_at, + public string|null $starts_at, + ) {} +} + +class AccessMethodWarnings +{ + public static function from_json(mixed $json): AccessMethodWarnings|null + { + if (!$json) { + return null; + } + return new self( + created_at: $json->created_at ?? null, + message: $json->message ?? null, + original_access_method_id: $json->original_access_method_id ?? null, + warning_code: $json->warning_code ?? null, + ); + } + + public function __construct( + public string|null $created_at, + public string|null $message, + public string|null $original_access_method_id, + public string|null $warning_code, + ) {} +} diff --git a/src/Resources/AcsAccessGroup.php b/src/Resources/AcsAccessGroup.php new file mode 100644 index 00000000..458df094 --- /dev/null +++ b/src/Resources/AcsAccessGroup.php @@ -0,0 +1,211 @@ +access_group_type ?? null, + access_group_type_display_name: $json->access_group_type_display_name ?? + null, + access_schedule: isset($json->access_schedule) + ? AcsAccessGroupAccessSchedule::from_json( + $json->access_schedule, + ) + : null, + acs_access_group_id: $json->acs_access_group_id ?? null, + acs_system_id: $json->acs_system_id ?? null, + connected_account_id: $json->connected_account_id ?? null, + created_at: $json->created_at ?? null, + display_name: $json->display_name ?? null, + errors: array_map( + fn($e) => AcsAccessGroupErrors::from_json($e), + $json->errors ?? [], + ), + external_type: $json->external_type ?? null, + external_type_display_name: $json->external_type_display_name ?? + null, + is_managed: $json->is_managed ?? null, + name: $json->name ?? null, + pending_mutations: array_map( + fn($p) => AcsAccessGroupPendingMutations::from_json($p), + $json->pending_mutations ?? [], + ), + warnings: array_map( + fn($w) => AcsAccessGroupWarnings::from_json($w), + $json->warnings ?? [], + ), + workspace_id: $json->workspace_id ?? null, + ); + } + + public function __construct( + public string|null $access_group_type, + public string|null $access_group_type_display_name, + public AcsAccessGroupAccessSchedule|null $access_schedule, + public string|null $acs_access_group_id, + public string|null $acs_system_id, + public string|null $connected_account_id, + public string|null $created_at, + public string|null $display_name, + public array $errors, + public string|null $external_type, + public string|null $external_type_display_name, + public bool|null $is_managed, + public string|null $name, + public array $pending_mutations, + public array $warnings, + public string|null $workspace_id, + ) {} +} + +class AcsAccessGroupAccessSchedule +{ + public static function from_json( + mixed $json, + ): AcsAccessGroupAccessSchedule|null { + if (!$json) { + return null; + } + return new self( + ends_at: $json->ends_at ?? null, + starts_at: $json->starts_at ?? null, + ); + } + + public function __construct( + public string|null $ends_at, + public string|null $starts_at, + ) {} +} + +class AcsAccessGroupErrors +{ + public static function from_json(mixed $json): AcsAccessGroupErrors|null + { + if (!$json) { + return null; + } + return new self( + created_at: $json->created_at ?? null, + error_code: $json->error_code ?? null, + message: $json->message ?? null, + ); + } + + public function __construct( + public string|null $created_at, + public string|null $error_code, + public string|null $message, + ) {} +} + +class AcsAccessGroupFrom +{ + public static function from_json(mixed $json): AcsAccessGroupFrom|null + { + if (!$json) { + return null; + } + return new self( + acs_entrance_id: $json->acs_entrance_id ?? null, + acs_user_id: $json->acs_user_id ?? null, + ends_at: $json->ends_at ?? null, + name: $json->name ?? null, + starts_at: $json->starts_at ?? null, + ); + } + + public function __construct( + public string|null $acs_entrance_id, + public string|null $acs_user_id, + public string|null $ends_at, + public string|null $name, + public string|null $starts_at, + ) {} +} + +class AcsAccessGroupPendingMutations +{ + public static function from_json( + mixed $json, + ): AcsAccessGroupPendingMutations|null { + if (!$json) { + return null; + } + return new self( + acs_user_id: $json->acs_user_id ?? null, + created_at: $json->created_at ?? null, + from: isset($json->from) + ? AcsAccessGroupFrom::from_json($json->from) + : null, + message: $json->message ?? null, + mutation_code: $json->mutation_code ?? null, + to: isset($json->to) + ? AcsAccessGroupTo::from_json($json->to) + : null, + variant: $json->variant ?? null, + ); + } + + public function __construct( + public string|null $acs_user_id, + public string|null $created_at, + public AcsAccessGroupFrom|null $from, + public string|null $message, + public string|null $mutation_code, + public AcsAccessGroupTo|null $to, + public string|null $variant, + ) {} +} + +class AcsAccessGroupTo +{ + public static function from_json(mixed $json): AcsAccessGroupTo|null + { + if (!$json) { + return null; + } + return new self( + acs_entrance_id: $json->acs_entrance_id ?? null, + acs_user_id: $json->acs_user_id ?? null, + ends_at: $json->ends_at ?? null, + name: $json->name ?? null, + starts_at: $json->starts_at ?? null, + ); + } + + public function __construct( + public string|null $acs_entrance_id, + public string|null $acs_user_id, + public string|null $ends_at, + public string|null $name, + public string|null $starts_at, + ) {} +} + +class AcsAccessGroupWarnings +{ + public static function from_json(mixed $json): AcsAccessGroupWarnings|null + { + if (!$json) { + return null; + } + return new self( + created_at: $json->created_at ?? null, + message: $json->message ?? null, + warning_code: $json->warning_code ?? null, + ); + } + + public function __construct( + public string|null $created_at, + public string|null $message, + public string|null $warning_code, + ) {} +} diff --git a/src/Objects/AcsCredential.php b/src/Resources/AcsCredential.php similarity index 55% rename from src/Objects/AcsCredential.php rename to src/Resources/AcsCredential.php index 0bb6fb5c..63dec517 100644 --- a/src/Objects/AcsCredential.php +++ b/src/Resources/AcsCredential.php @@ -1,6 +1,6 @@ auto_join ?? null, + door_names: $json->door_names ?? null, + endpoint_id: $json->endpoint_id ?? null, + key_id: $json->key_id ?? null, + key_issuing_request_id: $json->key_issuing_request_id ?? null, + override_guest_acs_entrance_ids: $json->override_guest_acs_entrance_ids ?? + null, + ); + } + + public function __construct( + public bool|null $auto_join, + public array|null $door_names, + public string|null $endpoint_id, + public string|null $key_id, + public string|null $key_issuing_request_id, + public array|null $override_guest_acs_entrance_ids, + ) {} +} + +class AcsCredentialErrors +{ + public static function from_json(mixed $json): AcsCredentialErrors|null + { + if (!$json) { + return null; + } + return new self( + created_at: $json->created_at ?? null, + error_code: $json->error_code ?? null, + message: $json->message ?? null, + ); + } + + public function __construct( + public string|null $created_at, + public string|null $error_code, + public string|null $message, + ) {} +} + +class AcsCredentialVisionlineMetadata +{ + public static function from_json( + mixed $json, + ): AcsCredentialVisionlineMetadata|null { + if (!$json) { + return null; + } + return new self( + auto_join: $json->auto_join ?? null, + card_function_type: $json->card_function_type ?? null, + card_id: $json->card_id ?? null, + common_acs_entrance_ids: $json->common_acs_entrance_ids ?? null, + credential_id: $json->credential_id ?? null, + guest_acs_entrance_ids: $json->guest_acs_entrance_ids ?? null, + is_valid: $json->is_valid ?? null, + joiner_acs_credential_ids: $json->joiner_acs_credential_ids ?? null, + ); + } + + public function __construct( + public bool|null $auto_join, + public string|null $card_function_type, + public string|null $card_id, + public array|null $common_acs_entrance_ids, + public string|null $credential_id, + public array|null $guest_acs_entrance_ids, + public bool|null $is_valid, + public array|null $joiner_acs_credential_ids, + ) {} +} + +class AcsCredentialWarnings +{ + public static function from_json(mixed $json): AcsCredentialWarnings|null + { + if (!$json) { + return null; + } + return new self( + created_at: $json->created_at ?? null, + message: $json->message ?? null, + warning_code: $json->warning_code ?? null, + ); + } + + public function __construct( + public string|null $created_at, + public string|null $message, + public string|null $warning_code, + ) {} +} diff --git a/src/Objects/AcsEncoder.php b/src/Resources/AcsEncoder.php similarity index 65% rename from src/Objects/AcsEncoder.php rename to src/Resources/AcsEncoder.php index 58974825..92a222ca 100644 --- a/src/Objects/AcsEncoder.php +++ b/src/Resources/AcsEncoder.php @@ -1,6 +1,6 @@ created_at ?? null, + error_code: $json->error_code ?? null, + message: $json->message ?? null, + ); + } + + public function __construct( + public string|null $created_at, + public string|null $error_code, + public string|null $message, + ) {} +} diff --git a/src/Resources/AcsEntrance.php b/src/Resources/AcsEntrance.php new file mode 100644 index 00000000..76e40fe2 --- /dev/null +++ b/src/Resources/AcsEntrance.php @@ -0,0 +1,457 @@ +acs_entrance_id ?? null, + acs_system_id: $json->acs_system_id ?? null, + akiles_metadata: isset($json->akiles_metadata) + ? AcsEntranceAkilesMetadata::from_json($json->akiles_metadata) + : null, + assa_abloy_vostio_metadata: isset($json->assa_abloy_vostio_metadata) + ? AcsEntranceAssaAbloyVostioMetadata::from_json( + $json->assa_abloy_vostio_metadata, + ) + : null, + avigilon_alta_metadata: isset($json->avigilon_alta_metadata) + ? AcsEntranceAvigilonAltaMetadata::from_json( + $json->avigilon_alta_metadata, + ) + : null, + brivo_metadata: isset($json->brivo_metadata) + ? AcsEntranceBrivoMetadata::from_json($json->brivo_metadata) + : null, + can_belong_to_reservation: $json->can_belong_to_reservation ?? null, + can_unlock_with_card: $json->can_unlock_with_card ?? null, + can_unlock_with_cloud_key: $json->can_unlock_with_cloud_key ?? null, + can_unlock_with_code: $json->can_unlock_with_code ?? null, + can_unlock_with_mobile_key: $json->can_unlock_with_mobile_key ?? + null, + connected_account_id: $json->connected_account_id ?? null, + created_at: $json->created_at ?? null, + display_name: $json->display_name ?? null, + dormakaba_ambiance_metadata: isset( + $json->dormakaba_ambiance_metadata, + ) + ? AcsEntranceDormakabaAmbianceMetadata::from_json( + $json->dormakaba_ambiance_metadata, + ) + : null, + dormakaba_community_metadata: isset( + $json->dormakaba_community_metadata, + ) + ? AcsEntranceDormakabaCommunityMetadata::from_json( + $json->dormakaba_community_metadata, + ) + : null, + errors: array_map( + fn($e) => AcsEntranceErrors::from_json($e), + $json->errors ?? [], + ), + hotek_metadata: isset($json->hotek_metadata) + ? AcsEntranceHotekMetadata::from_json($json->hotek_metadata) + : null, + is_locked: $json->is_locked ?? null, + latch_metadata: isset($json->latch_metadata) + ? AcsEntranceLatchMetadata::from_json($json->latch_metadata) + : null, + salto_ks_metadata: isset($json->salto_ks_metadata) + ? AcsEntranceSaltoKsMetadata::from_json( + $json->salto_ks_metadata, + ) + : null, + salto_space_metadata: isset($json->salto_space_metadata) + ? AcsEntranceSaltoSpaceMetadata::from_json( + $json->salto_space_metadata, + ) + : null, + space_ids: $json->space_ids ?? null, + visionline_metadata: isset($json->visionline_metadata) + ? AcsEntranceVisionlineMetadata::from_json( + $json->visionline_metadata, + ) + : null, + warnings: array_map( + fn($w) => AcsEntranceWarnings::from_json($w), + $json->warnings ?? [], + ), + ); + } + + public function __construct( + public string|null $acs_entrance_id, + public string|null $acs_system_id, + public AcsEntranceAkilesMetadata|null $akiles_metadata, + public AcsEntranceAssaAbloyVostioMetadata|null $assa_abloy_vostio_metadata, + public AcsEntranceAvigilonAltaMetadata|null $avigilon_alta_metadata, + public AcsEntranceBrivoMetadata|null $brivo_metadata, + public bool|null $can_belong_to_reservation, + public bool|null $can_unlock_with_card, + public bool|null $can_unlock_with_cloud_key, + public bool|null $can_unlock_with_code, + public bool|null $can_unlock_with_mobile_key, + public string|null $connected_account_id, + public string|null $created_at, + public string|null $display_name, + public AcsEntranceDormakabaAmbianceMetadata|null $dormakaba_ambiance_metadata, + public AcsEntranceDormakabaCommunityMetadata|null $dormakaba_community_metadata, + public array $errors, + public AcsEntranceHotekMetadata|null $hotek_metadata, + public bool|null $is_locked, + public AcsEntranceLatchMetadata|null $latch_metadata, + public AcsEntranceSaltoKsMetadata|null $salto_ks_metadata, + public AcsEntranceSaltoSpaceMetadata|null $salto_space_metadata, + public array|null $space_ids, + public AcsEntranceVisionlineMetadata|null $visionline_metadata, + public array $warnings, + ) {} +} + +class AcsEntranceActions +{ + public static function from_json(mixed $json): AcsEntranceActions|null + { + if (!$json) { + return null; + } + return new self(id: $json->id ?? null, name: $json->name ?? null); + } + + public function __construct( + public string|null $id, + public string|null $name, + ) {} +} + +class AcsEntranceAkilesMetadata +{ + public static function from_json( + mixed $json, + ): AcsEntranceAkilesMetadata|null { + if (!$json) { + return null; + } + return new self( + actions: array_map( + fn($a) => AcsEntranceActions::from_json($a), + $json->actions ?? [], + ), + gadget_id: $json->gadget_id ?? null, + site_id: $json->site_id ?? null, + site_name: $json->site_name ?? null, + ); + } + + public function __construct( + public array $actions, + public string|null $gadget_id, + public string|null $site_id, + public string|null $site_name, + ) {} +} + +class AcsEntranceAssaAbloyVostioMetadata +{ + public static function from_json( + mixed $json, + ): AcsEntranceAssaAbloyVostioMetadata|null { + if (!$json) { + return null; + } + return new self( + door_name: $json->door_name ?? null, + door_number: $json->door_number ?? null, + door_type: $json->door_type ?? null, + pms_id: $json->pms_id ?? null, + stand_open: $json->stand_open ?? null, + ); + } + + public function __construct( + public string|null $door_name, + public float|null $door_number, + public string|null $door_type, + public string|null $pms_id, + public bool|null $stand_open, + ) {} +} + +class AcsEntranceAvigilonAltaMetadata +{ + public static function from_json( + mixed $json, + ): AcsEntranceAvigilonAltaMetadata|null { + if (!$json) { + return null; + } + return new self( + entry_name: $json->entry_name ?? null, + entry_relays_total_count: $json->entry_relays_total_count ?? null, + org_name: $json->org_name ?? null, + site_id: $json->site_id ?? null, + site_name: $json->site_name ?? null, + zone_id: $json->zone_id ?? null, + zone_name: $json->zone_name ?? null, + ); + } + + public function __construct( + public string|null $entry_name, + public float|null $entry_relays_total_count, + public string|null $org_name, + public float|null $site_id, + public string|null $site_name, + public float|null $zone_id, + public string|null $zone_name, + ) {} +} + +class AcsEntranceBrivoMetadata +{ + public static function from_json(mixed $json): AcsEntranceBrivoMetadata|null + { + if (!$json) { + return null; + } + return new self( + access_point_id: $json->access_point_id ?? null, + site_id: $json->site_id ?? null, + site_name: $json->site_name ?? null, + ); + } + + public function __construct( + public string|null $access_point_id, + public float|null $site_id, + public string|null $site_name, + ) {} +} + +class AcsEntranceDormakabaAmbianceMetadata +{ + public static function from_json( + mixed $json, + ): AcsEntranceDormakabaAmbianceMetadata|null { + if (!$json) { + return null; + } + return new self(access_point_name: $json->access_point_name ?? null); + } + + public function __construct(public string|null $access_point_name) {} +} + +class AcsEntranceDormakabaCommunityMetadata +{ + public static function from_json( + mixed $json, + ): AcsEntranceDormakabaCommunityMetadata|null { + if (!$json) { + return null; + } + return new self( + access_point_profile: $json->access_point_profile ?? null, + ); + } + + public function __construct(public string|null $access_point_profile) {} +} + +class AcsEntranceErrors +{ + public static function from_json(mixed $json): AcsEntranceErrors|null + { + if (!$json) { + return null; + } + return new self( + created_at: $json->created_at ?? null, + error_code: $json->error_code ?? null, + message: $json->message ?? null, + ); + } + + public function __construct( + public string|null $created_at, + public string|null $error_code, + public string|null $message, + ) {} +} + +class AcsEntranceHotekMetadata +{ + public static function from_json(mixed $json): AcsEntranceHotekMetadata|null + { + if (!$json) { + return null; + } + return new self( + common_area_name: $json->common_area_name ?? null, + common_area_number: $json->common_area_number ?? null, + room_number: $json->room_number ?? null, + ); + } + + public function __construct( + public string|null $common_area_name, + public string|null $common_area_number, + public string|null $room_number, + ) {} +} + +class AcsEntranceLatchMetadata +{ + public static function from_json(mixed $json): AcsEntranceLatchMetadata|null + { + if (!$json) { + return null; + } + return new self( + accessibility_type: $json->accessibility_type ?? null, + door_name: $json->door_name ?? null, + door_type: $json->door_type ?? null, + is_connected: $json->is_connected ?? null, + ); + } + + public function __construct( + public string|null $accessibility_type, + public string|null $door_name, + public string|null $door_type, + public bool|null $is_connected, + ) {} +} + +class AcsEntranceProfiles +{ + public static function from_json(mixed $json): AcsEntranceProfiles|null + { + if (!$json) { + return null; + } + return new self( + visionline_door_profile_id: $json->visionline_door_profile_id ?? + null, + visionline_door_profile_type: $json->visionline_door_profile_type ?? + null, + ); + } + + public function __construct( + public string|null $visionline_door_profile_id, + public string|null $visionline_door_profile_type, + ) {} +} + +class AcsEntranceSaltoKsMetadata +{ + public static function from_json( + mixed $json, + ): AcsEntranceSaltoKsMetadata|null { + if (!$json) { + return null; + } + return new self( + battery_level: $json->battery_level ?? null, + door_name: $json->door_name ?? null, + intrusion_alarm: $json->intrusion_alarm ?? null, + left_open_alarm: $json->left_open_alarm ?? null, + lock_type: $json->lock_type ?? null, + locked_state: $json->locked_state ?? null, + online: $json->online ?? null, + privacy_mode: $json->privacy_mode ?? null, + ); + } + + public function __construct( + public string|null $battery_level, + public string|null $door_name, + public bool|null $intrusion_alarm, + public bool|null $left_open_alarm, + public string|null $lock_type, + public string|null $locked_state, + public bool|null $online, + public bool|null $privacy_mode, + ) {} +} + +class AcsEntranceSaltoSpaceMetadata +{ + public static function from_json( + mixed $json, + ): AcsEntranceSaltoSpaceMetadata|null { + if (!$json) { + return null; + } + return new self( + audit_on_keys: $json->audit_on_keys ?? null, + door_description: $json->door_description ?? null, + door_id: $json->door_id ?? null, + door_name: $json->door_name ?? null, + room_description: $json->room_description ?? null, + room_name: $json->room_name ?? null, + ); + } + + public function __construct( + public bool|null $audit_on_keys, + public string|null $door_description, + public string|null $door_id, + public string|null $door_name, + public string|null $room_description, + public string|null $room_name, + ) {} +} + +class AcsEntranceVisionlineMetadata +{ + public static function from_json( + mixed $json, + ): AcsEntranceVisionlineMetadata|null { + if (!$json) { + return null; + } + return new self( + door_category: $json->door_category ?? null, + door_name: $json->door_name ?? null, + profiles: array_map( + fn($p) => AcsEntranceProfiles::from_json($p), + $json->profiles ?? [], + ), + ); + } + + public function __construct( + public string|null $door_category, + public string|null $door_name, + public array $profiles, + ) {} +} + +class AcsEntranceWarnings +{ + public static function from_json(mixed $json): AcsEntranceWarnings|null + { + if (!$json) { + return null; + } + return new self( + created_at: $json->created_at ?? null, + message: $json->message ?? null, + warning_code: $json->warning_code ?? null, + ); + } + + public function __construct( + public string|null $created_at, + public string|null $message, + public string|null $warning_code, + ) {} +} diff --git a/src/Objects/AcsSystem.php b/src/Resources/AcsSystem.php similarity index 56% rename from src/Objects/AcsSystem.php rename to src/Resources/AcsSystem.php index d3c47822..a187b847 100644 --- a/src/Objects/AcsSystem.php +++ b/src/Resources/AcsSystem.php @@ -1,6 +1,6 @@ created_at ?? null, + error_code: $json->error_code ?? null, + is_bridge_error: $json->is_bridge_error ?? null, + message: $json->message ?? null, + ); + } + + public function __construct( + public string|null $created_at, + public string|null $error_code, + public bool|null $is_bridge_error, + public string|null $message, + ) {} +} + +class AcsSystemLocation +{ + public static function from_json(mixed $json): AcsSystemLocation|null + { + if (!$json) { + return null; + } + return new self(time_zone: $json->time_zone ?? null); + } + + public function __construct(public string|null $time_zone) {} +} + +class AcsSystemVisionlineMetadata +{ + public static function from_json( + mixed $json, + ): AcsSystemVisionlineMetadata|null { + if (!$json) { + return null; + } + return new self( + lan_address: $json->lan_address ?? null, + mobile_access_uuid: $json->mobile_access_uuid ?? null, + system_id: $json->system_id ?? null, + ); + } + + public function __construct( + public string|null $lan_address, + public string|null $mobile_access_uuid, + public string|null $system_id, + ) {} +} + +class AcsSystemWarnings +{ + public static function from_json(mixed $json): AcsSystemWarnings|null + { + if (!$json) { + return null; + } + return new self( + created_at: $json->created_at ?? null, + message: $json->message ?? null, + misconfigured_acs_entrance_ids: $json->misconfigured_acs_entrance_ids ?? + null, + warning_code: $json->warning_code ?? null, + ); + } + + public function __construct( + public string|null $created_at, + public string|null $message, + public array|null $misconfigured_acs_entrance_ids, + public string|null $warning_code, + ) {} +} diff --git a/src/Resources/AcsUser.php b/src/Resources/AcsUser.php new file mode 100644 index 00000000..60cff9fe --- /dev/null +++ b/src/Resources/AcsUser.php @@ -0,0 +1,277 @@ +access_schedule) + ? AcsUserAccessSchedule::from_json($json->access_schedule) + : null, + acs_system_id: $json->acs_system_id ?? null, + acs_user_id: $json->acs_user_id ?? null, + connected_account_id: $json->connected_account_id ?? null, + created_at: $json->created_at ?? null, + display_name: $json->display_name ?? null, + email: $json->email ?? null, + email_address: $json->email_address ?? null, + errors: array_map( + fn($e) => AcsUserErrors::from_json($e), + $json->errors ?? [], + ), + external_type: $json->external_type ?? null, + external_type_display_name: $json->external_type_display_name ?? + null, + full_name: $json->full_name ?? null, + hid_acs_system_id: $json->hid_acs_system_id ?? null, + is_managed: $json->is_managed ?? null, + is_suspended: $json->is_suspended ?? null, + pending_mutations: array_map( + fn($p) => AcsUserPendingMutations::from_json($p), + $json->pending_mutations ?? [], + ), + phone_number: $json->phone_number ?? null, + salto_ks_metadata: isset($json->salto_ks_metadata) + ? AcsUserSaltoKsMetadata::from_json($json->salto_ks_metadata) + : null, + salto_space_metadata: isset($json->salto_space_metadata) + ? AcsUserSaltoSpaceMetadata::from_json( + $json->salto_space_metadata, + ) + : null, + user_identity_email_address: $json->user_identity_email_address ?? + null, + user_identity_full_name: $json->user_identity_full_name ?? null, + user_identity_id: $json->user_identity_id ?? null, + user_identity_phone_number: $json->user_identity_phone_number ?? + null, + warnings: array_map( + fn($w) => AcsUserWarnings::from_json($w), + $json->warnings ?? [], + ), + workspace_id: $json->workspace_id ?? null, + ); + } + + public function __construct( + public AcsUserAccessSchedule|null $access_schedule, + public string|null $acs_system_id, + public string|null $acs_user_id, + public string|null $connected_account_id, + public string|null $created_at, + public string|null $display_name, + public string|null $email, + public string|null $email_address, + public array $errors, + public string|null $external_type, + public string|null $external_type_display_name, + public string|null $full_name, + public string|null $hid_acs_system_id, + public bool|null $is_managed, + public bool|null $is_suspended, + public array $pending_mutations, + public string|null $phone_number, + public AcsUserSaltoKsMetadata|null $salto_ks_metadata, + public AcsUserSaltoSpaceMetadata|null $salto_space_metadata, + public string|null $user_identity_email_address, + public string|null $user_identity_full_name, + public string|null $user_identity_id, + public string|null $user_identity_phone_number, + public array $warnings, + public string|null $workspace_id, + ) {} +} + +class AcsUserAccessSchedule +{ + public static function from_json(mixed $json): AcsUserAccessSchedule|null + { + if (!$json) { + return null; + } + return new self( + ends_at: $json->ends_at ?? null, + starts_at: $json->starts_at ?? null, + ); + } + + public function __construct( + public string|null $ends_at, + public string|null $starts_at, + ) {} +} + +class AcsUserErrors +{ + public static function from_json(mixed $json): AcsUserErrors|null + { + if (!$json) { + return null; + } + return new self( + created_at: $json->created_at ?? null, + error_code: $json->error_code ?? null, + message: $json->message ?? null, + ); + } + + public function __construct( + public string|null $created_at, + public string|null $error_code, + public string|null $message, + ) {} +} + +class AcsUserFrom +{ + public static function from_json(mixed $json): AcsUserFrom|null + { + if (!$json) { + return null; + } + return new self( + acs_access_group_id: $json->acs_access_group_id ?? null, + acs_credential_id: $json->acs_credential_id ?? null, + email_address: $json->email_address ?? null, + ends_at: $json->ends_at ?? null, + full_name: $json->full_name ?? null, + is_suspended: $json->is_suspended ?? null, + phone_number: $json->phone_number ?? null, + starts_at: $json->starts_at ?? null, + ); + } + + public function __construct( + public string|null $acs_access_group_id, + public string|null $acs_credential_id, + public string|null $email_address, + public string|null $ends_at, + public string|null $full_name, + public bool|null $is_suspended, + public string|null $phone_number, + public string|null $starts_at, + ) {} +} + +class AcsUserPendingMutations +{ + public static function from_json(mixed $json): AcsUserPendingMutations|null + { + if (!$json) { + return null; + } + return new self( + acs_access_group_id: $json->acs_access_group_id ?? null, + created_at: $json->created_at ?? null, + from: isset($json->from) + ? AcsUserFrom::from_json($json->from) + : null, + message: $json->message ?? null, + mutation_code: $json->mutation_code ?? null, + scheduled_at: $json->scheduled_at ?? null, + to: isset($json->to) ? AcsUserTo::from_json($json->to) : null, + variant: $json->variant ?? null, + ); + } + + public function __construct( + public string|null $acs_access_group_id, + public string|null $created_at, + public AcsUserFrom|null $from, + public string|null $message, + public string|null $mutation_code, + public string|null $scheduled_at, + public AcsUserTo|null $to, + public string|null $variant, + ) {} +} + +class AcsUserSaltoKsMetadata +{ + public static function from_json(mixed $json): AcsUserSaltoKsMetadata|null + { + if (!$json) { + return null; + } + return new self(is_subscribed: $json->is_subscribed ?? null); + } + + public function __construct(public bool|null $is_subscribed) {} +} + +class AcsUserSaltoSpaceMetadata +{ + public static function from_json( + mixed $json, + ): AcsUserSaltoSpaceMetadata|null { + if (!$json) { + return null; + } + return new self( + audit_openings: $json->audit_openings ?? null, + user_id: $json->user_id ?? null, + ); + } + + public function __construct( + public bool|null $audit_openings, + public string|null $user_id, + ) {} +} + +class AcsUserTo +{ + public static function from_json(mixed $json): AcsUserTo|null + { + if (!$json) { + return null; + } + return new self( + acs_access_group_id: $json->acs_access_group_id ?? null, + acs_credential_id: $json->acs_credential_id ?? null, + email_address: $json->email_address ?? null, + ends_at: $json->ends_at ?? null, + full_name: $json->full_name ?? null, + is_suspended: $json->is_suspended ?? null, + phone_number: $json->phone_number ?? null, + starts_at: $json->starts_at ?? null, + ); + } + + public function __construct( + public string|null $acs_access_group_id, + public string|null $acs_credential_id, + public string|null $email_address, + public string|null $ends_at, + public string|null $full_name, + public bool|null $is_suspended, + public string|null $phone_number, + public string|null $starts_at, + ) {} +} + +class AcsUserWarnings +{ + public static function from_json(mixed $json): AcsUserWarnings|null + { + if (!$json) { + return null; + } + return new self( + created_at: $json->created_at ?? null, + message: $json->message ?? null, + warning_code: $json->warning_code ?? null, + ); + } + + public function __construct( + public string|null $created_at, + public string|null $message, + public string|null $warning_code, + ) {} +} diff --git a/src/Resources/ActionAttempt.php b/src/Resources/ActionAttempt.php new file mode 100644 index 00000000..a64b9565 --- /dev/null +++ b/src/Resources/ActionAttempt.php @@ -0,0 +1,476 @@ +action_attempt_id ?? null, + action_type: $json->action_type ?? null, + error: isset($json->error) + ? ActionAttemptError::from_json($json->error) + : null, + result: isset($json->result) + ? ActionAttemptResult::from_json($json->result) + : null, + status: $json->status ?? null, + ); + } + + public function __construct( + public string|null $action_attempt_id, + public string|null $action_type, + public ActionAttemptError|null $error, + public ActionAttemptResult|null $result, + public string|null $status, + ) {} +} + +class ActionAttemptAcsCredentialOnEncoder +{ + public static function from_json( + mixed $json, + ): ActionAttemptAcsCredentialOnEncoder|null { + if (!$json) { + return null; + } + return new self( + card_number: $json->card_number ?? null, + created_at: $json->created_at ?? null, + ends_at: $json->ends_at ?? null, + is_issued: $json->is_issued ?? null, + starts_at: $json->starts_at ?? null, + visionline_metadata: isset($json->visionline_metadata) + ? ActionAttemptVisionlineMetadata::from_json( + $json->visionline_metadata, + ) + : null, + ); + } + + public function __construct( + public string|null $card_number, + public string|null $created_at, + public string|null $ends_at, + public bool|null $is_issued, + public string|null $starts_at, + public ActionAttemptVisionlineMetadata|null $visionline_metadata, + ) {} +} + +class ActionAttemptAcsCredentialOnSeam +{ + public static function from_json( + mixed $json, + ): ActionAttemptAcsCredentialOnSeam|null { + if (!$json) { + return null; + } + return new self( + access_method: $json->access_method ?? null, + acs_credential_id: $json->acs_credential_id ?? null, + acs_credential_pool_id: $json->acs_credential_pool_id ?? null, + acs_system_id: $json->acs_system_id ?? null, + acs_user_id: $json->acs_user_id ?? null, + assa_abloy_vostio_metadata: isset($json->assa_abloy_vostio_metadata) + ? ActionAttemptAssaAbloyVostioMetadata::from_json( + $json->assa_abloy_vostio_metadata, + ) + : null, + card_number: $json->card_number ?? null, + code: $json->code ?? null, + connected_account_id: $json->connected_account_id ?? null, + created_at: $json->created_at ?? null, + display_name: $json->display_name ?? null, + ends_at: $json->ends_at ?? null, + errors: array_map( + fn($e) => ActionAttemptErrors::from_json($e), + $json->errors ?? [], + ), + external_type: $json->external_type ?? null, + external_type_display_name: $json->external_type_display_name ?? + null, + is_issued: $json->is_issued ?? null, + is_latest_desired_state_synced_with_provider: $json->is_latest_desired_state_synced_with_provider ?? + null, + is_managed: $json->is_managed ?? null, + is_multi_phone_sync_credential: $json->is_multi_phone_sync_credential ?? + null, + is_one_time_use: $json->is_one_time_use ?? null, + issued_at: $json->issued_at ?? null, + latest_desired_state_synced_with_provider_at: $json->latest_desired_state_synced_with_provider_at ?? + null, + parent_acs_credential_id: $json->parent_acs_credential_id ?? null, + starts_at: $json->starts_at ?? null, + user_identity_id: $json->user_identity_id ?? null, + visionline_metadata: isset($json->visionline_metadata) + ? ActionAttemptVisionlineMetadata::from_json( + $json->visionline_metadata, + ) + : null, + warnings: array_map( + fn($w) => ActionAttemptWarnings::from_json($w), + $json->warnings ?? [], + ), + workspace_id: $json->workspace_id ?? null, + ); + } + + public function __construct( + public string|null $access_method, + public string|null $acs_credential_id, + public string|null $acs_credential_pool_id, + public string|null $acs_system_id, + public string|null $acs_user_id, + public ActionAttemptAssaAbloyVostioMetadata|null $assa_abloy_vostio_metadata, + public string|null $card_number, + public string|null $code, + public string|null $connected_account_id, + public string|null $created_at, + public string|null $display_name, + public string|null $ends_at, + public array $errors, + public string|null $external_type, + public string|null $external_type_display_name, + public bool|null $is_issued, + public bool|null $is_latest_desired_state_synced_with_provider, + public bool|null $is_managed, + public bool|null $is_multi_phone_sync_credential, + public bool|null $is_one_time_use, + public string|null $issued_at, + public string|null $latest_desired_state_synced_with_provider_at, + public string|null $parent_acs_credential_id, + public string|null $starts_at, + public string|null $user_identity_id, + public ActionAttemptVisionlineMetadata|null $visionline_metadata, + public array $warnings, + public string|null $workspace_id, + ) {} +} + +class ActionAttemptAssaAbloyVostioMetadata +{ + public static function from_json( + mixed $json, + ): ActionAttemptAssaAbloyVostioMetadata|null { + if (!$json) { + return null; + } + return new self( + auto_join: $json->auto_join ?? null, + door_names: $json->door_names ?? null, + endpoint_id: $json->endpoint_id ?? null, + key_id: $json->key_id ?? null, + key_issuing_request_id: $json->key_issuing_request_id ?? null, + override_guest_acs_entrance_ids: $json->override_guest_acs_entrance_ids ?? + null, + ); + } + + public function __construct( + public bool|null $auto_join, + public array|null $door_names, + public string|null $endpoint_id, + public string|null $key_id, + public string|null $key_issuing_request_id, + public array|null $override_guest_acs_entrance_ids, + ) {} +} + +class ActionAttemptError +{ + public static function from_json(mixed $json): ActionAttemptError|null + { + if (!$json) { + return null; + } + return new self( + message: $json->message ?? null, + type: $json->type ?? null, + ); + } + + public function __construct( + public string|null $message, + public string|null $type, + ) {} +} + +class ActionAttemptErrors +{ + public static function from_json(mixed $json): ActionAttemptErrors|null + { + if (!$json) { + return null; + } + return new self( + created_at: $json->created_at ?? null, + error_code: $json->error_code ?? null, + message: $json->message ?? null, + ); + } + + public function __construct( + public string|null $created_at, + public string|null $error_code, + public string|null $message, + ) {} +} + +class ActionAttemptFrom +{ + public static function from_json(mixed $json): ActionAttemptFrom|null + { + if (!$json) { + return null; + } + return new self( + ends_at: $json->ends_at ?? null, + starts_at: $json->starts_at ?? null, + ); + } + + public function __construct( + public string|null $ends_at, + public string|null $starts_at, + ) {} +} + +class ActionAttemptPendingMutations +{ + public static function from_json( + mixed $json, + ): ActionAttemptPendingMutations|null { + if (!$json) { + return null; + } + return new self( + created_at: $json->created_at ?? null, + from: isset($json->from) + ? ActionAttemptFrom::from_json($json->from) + : null, + message: $json->message ?? null, + mutation_code: $json->mutation_code ?? null, + to: isset($json->to) ? ActionAttemptTo::from_json($json->to) : null, + ); + } + + public function __construct( + public string|null $created_at, + public ActionAttemptFrom|null $from, + public string|null $message, + public string|null $mutation_code, + public ActionAttemptTo|null $to, + ) {} +} + +class ActionAttemptResult +{ + public static function from_json(mixed $json): ActionAttemptResult|null + { + if (!$json) { + return null; + } + return new self( + access_method: $json->access_method ?? null, + access_method_id: $json->access_method_id ?? null, + acs_credential_id: $json->acs_credential_id ?? null, + acs_credential_on_encoder: isset($json->acs_credential_on_encoder) + ? ActionAttemptAcsCredentialOnEncoder::from_json( + $json->acs_credential_on_encoder, + ) + : null, + acs_credential_on_seam: isset($json->acs_credential_on_seam) + ? ActionAttemptAcsCredentialOnSeam::from_json( + $json->acs_credential_on_seam, + ) + : null, + acs_credential_pool_id: $json->acs_credential_pool_id ?? null, + acs_system_id: $json->acs_system_id ?? null, + acs_user_id: $json->acs_user_id ?? null, + assa_abloy_vostio_metadata: isset($json->assa_abloy_vostio_metadata) + ? ActionAttemptAssaAbloyVostioMetadata::from_json( + $json->assa_abloy_vostio_metadata, + ) + : null, + card_number: $json->card_number ?? null, + client_session_token: $json->client_session_token ?? null, + code: $json->code ?? null, + connected_account_id: $json->connected_account_id ?? null, + created_at: $json->created_at ?? null, + customization_profile_id: $json->customization_profile_id ?? null, + display_name: $json->display_name ?? null, + ends_at: $json->ends_at ?? null, + errors: array_map( + fn($e) => ActionAttemptErrors::from_json($e), + $json->errors ?? [], + ), + external_type: $json->external_type ?? null, + external_type_display_name: $json->external_type_display_name ?? + null, + instant_key_url: $json->instant_key_url ?? null, + is_assignment_required: $json->is_assignment_required ?? null, + is_encoding_required: $json->is_encoding_required ?? null, + is_issued: $json->is_issued ?? null, + is_latest_desired_state_synced_with_provider: $json->is_latest_desired_state_synced_with_provider ?? + null, + is_managed: $json->is_managed ?? null, + is_multi_phone_sync_credential: $json->is_multi_phone_sync_credential ?? + null, + is_one_time_use: $json->is_one_time_use ?? null, + is_ready_for_assignment: $json->is_ready_for_assignment ?? null, + is_ready_for_encoding: $json->is_ready_for_encoding ?? null, + issued_at: $json->issued_at ?? null, + latest_desired_state_synced_with_provider_at: $json->latest_desired_state_synced_with_provider_at ?? + null, + mode: $json->mode ?? null, + parent_acs_credential_id: $json->parent_acs_credential_id ?? null, + pending_mutations: array_map( + fn($p) => ActionAttemptPendingMutations::from_json($p), + $json->pending_mutations ?? [], + ), + starts_at: $json->starts_at ?? null, + user_identity_id: $json->user_identity_id ?? null, + visionline_metadata: isset($json->visionline_metadata) + ? ActionAttemptVisionlineMetadata::from_json( + $json->visionline_metadata, + ) + : null, + warnings: array_map( + fn($w) => ActionAttemptWarnings::from_json($w), + $json->warnings ?? [], + ), + was_confirmed_by_device: $json->was_confirmed_by_device ?? null, + workspace_id: $json->workspace_id ?? null, + ); + } + + public function __construct( + public string|null $access_method, + public string|null $access_method_id, + public string|null $acs_credential_id, + public ActionAttemptAcsCredentialOnEncoder|null $acs_credential_on_encoder, + public ActionAttemptAcsCredentialOnSeam|null $acs_credential_on_seam, + public string|null $acs_credential_pool_id, + public string|null $acs_system_id, + public string|null $acs_user_id, + public ActionAttemptAssaAbloyVostioMetadata|null $assa_abloy_vostio_metadata, + public string|null $card_number, + public string|null $client_session_token, + public string|null $code, + public string|null $connected_account_id, + public string|null $created_at, + public string|null $customization_profile_id, + public string|null $display_name, + public string|null $ends_at, + public array $errors, + public string|null $external_type, + public string|null $external_type_display_name, + public string|null $instant_key_url, + public bool|null $is_assignment_required, + public bool|null $is_encoding_required, + public bool|null $is_issued, + public bool|null $is_latest_desired_state_synced_with_provider, + public bool|null $is_managed, + public bool|null $is_multi_phone_sync_credential, + public bool|null $is_one_time_use, + public bool|null $is_ready_for_assignment, + public bool|null $is_ready_for_encoding, + public string|null $issued_at, + public string|null $latest_desired_state_synced_with_provider_at, + public string|null $mode, + public string|null $parent_acs_credential_id, + public array $pending_mutations, + public string|null $starts_at, + public string|null $user_identity_id, + public ActionAttemptVisionlineMetadata|null $visionline_metadata, + public array $warnings, + public bool|null $was_confirmed_by_device, + public string|null $workspace_id, + ) {} +} + +class ActionAttemptTo +{ + public static function from_json(mixed $json): ActionAttemptTo|null + { + if (!$json) { + return null; + } + return new self( + ends_at: $json->ends_at ?? null, + starts_at: $json->starts_at ?? null, + ); + } + + public function __construct( + public string|null $ends_at, + public string|null $starts_at, + ) {} +} + +class ActionAttemptVisionlineMetadata +{ + public static function from_json( + mixed $json, + ): ActionAttemptVisionlineMetadata|null { + if (!$json) { + return null; + } + return new self( + cancelled: $json->cancelled ?? null, + card_format: $json->card_format ?? null, + card_holder: $json->card_holder ?? null, + card_id: $json->card_id ?? null, + common_acs_entrance_ids: $json->common_acs_entrance_ids ?? null, + discarded: $json->discarded ?? null, + expired: $json->expired ?? null, + guest_acs_entrance_ids: $json->guest_acs_entrance_ids ?? null, + number_of_issued_cards: $json->number_of_issued_cards ?? null, + overridden: $json->overridden ?? null, + overwritten: $json->overwritten ?? null, + pending_auto_update: $json->pending_auto_update ?? null, + ); + } + + public function __construct( + public bool|null $cancelled, + public string|null $card_format, + public string|null $card_holder, + public string|null $card_id, + public array|null $common_acs_entrance_ids, + public bool|null $discarded, + public bool|null $expired, + public array|null $guest_acs_entrance_ids, + public float|null $number_of_issued_cards, + public bool|null $overridden, + public bool|null $overwritten, + public bool|null $pending_auto_update, + ) {} +} + +class ActionAttemptWarnings +{ + public static function from_json(mixed $json): ActionAttemptWarnings|null + { + if (!$json) { + return null; + } + return new self( + created_at: $json->created_at ?? null, + message: $json->message ?? null, + warning_code: $json->warning_code ?? null, + ); + } + + public function __construct( + public string|null $created_at, + public string|null $message, + public string|null $warning_code, + ) {} +} diff --git a/src/Objects/Batch.php b/src/Resources/Batch.php similarity index 98% rename from src/Objects/Batch.php rename to src/Resources/Batch.php index 46fb69ca..4ee00388 100644 --- a/src/Objects/Batch.php +++ b/src/Resources/Batch.php @@ -1,6 +1,6 @@ accepted_capabilities ?? null, + account_type: $json->account_type ?? null, + account_type_display_name: $json->account_type_display_name ?? null, + automatically_manage_new_devices: $json->automatically_manage_new_devices ?? + null, + connected_account_id: $json->connected_account_id ?? null, + created_at: $json->created_at ?? null, + custom_metadata: $json->custom_metadata ?? null, + customer_key: $json->customer_key ?? null, + default_checkin_time: $json->default_checkin_time ?? null, + default_checkout_time: $json->default_checkout_time ?? null, + display_name: $json->display_name ?? null, + errors: array_map( + fn($e) => ConnectedAccountErrors::from_json($e), + $json->errors ?? [], + ), + ical_feed_origin: $json->ical_feed_origin ?? null, + ical_url: $json->ical_url ?? null, + image_url: $json->image_url ?? null, + time_zone: $json->time_zone ?? null, + user_identifier: isset($json->user_identifier) + ? ConnectedAccountUserIdentifier::from_json( + $json->user_identifier, + ) + : null, + warnings: array_map( + fn($w) => ConnectedAccountWarnings::from_json($w), + $json->warnings ?? [], + ), + ); + } + + public function __construct( + public array|null $accepted_capabilities, + public string|null $account_type, + public string|null $account_type_display_name, + public bool|null $automatically_manage_new_devices, + public string|null $connected_account_id, + public string|null $created_at, + public mixed $custom_metadata, + public string|null $customer_key, + public string|null $default_checkin_time, + public string|null $default_checkout_time, + public string|null $display_name, + public array $errors, + public string|null $ical_feed_origin, + public string|null $ical_url, + public string|null $image_url, + public string|null $time_zone, + public ConnectedAccountUserIdentifier|null $user_identifier, + public array $warnings, + ) {} +} + +class ConnectedAccountErrors +{ + public static function from_json(mixed $json): ConnectedAccountErrors|null + { + if (!$json) { + return null; + } + return new self( + created_at: $json->created_at ?? null, + error_code: $json->error_code ?? null, + is_bridge_error: $json->is_bridge_error ?? null, + is_connected_account_error: $json->is_connected_account_error ?? + null, + message: $json->message ?? null, + salto_ks_metadata: isset($json->salto_ks_metadata) + ? ConnectedAccountSaltoKsMetadata::from_json( + $json->salto_ks_metadata, + ) + : null, + ); + } + + public function __construct( + public string|null $created_at, + public string|null $error_code, + public bool|null $is_bridge_error, + public bool|null $is_connected_account_error, + public string|null $message, + public ConnectedAccountSaltoKsMetadata|null $salto_ks_metadata, + ) {} +} + +class ConnectedAccountSaltoKsMetadata +{ + public static function from_json( + mixed $json, + ): ConnectedAccountSaltoKsMetadata|null { + if (!$json) { + return null; + } + return new self( + sites: array_map( + fn($s) => ConnectedAccountSites::from_json($s), + $json->sites ?? [], + ), + ); + } + + public function __construct(public array $sites) {} +} + +class ConnectedAccountSites +{ + public static function from_json(mixed $json): ConnectedAccountSites|null + { + if (!$json) { + return null; + } + return new self( + site_id: $json->site_id ?? null, + site_name: $json->site_name ?? null, + site_user_subscription_limit: $json->site_user_subscription_limit ?? + null, + subscribed_site_user_count: $json->subscribed_site_user_count ?? + null, + ); + } + + public function __construct( + public string|null $site_id, + public string|null $site_name, + public int|null $site_user_subscription_limit, + public int|null $subscribed_site_user_count, + ) {} +} + +class ConnectedAccountUserIdentifier +{ + public static function from_json( + mixed $json, + ): ConnectedAccountUserIdentifier|null { + if (!$json) { + return null; + } + return new self( + api_url: $json->api_url ?? null, + email: $json->email ?? null, + exclusive: $json->exclusive ?? null, + phone: $json->phone ?? null, + username: $json->username ?? null, + ); + } + + public function __construct( + public string|null $api_url, + public string|null $email, + public bool|null $exclusive, + public string|null $phone, + public string|null $username, + ) {} +} + +class ConnectedAccountWarnings +{ + public static function from_json(mixed $json): ConnectedAccountWarnings|null + { + if (!$json) { + return null; + } + return new self( + created_at: $json->created_at ?? null, + message: $json->message ?? null, + salto_ks_metadata: isset($json->salto_ks_metadata) + ? ConnectedAccountSaltoKsMetadata::from_json( + $json->salto_ks_metadata, + ) + : null, + warning_code: $json->warning_code ?? null, + ); + } + + public function __construct( + public string|null $created_at, + public string|null $message, + public ConnectedAccountSaltoKsMetadata|null $salto_ks_metadata, + public string|null $warning_code, + ) {} +} diff --git a/src/Objects/CustomerPortal.php b/src/Resources/CustomerPortal.php similarity index 96% rename from src/Objects/CustomerPortal.php rename to src/Resources/CustomerPortal.php index 86247dbf..501cb5f0 100644 --- a/src/Objects/CustomerPortal.php +++ b/src/Resources/CustomerPortal.php @@ -1,6 +1,6 @@ can_configure_auto_lock ?? null, + can_hvac_cool: $json->can_hvac_cool ?? null, + can_hvac_heat: $json->can_hvac_heat ?? null, + can_hvac_heat_cool: $json->can_hvac_heat_cool ?? null, + can_program_offline_access_codes: $json->can_program_offline_access_codes ?? + null, + can_program_online_access_codes: $json->can_program_online_access_codes ?? + null, + can_program_thermostat_programs_as_different_each_day: $json->can_program_thermostat_programs_as_different_each_day ?? + null, + can_program_thermostat_programs_as_same_each_day: $json->can_program_thermostat_programs_as_same_each_day ?? + null, + can_program_thermostat_programs_as_weekday_weekend: $json->can_program_thermostat_programs_as_weekday_weekend ?? + null, + can_remotely_lock: $json->can_remotely_lock ?? null, + can_remotely_unlock: $json->can_remotely_unlock ?? null, + can_run_thermostat_programs: $json->can_run_thermostat_programs ?? + null, + can_simulate_connection: $json->can_simulate_connection ?? null, + can_simulate_disconnection: $json->can_simulate_disconnection ?? + null, + can_simulate_hub_connection: $json->can_simulate_hub_connection ?? + null, + can_simulate_hub_disconnection: $json->can_simulate_hub_disconnection ?? + null, + can_simulate_paid_subscription: $json->can_simulate_paid_subscription ?? + null, + can_simulate_removal: $json->can_simulate_removal ?? null, + can_turn_off_hvac: $json->can_turn_off_hvac ?? null, + can_unlock_with_code: $json->can_unlock_with_code ?? null, + capabilities_supported: $json->capabilities_supported ?? null, + connected_account_id: $json->connected_account_id ?? null, + created_at: $json->created_at ?? null, + custom_metadata: $json->custom_metadata ?? null, + device_id: $json->device_id ?? null, + device_manufacturer: isset($json->device_manufacturer) + ? DeviceDeviceManufacturer::from_json( + $json->device_manufacturer, + ) + : null, + device_provider: isset($json->device_provider) + ? DeviceDeviceProvider::from_json($json->device_provider) + : null, + device_type: $json->device_type ?? null, + display_name: $json->display_name ?? null, + errors: array_map( + fn($e) => DeviceErrors::from_json($e), + $json->errors ?? [], + ), + is_managed: $json->is_managed ?? null, + location: isset($json->location) + ? DeviceLocation::from_json($json->location) + : null, + nickname: $json->nickname ?? null, + properties: isset($json->properties) + ? DeviceProperties::from_json($json->properties) + : null, + space_ids: $json->space_ids ?? null, + warnings: array_map( + fn($w) => DeviceWarnings::from_json($w), + $json->warnings ?? [], + ), + workspace_id: $json->workspace_id ?? null, + ); + } + + public function __construct( + public bool|null $can_configure_auto_lock, + public bool|null $can_hvac_cool, + public bool|null $can_hvac_heat, + public bool|null $can_hvac_heat_cool, + public bool|null $can_program_offline_access_codes, + public bool|null $can_program_online_access_codes, + public bool|null $can_program_thermostat_programs_as_different_each_day, + public bool|null $can_program_thermostat_programs_as_same_each_day, + public bool|null $can_program_thermostat_programs_as_weekday_weekend, + public bool|null $can_remotely_lock, + public bool|null $can_remotely_unlock, + public bool|null $can_run_thermostat_programs, + public bool|null $can_simulate_connection, + public bool|null $can_simulate_disconnection, + public bool|null $can_simulate_hub_connection, + public bool|null $can_simulate_hub_disconnection, + public bool|null $can_simulate_paid_subscription, + public bool|null $can_simulate_removal, + public bool|null $can_turn_off_hvac, + public bool|null $can_unlock_with_code, + public array|null $capabilities_supported, + public string|null $connected_account_id, + public string|null $created_at, + public mixed $custom_metadata, + public string|null $device_id, + public DeviceDeviceManufacturer|null $device_manufacturer, + public DeviceDeviceProvider|null $device_provider, + public string|null $device_type, + public string|null $display_name, + public array $errors, + public bool|null $is_managed, + public DeviceLocation|null $location, + public string|null $nickname, + public DeviceProperties|null $properties, + public array|null $space_ids, + public array $warnings, + public string|null $workspace_id, + ) {} +} + +class DeviceAccelerometerZ +{ + public static function from_json(mixed $json): DeviceAccelerometerZ|null + { + if (!$json) { + return null; + } + return new self(time: $json->time ?? null, value: $json->value ?? null); + } + + public function __construct( + public string|null $time, + public float|null $value, + ) {} +} + +class DeviceAccessoryKeypad +{ + public static function from_json(mixed $json): DeviceAccessoryKeypad|null + { + if (!$json) { + return null; + } + return new self( + battery: isset($json->battery) + ? DeviceBattery::from_json($json->battery) + : null, + is_connected: $json->is_connected ?? null, + ); + } + + public function __construct( + public DeviceBattery|null $battery, + public bool|null $is_connected, + ) {} +} + +class DeviceActiveThermostatSchedule +{ + public static function from_json( + mixed $json, + ): DeviceActiveThermostatSchedule|null { + if (!$json) { + return null; + } + return new self( + climate_preset_key: $json->climate_preset_key ?? null, + created_at: $json->created_at ?? null, + device_id: $json->device_id ?? null, + ends_at: $json->ends_at ?? null, + errors: array_map( + fn($e) => DeviceErrors::from_json($e), + $json->errors ?? [], + ), + is_override_allowed: $json->is_override_allowed ?? null, + max_override_period_minutes: $json->max_override_period_minutes ?? + null, + name: $json->name ?? null, + starts_at: $json->starts_at ?? null, + thermostat_schedule_id: $json->thermostat_schedule_id ?? null, + workspace_id: $json->workspace_id ?? null, + ); + } + + public function __construct( + public string|null $climate_preset_key, + public string|null $created_at, + public string|null $device_id, + public string|null $ends_at, + public array $errors, + public bool|null $is_override_allowed, + public int|null $max_override_period_minutes, + public string|null $name, + public string|null $starts_at, + public string|null $thermostat_schedule_id, + public string|null $workspace_id, + ) {} +} + +class DeviceAkilesMetadata +{ + public static function from_json(mixed $json): DeviceAkilesMetadata|null + { + if (!$json) { + return null; + } + return new self( + _member_group_id: $json->_member_group_id ?? null, + gadget_id: $json->gadget_id ?? null, + gadget_name: $json->gadget_name ?? null, + product_name: $json->product_name ?? null, + ); + } + + public function __construct( + public string|null $_member_group_id, + public string|null $gadget_id, + public string|null $gadget_name, + public string|null $product_name, + ) {} +} + +class DeviceAppearance +{ + public static function from_json(mixed $json): DeviceAppearance|null + { + if (!$json) { + return null; + } + return new self(name: $json->name ?? null); + } + + public function __construct(public string|null $name) {} +} + +class DeviceAqaraMetadata +{ + public static function from_json(mixed $json): DeviceAqaraMetadata|null + { + if (!$json) { + return null; + } + return new self( + device_name: $json->device_name ?? null, + did: $json->did ?? null, + firmware_version: $json->firmware_version ?? null, + model: $json->model ?? null, + model_type: $json->model_type ?? null, + parent_did: $json->parent_did ?? null, + position_id: $json->position_id ?? null, + time_zone: $json->time_zone ?? null, + ); + } + + public function __construct( + public string|null $device_name, + public string|null $did, + public string|null $firmware_version, + public string|null $model, + public float|null $model_type, + public string|null $parent_did, + public string|null $position_id, + public string|null $time_zone, + ) {} +} + +class DeviceAssaAbloyCredentialServiceMetadata +{ + public static function from_json( + mixed $json, + ): DeviceAssaAbloyCredentialServiceMetadata|null { + if (!$json) { + return null; + } + return new self( + endpoints: array_map( + fn($e) => DeviceEndpoints::from_json($e), + $json->endpoints ?? [], + ), + has_active_endpoint: $json->has_active_endpoint ?? null, + ); + } + + public function __construct( + public array $endpoints, + public bool|null $has_active_endpoint, + ) {} +} + +class DeviceAssaAbloyVostioMetadata +{ + public static function from_json( + mixed $json, + ): DeviceAssaAbloyVostioMetadata|null { + if (!$json) { + return null; + } + return new self(encoder_name: $json->encoder_name ?? null); + } + + public function __construct(public string|null $encoder_name) {} +} + +class DeviceAugustMetadata +{ + public static function from_json(mixed $json): DeviceAugustMetadata|null + { + if (!$json) { + return null; + } + return new self( + has_keypad: $json->has_keypad ?? null, + house_id: $json->house_id ?? null, + house_name: $json->house_name ?? null, + keypad_battery_level: $json->keypad_battery_level ?? null, + lock_id: $json->lock_id ?? null, + lock_name: $json->lock_name ?? null, + model: $json->model ?? null, + ); + } + + public function __construct( + public bool|null $has_keypad, + public string|null $house_id, + public string|null $house_name, + public string|null $keypad_battery_level, + public string|null $lock_id, + public string|null $lock_name, + public string|null $model, + ) {} +} + +class DeviceAvailableClimatePresets +{ + public static function from_json( + mixed $json, + ): DeviceAvailableClimatePresets|null { + if (!$json) { + return null; + } + return new self( + can_delete: $json->can_delete ?? null, + can_edit: $json->can_edit ?? null, + can_use_with_thermostat_daily_programs: $json->can_use_with_thermostat_daily_programs ?? + null, + climate_preset_key: $json->climate_preset_key ?? null, + climate_preset_mode: $json->climate_preset_mode ?? null, + cooling_set_point_celsius: $json->cooling_set_point_celsius ?? null, + cooling_set_point_fahrenheit: $json->cooling_set_point_fahrenheit ?? + null, + display_name: $json->display_name ?? null, + ecobee_metadata: isset($json->ecobee_metadata) + ? DeviceEcobeeMetadata::from_json($json->ecobee_metadata) + : null, + fan_mode_setting: $json->fan_mode_setting ?? null, + heating_set_point_celsius: $json->heating_set_point_celsius ?? null, + heating_set_point_fahrenheit: $json->heating_set_point_fahrenheit ?? + null, + hvac_mode_setting: $json->hvac_mode_setting ?? null, + manual_override_allowed: $json->manual_override_allowed ?? null, + name: $json->name ?? null, + ); + } + + public function __construct( + public bool|null $can_delete, + public bool|null $can_edit, + public bool|null $can_use_with_thermostat_daily_programs, + public string|null $climate_preset_key, + public string|null $climate_preset_mode, + public float|null $cooling_set_point_celsius, + public float|null $cooling_set_point_fahrenheit, + public string|null $display_name, + public DeviceEcobeeMetadata|null $ecobee_metadata, + public string|null $fan_mode_setting, + public float|null $heating_set_point_celsius, + public float|null $heating_set_point_fahrenheit, + public string|null $hvac_mode_setting, + public bool|null $manual_override_allowed, + public string|null $name, + ) {} +} + +class DeviceAvigilonAltaMetadata +{ + public static function from_json( + mixed $json, + ): DeviceAvigilonAltaMetadata|null { + if (!$json) { + return null; + } + return new self( + entry_name: $json->entry_name ?? null, + entry_relays_total_count: $json->entry_relays_total_count ?? null, + org_name: $json->org_name ?? null, + site_id: $json->site_id ?? null, + site_name: $json->site_name ?? null, + zone_id: $json->zone_id ?? null, + zone_name: $json->zone_name ?? null, + ); + } + + public function __construct( + public string|null $entry_name, + public float|null $entry_relays_total_count, + public string|null $org_name, + public float|null $site_id, + public string|null $site_name, + public float|null $zone_id, + public string|null $zone_name, + ) {} +} + +class DeviceBattery +{ + public static function from_json(mixed $json): DeviceBattery|null + { + if (!$json) { + return null; + } + return new self(level: $json->level ?? null); + } + + public function __construct(public float|null $level) {} +} + +class DeviceBrivoMetadata +{ + public static function from_json(mixed $json): DeviceBrivoMetadata|null + { + if (!$json) { + return null; + } + return new self( + activation_enabled: $json->activation_enabled ?? null, + device_name: $json->device_name ?? null, + ); + } + + public function __construct( + public bool|null $activation_enabled, + public string|null $device_name, + ) {} +} + +class DeviceCodeConstraints +{ + public static function from_json(mixed $json): DeviceCodeConstraints|null + { + if (!$json) { + return null; + } + return new self( + constraint_type: $json->constraint_type ?? null, + max_length: $json->max_length ?? null, + min_length: $json->min_length ?? null, + ); + } + + public function __construct( + public string|null $constraint_type, + public float|null $max_length, + public float|null $min_length, + ) {} +} + +class DeviceControlbywebMetadata +{ + public static function from_json( + mixed $json, + ): DeviceControlbywebMetadata|null { + if (!$json) { + return null; + } + return new self( + device_id: $json->device_id ?? null, + device_name: $json->device_name ?? null, + relay_name: $json->relay_name ?? null, + ); + } + + public function __construct( + public string|null $device_id, + public string|null $device_name, + public string|null $relay_name, + ) {} +} + +class DeviceCurrentClimateSetting +{ + public static function from_json( + mixed $json, + ): DeviceCurrentClimateSetting|null { + if (!$json) { + return null; + } + return new self( + can_delete: $json->can_delete ?? null, + can_edit: $json->can_edit ?? null, + can_use_with_thermostat_daily_programs: $json->can_use_with_thermostat_daily_programs ?? + null, + climate_preset_key: $json->climate_preset_key ?? null, + climate_preset_mode: $json->climate_preset_mode ?? null, + cooling_set_point_celsius: $json->cooling_set_point_celsius ?? null, + cooling_set_point_fahrenheit: $json->cooling_set_point_fahrenheit ?? + null, + display_name: $json->display_name ?? null, + ecobee_metadata: isset($json->ecobee_metadata) + ? DeviceEcobeeMetadata::from_json($json->ecobee_metadata) + : null, + fan_mode_setting: $json->fan_mode_setting ?? null, + heating_set_point_celsius: $json->heating_set_point_celsius ?? null, + heating_set_point_fahrenheit: $json->heating_set_point_fahrenheit ?? + null, + hvac_mode_setting: $json->hvac_mode_setting ?? null, + manual_override_allowed: $json->manual_override_allowed ?? null, + name: $json->name ?? null, + ); + } + + public function __construct( + public bool|null $can_delete, + public bool|null $can_edit, + public bool|null $can_use_with_thermostat_daily_programs, + public string|null $climate_preset_key, + public string|null $climate_preset_mode, + public float|null $cooling_set_point_celsius, + public float|null $cooling_set_point_fahrenheit, + public string|null $display_name, + public DeviceEcobeeMetadata|null $ecobee_metadata, + public string|null $fan_mode_setting, + public float|null $heating_set_point_celsius, + public float|null $heating_set_point_fahrenheit, + public string|null $hvac_mode_setting, + public bool|null $manual_override_allowed, + public string|null $name, + ) {} +} + +class DeviceDefaultClimateSetting +{ + public static function from_json( + mixed $json, + ): DeviceDefaultClimateSetting|null { + if (!$json) { + return null; + } + return new self( + can_delete: $json->can_delete ?? null, + can_edit: $json->can_edit ?? null, + can_use_with_thermostat_daily_programs: $json->can_use_with_thermostat_daily_programs ?? + null, + climate_preset_key: $json->climate_preset_key ?? null, + climate_preset_mode: $json->climate_preset_mode ?? null, + cooling_set_point_celsius: $json->cooling_set_point_celsius ?? null, + cooling_set_point_fahrenheit: $json->cooling_set_point_fahrenheit ?? + null, + display_name: $json->display_name ?? null, + ecobee_metadata: isset($json->ecobee_metadata) + ? DeviceEcobeeMetadata::from_json($json->ecobee_metadata) + : null, + fan_mode_setting: $json->fan_mode_setting ?? null, + heating_set_point_celsius: $json->heating_set_point_celsius ?? null, + heating_set_point_fahrenheit: $json->heating_set_point_fahrenheit ?? + null, + hvac_mode_setting: $json->hvac_mode_setting ?? null, + manual_override_allowed: $json->manual_override_allowed ?? null, + name: $json->name ?? null, + ); + } + + public function __construct( + public bool|null $can_delete, + public bool|null $can_edit, + public bool|null $can_use_with_thermostat_daily_programs, + public string|null $climate_preset_key, + public string|null $climate_preset_mode, + public float|null $cooling_set_point_celsius, + public float|null $cooling_set_point_fahrenheit, + public string|null $display_name, + public DeviceEcobeeMetadata|null $ecobee_metadata, + public string|null $fan_mode_setting, + public float|null $heating_set_point_celsius, + public float|null $heating_set_point_fahrenheit, + public string|null $hvac_mode_setting, + public bool|null $manual_override_allowed, + public string|null $name, + ) {} +} + +class DeviceDeviceManufacturer +{ + public static function from_json(mixed $json): DeviceDeviceManufacturer|null + { + if (!$json) { + return null; + } + return new self( + display_name: $json->display_name ?? null, + image_url: $json->image_url ?? null, + manufacturer: $json->manufacturer ?? null, + ); + } + + public function __construct( + public string|null $display_name, + public string|null $image_url, + public string|null $manufacturer, + ) {} +} + +class DeviceDeviceProvider +{ + public static function from_json(mixed $json): DeviceDeviceProvider|null + { + if (!$json) { + return null; + } + return new self( + device_provider_name: $json->device_provider_name ?? null, + display_name: $json->display_name ?? null, + image_url: $json->image_url ?? null, + provider_category: $json->provider_category ?? null, + ); + } + + public function __construct( + public string|null $device_provider_name, + public string|null $display_name, + public string|null $image_url, + public string|null $provider_category, + ) {} +} + +class DeviceDormakabaOracodeMetadata +{ + public static function from_json( + mixed $json, + ): DeviceDormakabaOracodeMetadata|null { + if (!$json) { + return null; + } + return new self( + device_id: $json->device_id ?? null, + door_id: $json->door_id ?? null, + door_is_wireless: $json->door_is_wireless ?? null, + door_name: $json->door_name ?? null, + iana_timezone: $json->iana_timezone ?? null, + predefined_time_slots: array_map( + fn($p) => DevicePredefinedTimeSlots::from_json($p), + $json->predefined_time_slots ?? [], + ), + site_id: $json->site_id ?? null, + site_name: $json->site_name ?? null, + ); + } + + public function __construct( + public mixed $device_id, + public float|null $door_id, + public bool|null $door_is_wireless, + public string|null $door_name, + public string|null $iana_timezone, + public array $predefined_time_slots, + public float|null $site_id, + public string|null $site_name, + ) {} +} + +class DeviceEcobeeMetadata +{ + public static function from_json(mixed $json): DeviceEcobeeMetadata|null + { + if (!$json) { + return null; + } + return new self( + device_name: $json->device_name ?? null, + ecobee_device_id: $json->ecobee_device_id ?? null, + ); + } + + public function __construct( + public string|null $device_name, + public string|null $ecobee_device_id, + ) {} +} + +class DeviceEndpoints +{ + public static function from_json(mixed $json): DeviceEndpoints|null + { + if (!$json) { + return null; + } + return new self( + endpoint_id: $json->endpoint_id ?? null, + is_active: $json->is_active ?? null, + ); + } + + public function __construct( + public string|null $endpoint_id, + public bool|null $is_active, + ) {} +} + +class DeviceErrors +{ + public static function from_json(mixed $json): DeviceErrors|null + { + if (!$json) { + return null; + } + return new self( + created_at: $json->created_at ?? null, + error_code: $json->error_code ?? null, + is_bridge_error: $json->is_bridge_error ?? null, + is_connected_account_error: $json->is_connected_account_error ?? + null, + is_device_error: $json->is_device_error ?? null, + message: $json->message ?? null, + ); + } + + public function __construct( + public string|null $created_at, + public string|null $error_code, + public bool|null $is_bridge_error, + public bool|null $is_connected_account_error, + public bool|null $is_device_error, + public string|null $message, + ) {} +} + +class DeviceFeatures +{ + public static function from_json(mixed $json): DeviceFeatures|null + { + if (!$json) { + return null; + } + return new self( + auto_lock_time_config: $json->auto_lock_time_config ?? null, + incomplete_keyboard_passcode: $json->incomplete_keyboard_passcode ?? + null, + lock_command: $json->lock_command ?? null, + passcode: $json->passcode ?? null, + passcode_management: $json->passcode_management ?? null, + unlock_via_gateway: $json->unlock_via_gateway ?? null, + wifi: $json->wifi ?? null, + ); + } + + public function __construct( + public bool|null $auto_lock_time_config, + public bool|null $incomplete_keyboard_passcode, + public bool|null $lock_command, + public bool|null $passcode, + public bool|null $passcode_management, + public bool|null $unlock_via_gateway, + public bool|null $wifi, + ) {} +} + +class DeviceFourSuitesMetadata +{ + public static function from_json(mixed $json): DeviceFourSuitesMetadata|null + { + if (!$json) { + return null; + } + return new self( + device_id: $json->device_id ?? null, + device_name: $json->device_name ?? null, + reclose_delay_in_seconds: $json->reclose_delay_in_seconds ?? null, + ); + } + + public function __construct( + public float|null $device_id, + public string|null $device_name, + public float|null $reclose_delay_in_seconds, + ) {} +} + +class DeviceGenieMetadata +{ + public static function from_json(mixed $json): DeviceGenieMetadata|null + { + if (!$json) { + return null; + } + return new self( + device_name: $json->device_name ?? null, + door_name: $json->door_name ?? null, + ); + } + + public function __construct( + public string|null $device_name, + public string|null $door_name, + ) {} +} + +class DeviceHoneywellResideoMetadata +{ + public static function from_json( + mixed $json, + ): DeviceHoneywellResideoMetadata|null { + if (!$json) { + return null; + } + return new self( + device_name: $json->device_name ?? null, + honeywell_resideo_device_id: $json->honeywell_resideo_device_id ?? + null, + ); + } + + public function __construct( + public string|null $device_name, + public string|null $honeywell_resideo_device_id, + ) {} +} + +class DeviceHumidity +{ + public static function from_json(mixed $json): DeviceHumidity|null + { + if (!$json) { + return null; + } + return new self(time: $json->time ?? null, value: $json->value ?? null); + } + + public function __construct( + public string|null $time, + public float|null $value, + ) {} +} + +class DeviceIgloohomeMetadata +{ + public static function from_json(mixed $json): DeviceIgloohomeMetadata|null + { + if (!$json) { + return null; + } + return new self( + bridge_id: $json->bridge_id ?? null, + bridge_name: $json->bridge_name ?? null, + device_id: $json->device_id ?? null, + device_name: $json->device_name ?? null, + is_accessory_keypad_linked_to_bridge: $json->is_accessory_keypad_linked_to_bridge ?? + null, + keypad_id: $json->keypad_id ?? null, + ); + } + + public function __construct( + public string|null $bridge_id, + public string|null $bridge_name, + public string|null $device_id, + public string|null $device_name, + public bool|null $is_accessory_keypad_linked_to_bridge, + public string|null $keypad_id, + ) {} +} + +class DeviceIglooMetadata +{ + public static function from_json(mixed $json): DeviceIglooMetadata|null + { + if (!$json) { + return null; + } + return new self( + bridge_id: $json->bridge_id ?? null, + device_id: $json->device_id ?? null, + model: $json->model ?? null, + ); + } + + public function __construct( + public string|null $bridge_id, + public string|null $device_id, + public string|null $model, + ) {} +} + +class DeviceKeynestMetadata +{ + public static function from_json(mixed $json): DeviceKeynestMetadata|null + { + if (!$json) { + return null; + } + return new self( + address: $json->address ?? null, + current_or_last_store_id: $json->current_or_last_store_id ?? null, + current_status: $json->current_status ?? null, + current_user_company: $json->current_user_company ?? null, + current_user_email: $json->current_user_email ?? null, + current_user_name: $json->current_user_name ?? null, + current_user_phone_number: $json->current_user_phone_number ?? null, + default_office_id: $json->default_office_id ?? null, + device_name: $json->device_name ?? null, + fob_id: $json->fob_id ?? null, + handover_method: $json->handover_method ?? null, + has_photo: $json->has_photo ?? null, + is_quadient_locker: $json->is_quadient_locker ?? null, + key_id: $json->key_id ?? null, + key_notes: $json->key_notes ?? null, + keynest_app_user: $json->keynest_app_user ?? null, + last_movement: $json->last_movement ?? null, + property_id: $json->property_id ?? null, + property_postcode: $json->property_postcode ?? null, + status_type: $json->status_type ?? null, + subscription_plan: $json->subscription_plan ?? null, + ); + } + + public function __construct( + public string|null $address, + public float|null $current_or_last_store_id, + public string|null $current_status, + public string|null $current_user_company, + public string|null $current_user_email, + public string|null $current_user_name, + public string|null $current_user_phone_number, + public float|null $default_office_id, + public string|null $device_name, + public float|null $fob_id, + public string|null $handover_method, + public bool|null $has_photo, + public bool|null $is_quadient_locker, + public string|null $key_id, + public string|null $key_notes, + public string|null $keynest_app_user, + public string|null $last_movement, + public string|null $property_id, + public string|null $property_postcode, + public string|null $status_type, + public string|null $subscription_plan, + ) {} +} + +class DeviceKeypadBattery +{ + public static function from_json(mixed $json): DeviceKeypadBattery|null + { + if (!$json) { + return null; + } + return new self(level: $json->level ?? null); + } + + public function __construct(public float|null $level) {} +} + +class DeviceKisiMetadata +{ + public static function from_json(mixed $json): DeviceKisiMetadata|null + { + if (!$json) { + return null; + } + return new self( + description: $json->description ?? null, + lock_id: $json->lock_id ?? null, + lock_name: $json->lock_name ?? null, + place_name: $json->place_name ?? null, + ); + } + + public function __construct( + public string|null $description, + public float|null $lock_id, + public string|null $lock_name, + public string|null $place_name, + ) {} +} + +class DeviceKorelockMetadata +{ + public static function from_json(mixed $json): DeviceKorelockMetadata|null + { + if (!$json) { + return null; + } + return new self( + device_id: $json->device_id ?? null, + device_name: $json->device_name ?? null, + firmware_version: $json->firmware_version ?? null, + location_id: $json->location_id ?? null, + model_code: $json->model_code ?? null, + serial_number: $json->serial_number ?? null, + wifi_signal_strength: $json->wifi_signal_strength ?? null, + ); + } + + public function __construct( + public string|null $device_id, + public string|null $device_name, + public string|null $firmware_version, + public string|null $location_id, + public string|null $model_code, + public string|null $serial_number, + public float|null $wifi_signal_strength, + ) {} +} + +class DeviceKwiksetMetadata +{ + public static function from_json(mixed $json): DeviceKwiksetMetadata|null + { + if (!$json) { + return null; + } + return new self( + device_id: $json->device_id ?? null, + device_name: $json->device_name ?? null, + model_number: $json->model_number ?? null, + ); + } + + public function __construct( + public string|null $device_id, + public string|null $device_name, + public string|null $model_number, + ) {} +} + +class DeviceLatestSensorValues +{ + public static function from_json(mixed $json): DeviceLatestSensorValues|null + { + if (!$json) { + return null; + } + return new self( + accelerometer_z: isset($json->accelerometer_z) + ? DeviceAccelerometerZ::from_json($json->accelerometer_z) + : null, + humidity: isset($json->humidity) + ? DeviceHumidity::from_json($json->humidity) + : null, + pressure: isset($json->pressure) + ? DevicePressure::from_json($json->pressure) + : null, + sound: isset($json->sound) + ? DeviceSound::from_json($json->sound) + : null, + temperature: isset($json->temperature) + ? DeviceTemperature::from_json($json->temperature) + : null, + ); + } + + public function __construct( + public DeviceAccelerometerZ|null $accelerometer_z, + public DeviceHumidity|null $humidity, + public DevicePressure|null $pressure, + public DeviceSound|null $sound, + public DeviceTemperature|null $temperature, + ) {} +} + +class DeviceLocation +{ + public static function from_json(mixed $json): DeviceLocation|null + { + if (!$json) { + return null; + } + return new self( + location_name: $json->location_name ?? null, + time_zone: $json->time_zone ?? null, + timezone: $json->timezone ?? null, + ); + } + + public function __construct( + public string|null $location_name, + public string|null $time_zone, + public string|null $timezone, + ) {} +} + +class DeviceLocklyMetadata +{ + public static function from_json(mixed $json): DeviceLocklyMetadata|null + { + if (!$json) { + return null; + } + return new self( + device_id: $json->device_id ?? null, + device_name: $json->device_name ?? null, + model: $json->model ?? null, + ); + } + + public function __construct( + public string|null $device_id, + public string|null $device_name, + public string|null $model, + ) {} +} + +class DeviceMinutMetadata +{ + public static function from_json(mixed $json): DeviceMinutMetadata|null + { + if (!$json) { + return null; + } + return new self( + device_id: $json->device_id ?? null, + device_name: $json->device_name ?? null, + latest_sensor_values: isset($json->latest_sensor_values) + ? DeviceLatestSensorValues::from_json( + $json->latest_sensor_values, + ) + : null, + ); + } + + public function __construct( + public string|null $device_id, + public string|null $device_name, + public DeviceLatestSensorValues|null $latest_sensor_values, + ) {} +} + +class DeviceModel +{ + public static function from_json(mixed $json): DeviceModel|null + { + if (!$json) { + return null; + } + return new self( + accessory_keypad_supported: $json->accessory_keypad_supported ?? + null, + can_connect_accessory_keypad: $json->can_connect_accessory_keypad ?? + null, + display_name: $json->display_name ?? null, + has_built_in_keypad: $json->has_built_in_keypad ?? null, + manufacturer_display_name: $json->manufacturer_display_name ?? null, + offline_access_codes_supported: $json->offline_access_codes_supported ?? + null, + online_access_codes_supported: $json->online_access_codes_supported ?? + null, + ); + } + + public function __construct( + public bool|null $accessory_keypad_supported, + public bool|null $can_connect_accessory_keypad, + public string|null $display_name, + public bool|null $has_built_in_keypad, + public string|null $manufacturer_display_name, + public bool|null $offline_access_codes_supported, + public bool|null $online_access_codes_supported, + ) {} +} + +class DeviceNestMetadata +{ + public static function from_json(mixed $json): DeviceNestMetadata|null + { + if (!$json) { + return null; + } + return new self( + device_custom_name: $json->device_custom_name ?? null, + device_name: $json->device_name ?? null, + display_name: $json->display_name ?? null, + nest_device_id: $json->nest_device_id ?? null, + ); + } + + public function __construct( + public string|null $device_custom_name, + public string|null $device_name, + public string|null $display_name, + public string|null $nest_device_id, + ) {} +} + +class DeviceNoiseawareMetadata +{ + public static function from_json(mixed $json): DeviceNoiseawareMetadata|null + { + if (!$json) { + return null; + } + return new self( + device_id: $json->device_id ?? null, + device_model: $json->device_model ?? null, + device_name: $json->device_name ?? null, + noise_level_decibel: $json->noise_level_decibel ?? null, + noise_level_nrs: $json->noise_level_nrs ?? null, + ); + } + + public function __construct( + public string|null $device_id, + public string|null $device_model, + public string|null $device_name, + public float|null $noise_level_decibel, + public float|null $noise_level_nrs, + ) {} +} + +class DeviceNukiMetadata +{ + public static function from_json(mixed $json): DeviceNukiMetadata|null + { + if (!$json) { + return null; + } + return new self( + device_id: $json->device_id ?? null, + device_name: $json->device_name ?? null, + keypad_2_paired: $json->keypad_2_paired ?? null, + keypad_battery_critical: $json->keypad_battery_critical ?? null, + keypad_paired: $json->keypad_paired ?? null, + ); + } + + public function __construct( + public string|null $device_id, + public string|null $device_name, + public bool|null $keypad_2_paired, + public bool|null $keypad_battery_critical, + public bool|null $keypad_paired, + ) {} +} + +class DeviceOfflineTimeFrameOptions +{ + public static function from_json( + mixed $json, + ): DeviceOfflineTimeFrameOptions|null { + if (!$json) { + return null; + } + return new self( + display_name: $json->display_name ?? null, + end_date_recurrence_rule: $json->end_date_recurrence_rule ?? null, + matching_start_end_time: $json->matching_start_end_time ?? null, + max_duration: $json->max_duration ?? null, + min_duration: $json->min_duration ?? null, + start_date_recurrence_rule: $json->start_date_recurrence_rule ?? + null, + time_pairs: array_map( + fn($t) => DeviceTimePairs::from_json($t), + $json->time_pairs ?? [], + ), + time_zone: $json->time_zone ?? null, + ); + } + + public function __construct( + public string|null $display_name, + public string|null $end_date_recurrence_rule, + public bool|null $matching_start_end_time, + public string|null $max_duration, + public string|null $min_duration, + public string|null $start_date_recurrence_rule, + public array $time_pairs, + public string|null $time_zone, + ) {} +} + +class DeviceOmnitecMetadata +{ + public static function from_json(mixed $json): DeviceOmnitecMetadata|null + { + if (!$json) { + return null; + } + return new self( + has_gateway: $json->has_gateway ?? null, + lock_alias: $json->lock_alias ?? null, + lock_id: $json->lock_id ?? null, + lock_mac: $json->lock_mac ?? null, + lock_name: $json->lock_name ?? null, + time_zone: $json->time_zone ?? null, + timezone_raw_offset_ms: $json->timezone_raw_offset_ms ?? null, + ); + } + + public function __construct( + public bool|null $has_gateway, + public string|null $lock_alias, + public float|null $lock_id, + public string|null $lock_mac, + public string|null $lock_name, + public string|null $time_zone, + public float|null $timezone_raw_offset_ms, + ) {} +} + +class DeviceOnlineTimeFrameOptions +{ + public static function from_json( + mixed $json, + ): DeviceOnlineTimeFrameOptions|null { + if (!$json) { + return null; + } + return new self( + display_name: $json->display_name ?? null, + end_date_recurrence_rule: $json->end_date_recurrence_rule ?? null, + matching_start_end_time: $json->matching_start_end_time ?? null, + max_duration: $json->max_duration ?? null, + min_duration: $json->min_duration ?? null, + start_date_recurrence_rule: $json->start_date_recurrence_rule ?? + null, + time_pairs: array_map( + fn($t) => DeviceTimePairs::from_json($t), + $json->time_pairs ?? [], + ), + time_zone: $json->time_zone ?? null, + ); + } + + public function __construct( + public string|null $display_name, + public string|null $end_date_recurrence_rule, + public bool|null $matching_start_end_time, + public string|null $max_duration, + public string|null $min_duration, + public string|null $start_date_recurrence_rule, + public array $time_pairs, + public string|null $time_zone, + ) {} +} + +class DevicePeriods +{ + public static function from_json(mixed $json): DevicePeriods|null + { + if (!$json) { + return null; + } + return new self( + climate_preset_key: $json->climate_preset_key ?? null, + starts_at_time: $json->starts_at_time ?? null, + ); + } + + public function __construct( + public string|null $climate_preset_key, + public string|null $starts_at_time, + ) {} +} + +class DevicePredefinedTimeSlots +{ + public static function from_json( + mixed $json, + ): DevicePredefinedTimeSlots|null { + if (!$json) { + return null; + } + return new self( + check_in_time: $json->check_in_time ?? null, + check_out_time: $json->check_out_time ?? null, + dormakaba_oracode_user_level_id: $json->dormakaba_oracode_user_level_id ?? + null, + dormakaba_oracode_user_level_prefix: $json->dormakaba_oracode_user_level_prefix ?? + null, + is_24_hour: $json->is_24_hour ?? null, + is_biweekly_mode: $json->is_biweekly_mode ?? null, + is_master: $json->is_master ?? null, + is_one_shot: $json->is_one_shot ?? null, + name: $json->name ?? null, + prefix: $json->prefix ?? null, + ); + } + + public function __construct( + public string|null $check_in_time, + public string|null $check_out_time, + public string|null $dormakaba_oracode_user_level_id, + public float|null $dormakaba_oracode_user_level_prefix, + public bool|null $is_24_hour, + public bool|null $is_biweekly_mode, + public bool|null $is_master, + public bool|null $is_one_shot, + public string|null $name, + public float|null $prefix, + ) {} +} + +class DevicePressure +{ + public static function from_json(mixed $json): DevicePressure|null + { + if (!$json) { + return null; + } + return new self(time: $json->time ?? null, value: $json->value ?? null); + } + + public function __construct( + public string|null $time, + public float|null $value, + ) {} +} + +class DeviceProperties +{ + public static function from_json(mixed $json): DeviceProperties|null + { + if (!$json) { + return null; + } + return new self( + accessory_keypad: isset($json->accessory_keypad) + ? DeviceAccessoryKeypad::from_json($json->accessory_keypad) + : null, + active_thermostat_schedule: isset($json->active_thermostat_schedule) + ? DeviceActiveThermostatSchedule::from_json( + $json->active_thermostat_schedule, + ) + : null, + active_thermostat_schedule_id: $json->active_thermostat_schedule_id ?? + null, + akiles_metadata: isset($json->akiles_metadata) + ? DeviceAkilesMetadata::from_json($json->akiles_metadata) + : null, + appearance: isset($json->appearance) + ? DeviceAppearance::from_json($json->appearance) + : null, + aqara_metadata: isset($json->aqara_metadata) + ? DeviceAqaraMetadata::from_json($json->aqara_metadata) + : null, + assa_abloy_credential_service_metadata: isset( + $json->assa_abloy_credential_service_metadata, + ) + ? DeviceAssaAbloyCredentialServiceMetadata::from_json( + $json->assa_abloy_credential_service_metadata, + ) + : null, + assa_abloy_vostio_metadata: isset($json->assa_abloy_vostio_metadata) + ? DeviceAssaAbloyVostioMetadata::from_json( + $json->assa_abloy_vostio_metadata, + ) + : null, + august_metadata: isset($json->august_metadata) + ? DeviceAugustMetadata::from_json($json->august_metadata) + : null, + auto_lock_delay_seconds: $json->auto_lock_delay_seconds ?? null, + auto_lock_enabled: $json->auto_lock_enabled ?? null, + available_climate_preset_modes: $json->available_climate_preset_modes ?? + null, + available_climate_presets: array_map( + fn($a) => DeviceAvailableClimatePresets::from_json($a), + $json->available_climate_presets ?? [], + ), + available_fan_mode_settings: $json->available_fan_mode_settings ?? + null, + available_hvac_mode_settings: $json->available_hvac_mode_settings ?? + null, + avigilon_alta_metadata: isset($json->avigilon_alta_metadata) + ? DeviceAvigilonAltaMetadata::from_json( + $json->avigilon_alta_metadata, + ) + : null, + backup_access_code_pool_enabled: $json->backup_access_code_pool_enabled ?? + null, + battery: isset($json->battery) + ? DeviceBattery::from_json($json->battery) + : null, + battery_level: $json->battery_level ?? null, + brivo_metadata: isset($json->brivo_metadata) + ? DeviceBrivoMetadata::from_json($json->brivo_metadata) + : null, + code_constraints: array_map( + fn($c) => DeviceCodeConstraints::from_json($c), + $json->code_constraints ?? [], + ), + controlbyweb_metadata: isset($json->controlbyweb_metadata) + ? DeviceControlbywebMetadata::from_json( + $json->controlbyweb_metadata, + ) + : null, + current_climate_setting: isset($json->current_climate_setting) + ? DeviceCurrentClimateSetting::from_json( + $json->current_climate_setting, + ) + : null, + currently_triggering_noise_threshold_ids: $json->currently_triggering_noise_threshold_ids ?? + null, + default_climate_setting: isset($json->default_climate_setting) + ? DeviceDefaultClimateSetting::from_json( + $json->default_climate_setting, + ) + : null, + door_open: $json->door_open ?? null, + dormakaba_oracode_metadata: isset($json->dormakaba_oracode_metadata) + ? DeviceDormakabaOracodeMetadata::from_json( + $json->dormakaba_oracode_metadata, + ) + : null, + ecobee_metadata: isset($json->ecobee_metadata) + ? DeviceEcobeeMetadata::from_json($json->ecobee_metadata) + : null, + fallback_climate_preset_key: $json->fallback_climate_preset_key ?? + null, + fan_mode_setting: $json->fan_mode_setting ?? null, + four_suites_metadata: isset($json->four_suites_metadata) + ? DeviceFourSuitesMetadata::from_json( + $json->four_suites_metadata, + ) + : null, + genie_metadata: isset($json->genie_metadata) + ? DeviceGenieMetadata::from_json($json->genie_metadata) + : null, + has_direct_power: $json->has_direct_power ?? null, + has_native_entry_events: $json->has_native_entry_events ?? null, + honeywell_resideo_metadata: isset($json->honeywell_resideo_metadata) + ? DeviceHoneywellResideoMetadata::from_json( + $json->honeywell_resideo_metadata, + ) + : null, + igloo_metadata: isset($json->igloo_metadata) + ? DeviceIglooMetadata::from_json($json->igloo_metadata) + : null, + igloohome_metadata: isset($json->igloohome_metadata) + ? DeviceIgloohomeMetadata::from_json($json->igloohome_metadata) + : null, + image_alt_text: $json->image_alt_text ?? null, + image_url: $json->image_url ?? null, + is_cooling: $json->is_cooling ?? null, + is_fan_running: $json->is_fan_running ?? null, + is_heating: $json->is_heating ?? null, + is_temporary_manual_override_active: $json->is_temporary_manual_override_active ?? + null, + keynest_metadata: isset($json->keynest_metadata) + ? DeviceKeynestMetadata::from_json($json->keynest_metadata) + : null, + keypad_battery: isset($json->keypad_battery) + ? DeviceKeypadBattery::from_json($json->keypad_battery) + : null, + kisi_metadata: isset($json->kisi_metadata) + ? DeviceKisiMetadata::from_json($json->kisi_metadata) + : null, + korelock_metadata: isset($json->korelock_metadata) + ? DeviceKorelockMetadata::from_json($json->korelock_metadata) + : null, + kwikset_metadata: isset($json->kwikset_metadata) + ? DeviceKwiksetMetadata::from_json($json->kwikset_metadata) + : null, + locked: $json->locked ?? null, + lockly_metadata: isset($json->lockly_metadata) + ? DeviceLocklyMetadata::from_json($json->lockly_metadata) + : null, + manufacturer: $json->manufacturer ?? null, + max_active_codes_supported: $json->max_active_codes_supported ?? + null, + max_cooling_set_point_celsius: $json->max_cooling_set_point_celsius ?? + null, + max_cooling_set_point_fahrenheit: $json->max_cooling_set_point_fahrenheit ?? + null, + max_heating_set_point_celsius: $json->max_heating_set_point_celsius ?? + null, + max_heating_set_point_fahrenheit: $json->max_heating_set_point_fahrenheit ?? + null, + max_thermostat_daily_program_periods_per_day: $json->max_thermostat_daily_program_periods_per_day ?? + null, + max_unique_climate_presets_per_thermostat_weekly_program: $json->max_unique_climate_presets_per_thermostat_weekly_program ?? + null, + min_cooling_set_point_celsius: $json->min_cooling_set_point_celsius ?? + null, + min_cooling_set_point_fahrenheit: $json->min_cooling_set_point_fahrenheit ?? + null, + min_heating_cooling_delta_celsius: $json->min_heating_cooling_delta_celsius ?? + null, + min_heating_cooling_delta_fahrenheit: $json->min_heating_cooling_delta_fahrenheit ?? + null, + min_heating_set_point_celsius: $json->min_heating_set_point_celsius ?? + null, + min_heating_set_point_fahrenheit: $json->min_heating_set_point_fahrenheit ?? + null, + minut_metadata: isset($json->minut_metadata) + ? DeviceMinutMetadata::from_json($json->minut_metadata) + : null, + model: isset($json->model) + ? DeviceModel::from_json($json->model) + : null, + name: $json->name ?? null, + nest_metadata: isset($json->nest_metadata) + ? DeviceNestMetadata::from_json($json->nest_metadata) + : null, + noise_level_decibels: $json->noise_level_decibels ?? null, + noiseaware_metadata: isset($json->noiseaware_metadata) + ? DeviceNoiseawareMetadata::from_json( + $json->noiseaware_metadata, + ) + : null, + nuki_metadata: isset($json->nuki_metadata) + ? DeviceNukiMetadata::from_json($json->nuki_metadata) + : null, + offline_access_codes_enabled: $json->offline_access_codes_enabled ?? + null, + offline_time_frame_options: array_map( + fn($o) => DeviceOfflineTimeFrameOptions::from_json($o), + $json->offline_time_frame_options ?? [], + ), + omnitec_metadata: isset($json->omnitec_metadata) + ? DeviceOmnitecMetadata::from_json($json->omnitec_metadata) + : null, + online: $json->online ?? null, + online_access_codes_enabled: $json->online_access_codes_enabled ?? + null, + online_time_frame_options: array_map( + fn($o) => DeviceOnlineTimeFrameOptions::from_json($o), + $json->online_time_frame_options ?? [], + ), + relative_humidity: $json->relative_humidity ?? null, + ring_metadata: isset($json->ring_metadata) + ? DeviceRingMetadata::from_json($json->ring_metadata) + : null, + salto_ks_metadata: isset($json->salto_ks_metadata) + ? DeviceSaltoKsMetadata::from_json($json->salto_ks_metadata) + : null, + salto_metadata: isset($json->salto_metadata) + ? DeviceSaltoMetadata::from_json($json->salto_metadata) + : null, + salto_space_credential_service_metadata: isset( + $json->salto_space_credential_service_metadata, + ) + ? DeviceSaltoSpaceCredentialServiceMetadata::from_json( + $json->salto_space_credential_service_metadata, + ) + : null, + schlage_metadata: isset($json->schlage_metadata) + ? DeviceSchlageMetadata::from_json($json->schlage_metadata) + : null, + seam_bridge_metadata: isset($json->seam_bridge_metadata) + ? DeviceSeamBridgeMetadata::from_json( + $json->seam_bridge_metadata, + ) + : null, + sensi_metadata: isset($json->sensi_metadata) + ? DeviceSensiMetadata::from_json($json->sensi_metadata) + : null, + serial_number: $json->serial_number ?? null, + smartthings_metadata: isset($json->smartthings_metadata) + ? DeviceSmartthingsMetadata::from_json( + $json->smartthings_metadata, + ) + : null, + supported_code_lengths: $json->supported_code_lengths ?? null, + supports_accessory_keypad: $json->supports_accessory_keypad ?? null, + supports_backup_access_code_pool: $json->supports_backup_access_code_pool ?? + null, + supports_offline_access_codes: $json->supports_offline_access_codes ?? + null, + tado_metadata: isset($json->tado_metadata) + ? DeviceTadoMetadata::from_json($json->tado_metadata) + : null, + tedee_metadata: isset($json->tedee_metadata) + ? DeviceTedeeMetadata::from_json($json->tedee_metadata) + : null, + temperature_celsius: $json->temperature_celsius ?? null, + temperature_fahrenheit: $json->temperature_fahrenheit ?? null, + temperature_threshold: isset($json->temperature_threshold) + ? DeviceTemperatureThreshold::from_json( + $json->temperature_threshold, + ) + : null, + thermostat_daily_program_period_precision_minutes: $json->thermostat_daily_program_period_precision_minutes ?? + null, + thermostat_daily_programs: array_map( + fn($t) => DeviceThermostatDailyPrograms::from_json($t), + $json->thermostat_daily_programs ?? [], + ), + thermostat_weekly_program: isset($json->thermostat_weekly_program) + ? DeviceThermostatWeeklyProgram::from_json( + $json->thermostat_weekly_program, + ) + : null, + ttlock_metadata: isset($json->ttlock_metadata) + ? DeviceTtlockMetadata::from_json($json->ttlock_metadata) + : null, + two_n_metadata: isset($json->two_n_metadata) + ? DeviceTwoNMetadata::from_json($json->two_n_metadata) + : null, + ultraloq_metadata: isset($json->ultraloq_metadata) + ? DeviceUltraloqMetadata::from_json($json->ultraloq_metadata) + : null, + visionline_metadata: isset($json->visionline_metadata) + ? DeviceVisionlineMetadata::from_json( + $json->visionline_metadata, + ) + : null, + wyze_metadata: isset($json->wyze_metadata) + ? DeviceWyzeMetadata::from_json($json->wyze_metadata) + : null, + ); + } + + public function __construct( + public DeviceAccessoryKeypad|null $accessory_keypad, + public DeviceActiveThermostatSchedule|null $active_thermostat_schedule, + public string|null $active_thermostat_schedule_id, + public DeviceAkilesMetadata|null $akiles_metadata, + public DeviceAppearance|null $appearance, + public DeviceAqaraMetadata|null $aqara_metadata, + public DeviceAssaAbloyCredentialServiceMetadata|null $assa_abloy_credential_service_metadata, + public DeviceAssaAbloyVostioMetadata|null $assa_abloy_vostio_metadata, + public DeviceAugustMetadata|null $august_metadata, + public float|null $auto_lock_delay_seconds, + public bool|null $auto_lock_enabled, + public array|null $available_climate_preset_modes, + public array $available_climate_presets, + public array|null $available_fan_mode_settings, + public array|null $available_hvac_mode_settings, + public DeviceAvigilonAltaMetadata|null $avigilon_alta_metadata, + public bool|null $backup_access_code_pool_enabled, + public DeviceBattery|null $battery, + public float|null $battery_level, + public DeviceBrivoMetadata|null $brivo_metadata, + public array $code_constraints, + public DeviceControlbywebMetadata|null $controlbyweb_metadata, + public DeviceCurrentClimateSetting|null $current_climate_setting, + public array|null $currently_triggering_noise_threshold_ids, + public DeviceDefaultClimateSetting|null $default_climate_setting, + public bool|null $door_open, + public DeviceDormakabaOracodeMetadata|null $dormakaba_oracode_metadata, + public DeviceEcobeeMetadata|null $ecobee_metadata, + public string|null $fallback_climate_preset_key, + public string|null $fan_mode_setting, + public DeviceFourSuitesMetadata|null $four_suites_metadata, + public DeviceGenieMetadata|null $genie_metadata, + public bool|null $has_direct_power, + public bool|null $has_native_entry_events, + public DeviceHoneywellResideoMetadata|null $honeywell_resideo_metadata, + public DeviceIglooMetadata|null $igloo_metadata, + public DeviceIgloohomeMetadata|null $igloohome_metadata, + public string|null $image_alt_text, + public string|null $image_url, + public bool|null $is_cooling, + public bool|null $is_fan_running, + public bool|null $is_heating, + public bool|null $is_temporary_manual_override_active, + public DeviceKeynestMetadata|null $keynest_metadata, + public DeviceKeypadBattery|null $keypad_battery, + public DeviceKisiMetadata|null $kisi_metadata, + public DeviceKorelockMetadata|null $korelock_metadata, + public DeviceKwiksetMetadata|null $kwikset_metadata, + public bool|null $locked, + public DeviceLocklyMetadata|null $lockly_metadata, + public string|null $manufacturer, + public float|null $max_active_codes_supported, + public float|null $max_cooling_set_point_celsius, + public float|null $max_cooling_set_point_fahrenheit, + public float|null $max_heating_set_point_celsius, + public float|null $max_heating_set_point_fahrenheit, + public float|null $max_thermostat_daily_program_periods_per_day, + public float|null $max_unique_climate_presets_per_thermostat_weekly_program, + public float|null $min_cooling_set_point_celsius, + public float|null $min_cooling_set_point_fahrenheit, + public float|null $min_heating_cooling_delta_celsius, + public float|null $min_heating_cooling_delta_fahrenheit, + public float|null $min_heating_set_point_celsius, + public float|null $min_heating_set_point_fahrenheit, + public DeviceMinutMetadata|null $minut_metadata, + public DeviceModel|null $model, + public string|null $name, + public DeviceNestMetadata|null $nest_metadata, + public float|null $noise_level_decibels, + public DeviceNoiseawareMetadata|null $noiseaware_metadata, + public DeviceNukiMetadata|null $nuki_metadata, + public bool|null $offline_access_codes_enabled, + public array $offline_time_frame_options, + public DeviceOmnitecMetadata|null $omnitec_metadata, + public bool|null $online, + public bool|null $online_access_codes_enabled, + public array $online_time_frame_options, + public float|null $relative_humidity, + public DeviceRingMetadata|null $ring_metadata, + public DeviceSaltoKsMetadata|null $salto_ks_metadata, + public DeviceSaltoMetadata|null $salto_metadata, + public DeviceSaltoSpaceCredentialServiceMetadata|null $salto_space_credential_service_metadata, + public DeviceSchlageMetadata|null $schlage_metadata, + public DeviceSeamBridgeMetadata|null $seam_bridge_metadata, + public DeviceSensiMetadata|null $sensi_metadata, + public string|null $serial_number, + public DeviceSmartthingsMetadata|null $smartthings_metadata, + public array|null $supported_code_lengths, + public bool|null $supports_accessory_keypad, + public bool|null $supports_backup_access_code_pool, + public bool|null $supports_offline_access_codes, + public DeviceTadoMetadata|null $tado_metadata, + public DeviceTedeeMetadata|null $tedee_metadata, + public float|null $temperature_celsius, + public float|null $temperature_fahrenheit, + public DeviceTemperatureThreshold|null $temperature_threshold, + public float|null $thermostat_daily_program_period_precision_minutes, + public array $thermostat_daily_programs, + public DeviceThermostatWeeklyProgram|null $thermostat_weekly_program, + public DeviceTtlockMetadata|null $ttlock_metadata, + public DeviceTwoNMetadata|null $two_n_metadata, + public DeviceUltraloqMetadata|null $ultraloq_metadata, + public DeviceVisionlineMetadata|null $visionline_metadata, + public DeviceWyzeMetadata|null $wyze_metadata, + ) {} +} + +class DeviceRingMetadata +{ + public static function from_json(mixed $json): DeviceRingMetadata|null + { + if (!$json) { + return null; + } + return new self( + device_id: $json->device_id ?? null, + device_name: $json->device_name ?? null, + ); + } + + public function __construct( + public string|null $device_id, + public string|null $device_name, + ) {} +} + +class DeviceSaltoKsMetadata +{ + public static function from_json(mixed $json): DeviceSaltoKsMetadata|null + { + if (!$json) { + return null; + } + return new self( + battery_level: $json->battery_level ?? null, + customer_reference: $json->customer_reference ?? null, + has_custom_pin_subscription: $json->has_custom_pin_subscription ?? + null, + lock_id: $json->lock_id ?? null, + lock_type: $json->lock_type ?? null, + locked_state: $json->locked_state ?? null, + model: $json->model ?? null, + site_id: $json->site_id ?? null, + site_name: $json->site_name ?? null, + ); + } + + public function __construct( + public string|null $battery_level, + public string|null $customer_reference, + public bool|null $has_custom_pin_subscription, + public string|null $lock_id, + public string|null $lock_type, + public string|null $locked_state, + public string|null $model, + public string|null $site_id, + public string|null $site_name, + ) {} +} + +class DeviceSaltoMetadata +{ + public static function from_json(mixed $json): DeviceSaltoMetadata|null + { + if (!$json) { + return null; + } + return new self( + battery_level: $json->battery_level ?? null, + customer_reference: $json->customer_reference ?? null, + lock_id: $json->lock_id ?? null, + lock_type: $json->lock_type ?? null, + locked_state: $json->locked_state ?? null, + model: $json->model ?? null, + site_id: $json->site_id ?? null, + site_name: $json->site_name ?? null, + ); + } + + public function __construct( + public string|null $battery_level, + public string|null $customer_reference, + public string|null $lock_id, + public string|null $lock_type, + public string|null $locked_state, + public string|null $model, + public string|null $site_id, + public string|null $site_name, + ) {} +} + +class DeviceSaltoSpaceCredentialServiceMetadata +{ + public static function from_json( + mixed $json, + ): DeviceSaltoSpaceCredentialServiceMetadata|null { + if (!$json) { + return null; + } + return new self(has_active_phone: $json->has_active_phone ?? null); + } + + public function __construct(public bool|null $has_active_phone) {} +} + +class DeviceSchlageMetadata +{ + public static function from_json(mixed $json): DeviceSchlageMetadata|null + { + if (!$json) { + return null; + } + return new self( + device_id: $json->device_id ?? null, + device_name: $json->device_name ?? null, + model: $json->model ?? null, + ); + } + + public function __construct( + public string|null $device_id, + public string|null $device_name, + public string|null $model, + ) {} +} + +class DeviceSeamBridgeMetadata +{ + public static function from_json(mixed $json): DeviceSeamBridgeMetadata|null + { + if (!$json) { + return null; + } + return new self( + device_num: $json->device_num ?? null, + name: $json->name ?? null, + unlock_method: $json->unlock_method ?? null, + ); + } + + public function __construct( + public float|null $device_num, + public string|null $name, + public string|null $unlock_method, + ) {} +} + +class DeviceSensiMetadata +{ + public static function from_json(mixed $json): DeviceSensiMetadata|null + { + if (!$json) { + return null; + } + return new self( + device_id: $json->device_id ?? null, + device_name: $json->device_name ?? null, + dual_setpoints_not_supported: $json->dual_setpoints_not_supported ?? + null, + product_type: $json->product_type ?? null, + ); + } + + public function __construct( + public string|null $device_id, + public string|null $device_name, + public bool|null $dual_setpoints_not_supported, + public string|null $product_type, + ) {} +} + +class DeviceSmartthingsMetadata +{ + public static function from_json( + mixed $json, + ): DeviceSmartthingsMetadata|null { + if (!$json) { + return null; + } + return new self( + device_id: $json->device_id ?? null, + device_name: $json->device_name ?? null, + location_id: $json->location_id ?? null, + model: $json->model ?? null, + ); + } + + public function __construct( + public string|null $device_id, + public string|null $device_name, + public string|null $location_id, + public string|null $model, + ) {} +} + +class DeviceSound +{ + public static function from_json(mixed $json): DeviceSound|null + { + if (!$json) { + return null; + } + return new self(time: $json->time ?? null, value: $json->value ?? null); + } + + public function __construct( + public string|null $time, + public float|null $value, + ) {} +} + +class DeviceTadoMetadata +{ + public static function from_json(mixed $json): DeviceTadoMetadata|null + { + if (!$json) { + return null; + } + return new self( + device_type: $json->device_type ?? null, + serial_no: $json->serial_no ?? null, + ); + } + + public function __construct( + public string|null $device_type, + public string|null $serial_no, + ) {} +} + +class DeviceTedeeMetadata +{ + public static function from_json(mixed $json): DeviceTedeeMetadata|null + { + if (!$json) { + return null; + } + return new self( + bridge_id: $json->bridge_id ?? null, + bridge_name: $json->bridge_name ?? null, + device_id: $json->device_id ?? null, + device_model: $json->device_model ?? null, + device_name: $json->device_name ?? null, + keypad_id: $json->keypad_id ?? null, + serial_number: $json->serial_number ?? null, + ); + } + + public function __construct( + public float|null $bridge_id, + public string|null $bridge_name, + public float|null $device_id, + public string|null $device_model, + public string|null $device_name, + public float|null $keypad_id, + public string|null $serial_number, + ) {} +} + +class DeviceTemperature +{ + public static function from_json(mixed $json): DeviceTemperature|null + { + if (!$json) { + return null; + } + return new self(time: $json->time ?? null, value: $json->value ?? null); + } + + public function __construct( + public string|null $time, + public float|null $value, + ) {} +} + +class DeviceTemperatureThreshold +{ + public static function from_json( + mixed $json, + ): DeviceTemperatureThreshold|null { + if (!$json) { + return null; + } + return new self( + lower_limit_celsius: $json->lower_limit_celsius ?? null, + lower_limit_fahrenheit: $json->lower_limit_fahrenheit ?? null, + upper_limit_celsius: $json->upper_limit_celsius ?? null, + upper_limit_fahrenheit: $json->upper_limit_fahrenheit ?? null, + ); + } + + public function __construct( + public float|null $lower_limit_celsius, + public float|null $lower_limit_fahrenheit, + public float|null $upper_limit_celsius, + public float|null $upper_limit_fahrenheit, + ) {} +} + +class DeviceThermostatDailyPrograms +{ + public static function from_json( + mixed $json, + ): DeviceThermostatDailyPrograms|null { + if (!$json) { + return null; + } + return new self( + created_at: $json->created_at ?? null, + device_id: $json->device_id ?? null, + name: $json->name ?? null, + periods: array_map( + fn($p) => DevicePeriods::from_json($p), + $json->periods ?? [], + ), + thermostat_daily_program_id: $json->thermostat_daily_program_id ?? + null, + workspace_id: $json->workspace_id ?? null, + ); + } + + public function __construct( + public string|null $created_at, + public string|null $device_id, + public string|null $name, + public array $periods, + public string|null $thermostat_daily_program_id, + public string|null $workspace_id, + ) {} +} + +class DeviceThermostatWeeklyProgram +{ + public static function from_json( + mixed $json, + ): DeviceThermostatWeeklyProgram|null { + if (!$json) { + return null; + } + return new self( + created_at: $json->created_at ?? null, + friday_program_id: $json->friday_program_id ?? null, + monday_program_id: $json->monday_program_id ?? null, + saturday_program_id: $json->saturday_program_id ?? null, + sunday_program_id: $json->sunday_program_id ?? null, + thursday_program_id: $json->thursday_program_id ?? null, + tuesday_program_id: $json->tuesday_program_id ?? null, + wednesday_program_id: $json->wednesday_program_id ?? null, + ); + } + + public function __construct( + public string|null $created_at, + public string|null $friday_program_id, + public string|null $monday_program_id, + public string|null $saturday_program_id, + public string|null $sunday_program_id, + public string|null $thursday_program_id, + public string|null $tuesday_program_id, + public string|null $wednesday_program_id, + ) {} +} + +class DeviceTimePairs +{ + public static function from_json(mixed $json): DeviceTimePairs|null + { + if (!$json) { + return null; + } + return new self( + display_name: $json->display_name ?? null, + end_time: $json->end_time ?? null, + start_time: $json->start_time ?? null, + ); + } + + public function __construct( + public string|null $display_name, + public string|null $end_time, + public string|null $start_time, + ) {} +} + +class DeviceTtlockMetadata +{ + public static function from_json(mixed $json): DeviceTtlockMetadata|null + { + if (!$json) { + return null; + } + return new self( + feature_value: $json->feature_value ?? null, + features: isset($json->features) + ? DeviceFeatures::from_json($json->features) + : null, + has_gateway: $json->has_gateway ?? null, + lock_alias: $json->lock_alias ?? null, + lock_id: $json->lock_id ?? null, + timezone_raw_offset_ms: $json->timezone_raw_offset_ms ?? null, + wireless_keypads: array_map( + fn($w) => DeviceWirelessKeypads::from_json($w), + $json->wireless_keypads ?? [], + ), + ); + } + + public function __construct( + public string|null $feature_value, + public DeviceFeatures|null $features, + public bool|null $has_gateway, + public string|null $lock_alias, + public float|null $lock_id, + public float|null $timezone_raw_offset_ms, + public array $wireless_keypads, + ) {} +} + +class DeviceTwoNMetadata +{ + public static function from_json(mixed $json): DeviceTwoNMetadata|null + { + if (!$json) { + return null; + } + return new self( + device_id: $json->device_id ?? null, + device_name: $json->device_name ?? null, + ); + } + + public function __construct( + public float|null $device_id, + public string|null $device_name, + ) {} +} + +class DeviceUltraloqMetadata +{ + public static function from_json(mixed $json): DeviceUltraloqMetadata|null + { + if (!$json) { + return null; + } + return new self( + device_id: $json->device_id ?? null, + device_name: $json->device_name ?? null, + device_type: $json->device_type ?? null, + time_zone: $json->time_zone ?? null, + ); + } + + public function __construct( + public string|null $device_id, + public string|null $device_name, + public string|null $device_type, + public string|null $time_zone, + ) {} +} + +class DeviceVisionlineMetadata +{ + public static function from_json(mixed $json): DeviceVisionlineMetadata|null + { + if (!$json) { + return null; + } + return new self(encoder_id: $json->encoder_id ?? null); + } + + public function __construct(public string|null $encoder_id) {} +} + +class DeviceWarnings +{ + public static function from_json(mixed $json): DeviceWarnings|null + { + if (!$json) { + return null; + } + return new self( + active_access_code_count: $json->active_access_code_count ?? null, + created_at: $json->created_at ?? null, + max_active_access_code_count: $json->max_active_access_code_count ?? + null, + message: $json->message ?? null, + warning_code: $json->warning_code ?? null, + ); + } + + public function __construct( + public int|null $active_access_code_count, + public string|null $created_at, + public int|null $max_active_access_code_count, + public string|null $message, + public string|null $warning_code, + ) {} +} + +class DeviceWirelessKeypads +{ + public static function from_json(mixed $json): DeviceWirelessKeypads|null + { + if (!$json) { + return null; + } + return new self( + wireless_keypad_id: $json->wireless_keypad_id ?? null, + wireless_keypad_name: $json->wireless_keypad_name ?? null, + ); + } + + public function __construct( + public float|null $wireless_keypad_id, + public string|null $wireless_keypad_name, + ) {} +} + +class DeviceWyzeMetadata +{ + public static function from_json(mixed $json): DeviceWyzeMetadata|null + { + if (!$json) { + return null; + } + return new self( + device_id: $json->device_id ?? null, + device_info_model: $json->device_info_model ?? null, + device_name: $json->device_name ?? null, + keypad_uuid: $json->keypad_uuid ?? null, + locker_status_hardlock: $json->locker_status_hardlock ?? null, + product_model: $json->product_model ?? null, + product_name: $json->product_name ?? null, + product_type: $json->product_type ?? null, + ); + } + + public function __construct( + public string|null $device_id, + public string|null $device_info_model, + public string|null $device_name, + public string|null $keypad_uuid, + public float|null $locker_status_hardlock, + public string|null $product_model, + public string|null $product_name, + public string|null $product_type, + ) {} +} diff --git a/src/Objects/DeviceProvider.php b/src/Resources/DeviceProvider.php similarity index 99% rename from src/Objects/DeviceProvider.php rename to src/Resources/DeviceProvider.php index f875e79b..cfd159e0 100644 --- a/src/Objects/DeviceProvider.php +++ b/src/Resources/DeviceProvider.php @@ -1,6 +1,6 @@ created_at ?? null, + error_code: $json->error_code ?? null, + message: $json->message ?? null, + ); + } + + public function __construct( + public string|null $created_at, + public string|null $error_code, + public string|null $message, + ) {} +} + +class EventAccessCodeWarnings +{ + public static function from_json(mixed $json): EventAccessCodeWarnings|null + { + if (!$json) { + return null; + } + return new self( + created_at: $json->created_at ?? null, + message: $json->message ?? null, + warning_code: $json->warning_code ?? null, + ); + } + + public function __construct( + public string|null $created_at, + public string|null $message, + public string|null $warning_code, + ) {} +} + +class EventAcsSystemErrors +{ + public static function from_json(mixed $json): EventAcsSystemErrors|null + { + if (!$json) { + return null; + } + return new self( + created_at: $json->created_at ?? null, + error_code: $json->error_code ?? null, + message: $json->message ?? null, + ); + } + + public function __construct( + public string|null $created_at, + public string|null $error_code, + public string|null $message, + ) {} +} + +class EventAcsSystemWarnings +{ + public static function from_json(mixed $json): EventAcsSystemWarnings|null + { + if (!$json) { + return null; + } + return new self( + created_at: $json->created_at ?? null, + message: $json->message ?? null, + warning_code: $json->warning_code ?? null, + ); + } + + public function __construct( + public string|null $created_at, + public string|null $message, + public string|null $warning_code, + ) {} +} + +class EventChangedProperties +{ + public static function from_json(mixed $json): EventChangedProperties|null + { + if (!$json) { + return null; + } + return new self( + from: $json->from ?? null, + property: $json->property ?? null, + to: $json->to ?? null, + ); + } + + public function __construct( + public string|null $from, + public string|null $property, + public string|null $to, + ) {} +} + +class EventConnectedAccountErrors +{ + public static function from_json( + mixed $json, + ): EventConnectedAccountErrors|null { + if (!$json) { + return null; + } + return new self( + created_at: $json->created_at ?? null, + error_code: $json->error_code ?? null, + message: $json->message ?? null, + ); + } + + public function __construct( + public string|null $created_at, + public string|null $error_code, + public string|null $message, + ) {} +} + +class EventConnectedAccountWarnings +{ + public static function from_json( + mixed $json, + ): EventConnectedAccountWarnings|null { + if (!$json) { + return null; + } + return new self( + created_at: $json->created_at ?? null, + message: $json->message ?? null, + warning_code: $json->warning_code ?? null, + ); + } + + public function __construct( + public string|null $created_at, + public string|null $message, + public string|null $warning_code, + ) {} +} + +class EventDeviceErrors +{ + public static function from_json(mixed $json): EventDeviceErrors|null + { + if (!$json) { + return null; + } + return new self( + created_at: $json->created_at ?? null, + error_code: $json->error_code ?? null, + message: $json->message ?? null, + ); + } + + public function __construct( + public string|null $created_at, + public string|null $error_code, + public string|null $message, + ) {} +} + +class EventDeviceWarnings +{ + public static function from_json(mixed $json): EventDeviceWarnings|null + { + if (!$json) { + return null; + } + return new self( + created_at: $json->created_at ?? null, + message: $json->message ?? null, + warning_code: $json->warning_code ?? null, + ); + } + + public function __construct( + public string|null $created_at, + public string|null $message, + public string|null $warning_code, + ) {} +} + +class EventFrom +{ + public static function from_json(mixed $json): EventFrom|null + { + if (!$json) { + return null; + } + return new self( + code: $json->code ?? null, + ends_at: $json->ends_at ?? null, + name: $json->name ?? null, + starts_at: $json->starts_at ?? null, + ); + } + + public function __construct( + public string|null $code, + public string|null $ends_at, + public string|null $name, + public string|null $starts_at, + ) {} +} + +class EventReason +{ + public static function from_json(mixed $json): EventReason|null + { + if (!$json) { + return null; + } + return new self( + message: $json->message ?? null, + reason_code: $json->reason_code ?? null, + ); + } + + public function __construct( + public string|null $message, + public string|null $reason_code, + ) {} +} + +class EventRequestedMutations +{ + public static function from_json(mixed $json): EventRequestedMutations|null + { + if (!$json) { + return null; + } + return new self( + from: $json->from ?? null, + mutation_code: $json->mutation_code ?? null, + to: $json->to ?? null, + ); + } + + public function __construct( + public mixed $from, + public string|null $mutation_code, + public mixed $to, + ) {} +} + +class EventTo +{ + public static function from_json(mixed $json): EventTo|null + { + if (!$json) { + return null; + } + return new self( + code: $json->code ?? null, + ends_at: $json->ends_at ?? null, + name: $json->name ?? null, + starts_at: $json->starts_at ?? null, + ); + } + + public function __construct( + public string|null $code, + public string|null $ends_at, + public string|null $name, + public string|null $starts_at, + ) {} +} diff --git a/src/Objects/InstantKey.php b/src/Resources/InstantKey.php similarity index 69% rename from src/Objects/InstantKey.php rename to src/Resources/InstantKey.php index eeb7c2d8..7e65a203 100644 --- a/src/Objects/InstantKey.php +++ b/src/Resources/InstantKey.php @@ -1,6 +1,6 @@ logo_url ?? null, + primary_color: $json->primary_color ?? null, + secondary_color: $json->secondary_color ?? null, + ); + } + + public function __construct( + public string|null $logo_url, + public string|null $primary_color, + public string|null $secondary_color, + ) {} +} diff --git a/src/Objects/NoiseThreshold.php b/src/Resources/NoiseThreshold.php similarity index 97% rename from src/Objects/NoiseThreshold.php rename to src/Resources/NoiseThreshold.php index 73d97c82..5a80e100 100644 --- a/src/Objects/NoiseThreshold.php +++ b/src/Resources/NoiseThreshold.php @@ -1,6 +1,6 @@ created_at ?? null, + custom_metadata: $json->custom_metadata ?? null, + device_id: $json->device_id ?? null, + device_type: $json->device_type ?? null, + display_name: $json->display_name ?? null, + errors: array_map( + fn($e) => PhoneErrors::from_json($e), + $json->errors ?? [], + ), + nickname: $json->nickname ?? null, + properties: isset($json->properties) + ? PhoneProperties::from_json($json->properties) + : null, + warnings: array_map( + fn($w) => PhoneWarnings::from_json($w), + $json->warnings ?? [], + ), + workspace_id: $json->workspace_id ?? null, + ); + } + + public function __construct( + public string|null $created_at, + public mixed $custom_metadata, + public string|null $device_id, + public string|null $device_type, + public string|null $display_name, + public array $errors, + public string|null $nickname, + public PhoneProperties|null $properties, + public array $warnings, + public string|null $workspace_id, + ) {} +} + +class PhoneAssaAbloyCredentialServiceMetadata +{ + public static function from_json( + mixed $json, + ): PhoneAssaAbloyCredentialServiceMetadata|null { + if (!$json) { + return null; + } + return new self( + endpoints: array_map( + fn($e) => PhoneEndpoints::from_json($e), + $json->endpoints ?? [], + ), + has_active_endpoint: $json->has_active_endpoint ?? null, + ); + } + + public function __construct( + public array $endpoints, + public bool|null $has_active_endpoint, + ) {} +} + +class PhoneEndpoints +{ + public static function from_json(mixed $json): PhoneEndpoints|null + { + if (!$json) { + return null; + } + return new self( + endpoint_id: $json->endpoint_id ?? null, + is_active: $json->is_active ?? null, + ); + } + + public function __construct( + public string|null $endpoint_id, + public bool|null $is_active, + ) {} +} + +class PhoneErrors +{ + public static function from_json(mixed $json): PhoneErrors|null + { + if (!$json) { + return null; + } + return new self( + created_at: $json->created_at ?? null, + error_code: $json->error_code ?? null, + message: $json->message ?? null, + ); + } + + public function __construct( + public string|null $created_at, + public string|null $error_code, + public string|null $message, + ) {} +} + +class PhoneProperties +{ + public static function from_json(mixed $json): PhoneProperties|null + { + if (!$json) { + return null; + } + return new self( + assa_abloy_credential_service_metadata: isset( + $json->assa_abloy_credential_service_metadata, + ) + ? PhoneAssaAbloyCredentialServiceMetadata::from_json( + $json->assa_abloy_credential_service_metadata, + ) + : null, + salto_space_credential_service_metadata: isset( + $json->salto_space_credential_service_metadata, + ) + ? PhoneSaltoSpaceCredentialServiceMetadata::from_json( + $json->salto_space_credential_service_metadata, + ) + : null, + ); + } + + public function __construct( + public PhoneAssaAbloyCredentialServiceMetadata|null $assa_abloy_credential_service_metadata, + public PhoneSaltoSpaceCredentialServiceMetadata|null $salto_space_credential_service_metadata, + ) {} +} + +class PhoneSaltoSpaceCredentialServiceMetadata +{ + public static function from_json( + mixed $json, + ): PhoneSaltoSpaceCredentialServiceMetadata|null { + if (!$json) { + return null; + } + return new self(has_active_phone: $json->has_active_phone ?? null); + } + + public function __construct(public bool|null $has_active_phone) {} +} + +class PhoneWarnings +{ + public static function from_json(mixed $json): PhoneWarnings|null + { + if (!$json) { + return null; + } + return new self( + created_at: $json->created_at ?? null, + message: $json->message ?? null, + warning_code: $json->warning_code ?? null, + ); + } + + public function __construct( + public string|null $created_at, + public string|null $message, + public string|null $warning_code, + ) {} +} diff --git a/src/Objects/Space.php b/src/Resources/Space.php similarity index 56% rename from src/Objects/Space.php rename to src/Resources/Space.php index 11165522..c64d1c76 100644 --- a/src/Objects/Space.php +++ b/src/Resources/Space.php @@ -1,6 +1,6 @@ address ?? null, + default_checkin_time: $json->default_checkin_time ?? null, + default_checkout_time: $json->default_checkout_time ?? null, + time_zone: $json->time_zone ?? null, + ); + } + + public function __construct( + public string|null $address, + public string|null $default_checkin_time, + public string|null $default_checkout_time, + public string|null $time_zone, + ) {} +} + +class SpaceGeolocation +{ + public static function from_json(mixed $json): SpaceGeolocation|null + { + if (!$json) { + return null; + } + return new self( + latitude: $json->latitude ?? null, + longitude: $json->longitude ?? null, + ); + } + + public function __construct( + public float|null $latitude, + public float|null $longitude, + ) {} +} diff --git a/src/Objects/ThermostatDailyProgram.php b/src/Resources/ThermostatDailyProgram.php similarity index 64% rename from src/Objects/ThermostatDailyProgram.php rename to src/Resources/ThermostatDailyProgram.php index 0fef3434..54529623 100644 --- a/src/Objects/ThermostatDailyProgram.php +++ b/src/Resources/ThermostatDailyProgram.php @@ -1,6 +1,6 @@ climate_preset_key ?? null, + starts_at_time: $json->starts_at_time ?? null, + ); + } + + public function __construct( + public string|null $climate_preset_key, + public string|null $starts_at_time, + ) {} +} diff --git a/src/Objects/ThermostatSchedule.php b/src/Resources/ThermostatSchedule.php similarity index 72% rename from src/Objects/ThermostatSchedule.php rename to src/Resources/ThermostatSchedule.php index e943520f..0cc894b0 100644 --- a/src/Objects/ThermostatSchedule.php +++ b/src/Resources/ThermostatSchedule.php @@ -1,6 +1,6 @@ created_at ?? null, + error_code: $json->error_code ?? null, + message: $json->message ?? null, + ); + } + + public function __construct( + public string|null $created_at, + public string|null $error_code, + public string|null $message, + ) {} +} diff --git a/src/Resources/UnmanagedAccessCode.php b/src/Resources/UnmanagedAccessCode.php new file mode 100644 index 00000000..c8bfc622 --- /dev/null +++ b/src/Resources/UnmanagedAccessCode.php @@ -0,0 +1,186 @@ +access_code_id ?? null, + cannot_be_managed: $json->cannot_be_managed ?? null, + cannot_delete_unmanaged_access_code: $json->cannot_delete_unmanaged_access_code ?? + null, + code: $json->code ?? null, + created_at: $json->created_at ?? null, + device_id: $json->device_id ?? null, + dormakaba_oracode_metadata: isset($json->dormakaba_oracode_metadata) + ? UnmanagedAccessCodeDormakabaOracodeMetadata::from_json( + $json->dormakaba_oracode_metadata, + ) + : null, + ends_at: $json->ends_at ?? null, + errors: array_map( + fn($e) => UnmanagedAccessCodeErrors::from_json($e), + $json->errors ?? [], + ), + is_managed: $json->is_managed ?? null, + name: $json->name ?? null, + starts_at: $json->starts_at ?? null, + status: $json->status ?? null, + type: $json->type ?? null, + warnings: array_map( + fn($w) => UnmanagedAccessCodeWarnings::from_json($w), + $json->warnings ?? [], + ), + workspace_id: $json->workspace_id ?? null, + ); + } + + public function __construct( + public string|null $access_code_id, + public bool|null $cannot_be_managed, + public bool|null $cannot_delete_unmanaged_access_code, + public string|null $code, + public string|null $created_at, + public string|null $device_id, + public UnmanagedAccessCodeDormakabaOracodeMetadata|null $dormakaba_oracode_metadata, + public string|null $ends_at, + public array $errors, + public bool|null $is_managed, + public string|null $name, + public string|null $starts_at, + public string|null $status, + public string|null $type, + public array $warnings, + public string|null $workspace_id, + ) {} +} + +class UnmanagedAccessCodeDormakabaOracodeMetadata +{ + public static function from_json( + mixed $json, + ): UnmanagedAccessCodeDormakabaOracodeMetadata|null { + if (!$json) { + return null; + } + return new self( + is_cancellable: $json->is_cancellable ?? null, + is_early_checkin_able: $json->is_early_checkin_able ?? null, + is_extendable: $json->is_extendable ?? null, + is_overridable: $json->is_overridable ?? null, + site_name: $json->site_name ?? null, + stay_id: $json->stay_id ?? null, + user_level_id: $json->user_level_id ?? null, + user_level_name: $json->user_level_name ?? null, + ); + } + + public function __construct( + public bool|null $is_cancellable, + public bool|null $is_early_checkin_able, + public bool|null $is_extendable, + public bool|null $is_overridable, + public string|null $site_name, + public float|null $stay_id, + public string|null $user_level_id, + public string|null $user_level_name, + ) {} +} + +class UnmanagedAccessCodeErrors +{ + public static function from_json( + mixed $json, + ): UnmanagedAccessCodeErrors|null { + if (!$json) { + return null; + } + return new self( + change_type: $json->change_type ?? null, + created_at: $json->created_at ?? null, + error_code: $json->error_code ?? null, + is_access_code_error: $json->is_access_code_error ?? null, + is_bridge_error: $json->is_bridge_error ?? null, + is_connected_account_error: $json->is_connected_account_error ?? + null, + is_device_error: $json->is_device_error ?? null, + managed_access_code_id: $json->managed_access_code_id ?? null, + message: $json->message ?? null, + modified_fields: array_map( + fn($m) => UnmanagedAccessCodeModifiedFields::from_json($m), + $json->modified_fields ?? [], + ), + unmanaged_access_code_id: $json->unmanaged_access_code_id ?? null, + ); + } + + public function __construct( + public string|null $change_type, + public string|null $created_at, + public string|null $error_code, + public bool|null $is_access_code_error, + public bool|null $is_bridge_error, + public bool|null $is_connected_account_error, + public bool|null $is_device_error, + public string|null $managed_access_code_id, + public string|null $message, + public array $modified_fields, + public string|null $unmanaged_access_code_id, + ) {} +} + +class UnmanagedAccessCodeModifiedFields +{ + public static function from_json( + mixed $json, + ): UnmanagedAccessCodeModifiedFields|null { + if (!$json) { + return null; + } + return new self( + field: $json->field ?? null, + from: $json->from ?? null, + to: $json->to ?? null, + ); + } + + public function __construct( + public string|null $field, + public string|null $from, + public string|null $to, + ) {} +} + +class UnmanagedAccessCodeWarnings +{ + public static function from_json( + mixed $json, + ): UnmanagedAccessCodeWarnings|null { + if (!$json) { + return null; + } + return new self( + change_type: $json->change_type ?? null, + created_at: $json->created_at ?? null, + message: $json->message ?? null, + modified_fields: array_map( + fn($m) => UnmanagedAccessCodeModifiedFields::from_json($m), + $json->modified_fields ?? [], + ), + warning_code: $json->warning_code ?? null, + ); + } + + public function __construct( + public string|null $change_type, + public string|null $created_at, + public string|null $message, + public array $modified_fields, + public string|null $warning_code, + ) {} +} diff --git a/src/Resources/UnmanagedDevice.php b/src/Resources/UnmanagedDevice.php new file mode 100644 index 00000000..2f0cc145 --- /dev/null +++ b/src/Resources/UnmanagedDevice.php @@ -0,0 +1,293 @@ +can_configure_auto_lock ?? null, + can_hvac_cool: $json->can_hvac_cool ?? null, + can_hvac_heat: $json->can_hvac_heat ?? null, + can_hvac_heat_cool: $json->can_hvac_heat_cool ?? null, + can_program_offline_access_codes: $json->can_program_offline_access_codes ?? + null, + can_program_online_access_codes: $json->can_program_online_access_codes ?? + null, + can_program_thermostat_programs_as_different_each_day: $json->can_program_thermostat_programs_as_different_each_day ?? + null, + can_program_thermostat_programs_as_same_each_day: $json->can_program_thermostat_programs_as_same_each_day ?? + null, + can_program_thermostat_programs_as_weekday_weekend: $json->can_program_thermostat_programs_as_weekday_weekend ?? + null, + can_remotely_lock: $json->can_remotely_lock ?? null, + can_remotely_unlock: $json->can_remotely_unlock ?? null, + can_run_thermostat_programs: $json->can_run_thermostat_programs ?? + null, + can_simulate_connection: $json->can_simulate_connection ?? null, + can_simulate_disconnection: $json->can_simulate_disconnection ?? + null, + can_simulate_hub_connection: $json->can_simulate_hub_connection ?? + null, + can_simulate_hub_disconnection: $json->can_simulate_hub_disconnection ?? + null, + can_simulate_paid_subscription: $json->can_simulate_paid_subscription ?? + null, + can_simulate_removal: $json->can_simulate_removal ?? null, + can_turn_off_hvac: $json->can_turn_off_hvac ?? null, + can_unlock_with_code: $json->can_unlock_with_code ?? null, + capabilities_supported: $json->capabilities_supported ?? null, + connected_account_id: $json->connected_account_id ?? null, + created_at: $json->created_at ?? null, + custom_metadata: $json->custom_metadata ?? null, + device_id: $json->device_id ?? null, + device_type: $json->device_type ?? null, + errors: array_map( + fn($e) => UnmanagedDeviceErrors::from_json($e), + $json->errors ?? [], + ), + is_managed: $json->is_managed ?? null, + location: isset($json->location) + ? UnmanagedDeviceLocation::from_json($json->location) + : null, + properties: isset($json->properties) + ? UnmanagedDeviceProperties::from_json($json->properties) + : null, + warnings: array_map( + fn($w) => UnmanagedDeviceWarnings::from_json($w), + $json->warnings ?? [], + ), + workspace_id: $json->workspace_id ?? null, + ); + } + + public function __construct( + public bool|null $can_configure_auto_lock, + public bool|null $can_hvac_cool, + public bool|null $can_hvac_heat, + public bool|null $can_hvac_heat_cool, + public bool|null $can_program_offline_access_codes, + public bool|null $can_program_online_access_codes, + public bool|null $can_program_thermostat_programs_as_different_each_day, + public bool|null $can_program_thermostat_programs_as_same_each_day, + public bool|null $can_program_thermostat_programs_as_weekday_weekend, + public bool|null $can_remotely_lock, + public bool|null $can_remotely_unlock, + public bool|null $can_run_thermostat_programs, + public bool|null $can_simulate_connection, + public bool|null $can_simulate_disconnection, + public bool|null $can_simulate_hub_connection, + public bool|null $can_simulate_hub_disconnection, + public bool|null $can_simulate_paid_subscription, + public bool|null $can_simulate_removal, + public bool|null $can_turn_off_hvac, + public bool|null $can_unlock_with_code, + public array|null $capabilities_supported, + public string|null $connected_account_id, + public string|null $created_at, + public mixed $custom_metadata, + public string|null $device_id, + public string|null $device_type, + public array $errors, + public bool|null $is_managed, + public UnmanagedDeviceLocation|null $location, + public UnmanagedDeviceProperties|null $properties, + public array $warnings, + public string|null $workspace_id, + ) {} +} + +class UnmanagedDeviceAccessoryKeypad +{ + public static function from_json( + mixed $json, + ): UnmanagedDeviceAccessoryKeypad|null { + if (!$json) { + return null; + } + return new self( + battery: isset($json->battery) + ? UnmanagedDeviceBattery::from_json($json->battery) + : null, + is_connected: $json->is_connected ?? null, + ); + } + + public function __construct( + public UnmanagedDeviceBattery|null $battery, + public bool|null $is_connected, + ) {} +} + +class UnmanagedDeviceBattery +{ + public static function from_json(mixed $json): UnmanagedDeviceBattery|null + { + if (!$json) { + return null; + } + return new self(level: $json->level ?? null); + } + + public function __construct(public float|null $level) {} +} + +class UnmanagedDeviceErrors +{ + public static function from_json(mixed $json): UnmanagedDeviceErrors|null + { + if (!$json) { + return null; + } + return new self( + created_at: $json->created_at ?? null, + error_code: $json->error_code ?? null, + is_bridge_error: $json->is_bridge_error ?? null, + is_connected_account_error: $json->is_connected_account_error ?? + null, + is_device_error: $json->is_device_error ?? null, + message: $json->message ?? null, + ); + } + + public function __construct( + public string|null $created_at, + public string|null $error_code, + public bool|null $is_bridge_error, + public bool|null $is_connected_account_error, + public bool|null $is_device_error, + public string|null $message, + ) {} +} + +class UnmanagedDeviceLocation +{ + public static function from_json(mixed $json): UnmanagedDeviceLocation|null + { + if (!$json) { + return null; + } + return new self( + location_name: $json->location_name ?? null, + time_zone: $json->time_zone ?? null, + timezone: $json->timezone ?? null, + ); + } + + public function __construct( + public string|null $location_name, + public string|null $time_zone, + public string|null $timezone, + ) {} +} + +class UnmanagedDeviceModel +{ + public static function from_json(mixed $json): UnmanagedDeviceModel|null + { + if (!$json) { + return null; + } + return new self( + accessory_keypad_supported: $json->accessory_keypad_supported ?? + null, + can_connect_accessory_keypad: $json->can_connect_accessory_keypad ?? + null, + display_name: $json->display_name ?? null, + has_built_in_keypad: $json->has_built_in_keypad ?? null, + manufacturer_display_name: $json->manufacturer_display_name ?? null, + offline_access_codes_supported: $json->offline_access_codes_supported ?? + null, + online_access_codes_supported: $json->online_access_codes_supported ?? + null, + ); + } + + public function __construct( + public bool|null $accessory_keypad_supported, + public bool|null $can_connect_accessory_keypad, + public string|null $display_name, + public bool|null $has_built_in_keypad, + public string|null $manufacturer_display_name, + public bool|null $offline_access_codes_supported, + public bool|null $online_access_codes_supported, + ) {} +} + +class UnmanagedDeviceProperties +{ + public static function from_json( + mixed $json, + ): UnmanagedDeviceProperties|null { + if (!$json) { + return null; + } + return new self( + accessory_keypad: isset($json->accessory_keypad) + ? UnmanagedDeviceAccessoryKeypad::from_json( + $json->accessory_keypad, + ) + : null, + battery: isset($json->battery) + ? UnmanagedDeviceBattery::from_json($json->battery) + : null, + battery_level: $json->battery_level ?? null, + image_alt_text: $json->image_alt_text ?? null, + image_url: $json->image_url ?? null, + manufacturer: $json->manufacturer ?? null, + model: isset($json->model) + ? UnmanagedDeviceModel::from_json($json->model) + : null, + name: $json->name ?? null, + offline_access_codes_enabled: $json->offline_access_codes_enabled ?? + null, + online: $json->online ?? null, + online_access_codes_enabled: $json->online_access_codes_enabled ?? + null, + ); + } + + public function __construct( + public UnmanagedDeviceAccessoryKeypad|null $accessory_keypad, + public UnmanagedDeviceBattery|null $battery, + public float|null $battery_level, + public string|null $image_alt_text, + public string|null $image_url, + public string|null $manufacturer, + public UnmanagedDeviceModel|null $model, + public string|null $name, + public bool|null $offline_access_codes_enabled, + public bool|null $online, + public bool|null $online_access_codes_enabled, + ) {} +} + +class UnmanagedDeviceWarnings +{ + public static function from_json(mixed $json): UnmanagedDeviceWarnings|null + { + if (!$json) { + return null; + } + return new self( + active_access_code_count: $json->active_access_code_count ?? null, + created_at: $json->created_at ?? null, + max_active_access_code_count: $json->max_active_access_code_count ?? + null, + message: $json->message ?? null, + warning_code: $json->warning_code ?? null, + ); + } + + public function __construct( + public int|null $active_access_code_count, + public string|null $created_at, + public int|null $max_active_access_code_count, + public string|null $message, + public string|null $warning_code, + ) {} +} diff --git a/src/Objects/UserIdentity.php b/src/Resources/UserIdentity.php similarity index 54% rename from src/Objects/UserIdentity.php rename to src/Resources/UserIdentity.php index a5054791..7ec6948f 100644 --- a/src/Objects/UserIdentity.php +++ b/src/Resources/UserIdentity.php @@ -1,6 +1,6 @@ acs_system_id ?? null, + acs_user_id: $json->acs_user_id ?? null, + created_at: $json->created_at ?? null, + error_code: $json->error_code ?? null, + message: $json->message ?? null, + ); + } + + public function __construct( + public string|null $acs_system_id, + public string|null $acs_user_id, + public string|null $created_at, + public string|null $error_code, + public string|null $message, + ) {} +} + +class UserIdentityWarnings +{ + public static function from_json(mixed $json): UserIdentityWarnings|null + { + if (!$json) { + return null; + } + return new self( + created_at: $json->created_at ?? null, + message: $json->message ?? null, + warning_code: $json->warning_code ?? null, + ); + } + + public function __construct( + public string|null $created_at, + public string|null $message, + public string|null $warning_code, + ) {} +} diff --git a/src/Objects/Webhook.php b/src/Resources/Webhook.php similarity index 95% rename from src/Objects/Webhook.php rename to src/Resources/Webhook.php index 247aeaac..d4c42314 100644 --- a/src/Objects/Webhook.php +++ b/src/Resources/Webhook.php @@ -1,6 +1,6 @@ inviter_logo_url ?? null, + logo_shape: $json->logo_shape ?? null, + primary_button_color: $json->primary_button_color ?? null, + primary_button_text_color: $json->primary_button_text_color ?? null, + success_message: $json->success_message ?? null, + ); + } + + public function __construct( + public string|null $inviter_logo_url, + public string|null $logo_shape, + public string|null $primary_button_color, + public string|null $primary_button_text_color, + public string|null $success_message, + ) {} +} diff --git a/src/SeamClient.php b/src/SeamClient.php index b79c99c3..70073438 100644 --- a/src/SeamClient.php +++ b/src/SeamClient.php @@ -2,35 +2,35 @@ namespace Seam; -use Seam\Objects\AccessCode; -use Seam\Objects\AccessGrant; -use Seam\Objects\AccessMethod; -use Seam\Objects\AcsAccessGroup; -use Seam\Objects\AcsCredential; -use Seam\Objects\AcsEncoder; -use Seam\Objects\AcsEntrance; -use Seam\Objects\AcsSystem; -use Seam\Objects\AcsUser; -use Seam\Objects\ActionAttempt; -use Seam\Objects\Batch; -use Seam\Objects\ClientSession; -use Seam\Objects\ConnectWebview; -use Seam\Objects\ConnectedAccount; -use Seam\Objects\CustomerPortal; -use Seam\Objects\Device; -use Seam\Objects\DeviceProvider; -use Seam\Objects\Event; -use Seam\Objects\InstantKey; -use Seam\Objects\NoiseThreshold; -use Seam\Objects\Phone; -use Seam\Objects\Space; -use Seam\Objects\ThermostatDailyProgram; -use Seam\Objects\ThermostatSchedule; -use Seam\Objects\UnmanagedAccessCode; -use Seam\Objects\UnmanagedDevice; -use Seam\Objects\UserIdentity; -use Seam\Objects\Webhook; -use Seam\Objects\Workspace; +use Seam\Resources\AccessCode; +use Seam\Resources\AccessGrant; +use Seam\Resources\AccessMethod; +use Seam\Resources\AcsAccessGroup; +use Seam\Resources\AcsCredential; +use Seam\Resources\AcsEncoder; +use Seam\Resources\AcsEntrance; +use Seam\Resources\AcsSystem; +use Seam\Resources\AcsUser; +use Seam\Resources\ActionAttempt; +use Seam\Resources\Batch; +use Seam\Resources\ClientSession; +use Seam\Resources\ConnectWebview; +use Seam\Resources\ConnectedAccount; +use Seam\Resources\CustomerPortal; +use Seam\Resources\Device; +use Seam\Resources\DeviceProvider; +use Seam\Resources\Event; +use Seam\Resources\InstantKey; +use Seam\Resources\NoiseThreshold; +use Seam\Resources\Phone; +use Seam\Resources\Space; +use Seam\Resources\ThermostatDailyProgram; +use Seam\Resources\ThermostatSchedule; +use Seam\Resources\UnmanagedAccessCode; +use Seam\Resources\UnmanagedDevice; +use Seam\Resources\UserIdentity; +use Seam\Resources\Webhook; +use Seam\Resources\Workspace; use Seam\Utils\PackageVersion; use GuzzleHttp\Client as HTTPClient;