require 'microsoft_kiota_abstractions'
require_relative '../microsoft_graph'
require_relative './models'

module MicrosoftGraph
    module Models
        class Entity
            include MicrosoftKiotaAbstractions::AdditionalDataHolder, MicrosoftKiotaAbstractions::Parsable
            ## 
            # Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
            @additional_data
            ## 
            # The unique idenfier for an entity. Read-only.
            @id
            ## 
            # The OdataType property
            @odata_type
            ## 
            ## Gets the additionalData property value. Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
            ## @return a i_dictionary
            ## 
            def additional_data
                return @additional_data
            end
            ## 
            ## Sets the additionalData property value. Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
            ## @param value Value to set for the additionalData property.
            ## @return a void
            ## 
            def additional_data=(value)
                @additional_data = value
            end
            ## 
            ## Instantiates a new entity and sets the default values.
            ## @return a void
            ## 
            def initialize()
                @additional_data = Hash.new
            end
            ## 
            ## Creates a new instance of the appropriate class based on discriminator value
            ## @param parse_node The parse node to use to read the discriminator value and create the object
            ## @return a entity
            ## 
            def self.create_from_discriminator_value(parse_node)
                raise StandardError, 'parse_node cannot be null' if parse_node.nil?
                mapping_value_node = parse_node.get_child_node("@odata.type")
                unless mapping_value_node.nil? then
                    mapping_value = mapping_value_node.get_string_value
                    case mapping_value
                        when "#microsoft.graph.aadUserConversationMember"
                            return AadUserConversationMember.new
                        when "#microsoft.graph.accessPackage"
                            return AccessPackage.new
                        when "#microsoft.graph.accessPackageAssignment"
                            return AccessPackageAssignment.new
                        when "#microsoft.graph.accessPackageAssignmentPolicy"
                            return AccessPackageAssignmentPolicy.new
                        when "#microsoft.graph.accessPackageAssignmentRequest"
                            return AccessPackageAssignmentRequest.new
                        when "#microsoft.graph.accessPackageAssignmentRequestWorkflowExtension"
                            return AccessPackageAssignmentRequestWorkflowExtension.new
                        when "#microsoft.graph.accessPackageAssignmentWorkflowExtension"
                            return AccessPackageAssignmentWorkflowExtension.new
                        when "#microsoft.graph.accessPackageCatalog"
                            return AccessPackageCatalog.new
                        when "#microsoft.graph.accessPackageMultipleChoiceQuestion"
                            return AccessPackageMultipleChoiceQuestion.new
                        when "#microsoft.graph.accessPackageQuestion"
                            return AccessPackageQuestion.new
                        when "#microsoft.graph.accessPackageResource"
                            return AccessPackageResource.new
                        when "#microsoft.graph.accessPackageResourceEnvironment"
                            return AccessPackageResourceEnvironment.new
                        when "#microsoft.graph.accessPackageResourceRequest"
                            return AccessPackageResourceRequest.new
                        when "#microsoft.graph.accessPackageResourceRole"
                            return AccessPackageResourceRole.new
                        when "#microsoft.graph.accessPackageResourceRoleScope"
                            return AccessPackageResourceRoleScope.new
                        when "#microsoft.graph.accessPackageResourceScope"
                            return AccessPackageResourceScope.new
                        when "#microsoft.graph.accessPackageSubject"
                            return AccessPackageSubject.new
                        when "#microsoft.graph.accessPackageTextInputQuestion"
                            return AccessPackageTextInputQuestion.new
                        when "#microsoft.graph.accessReviewHistoryDefinition"
                            return AccessReviewHistoryDefinition.new
                        when "#microsoft.graph.accessReviewHistoryInstance"
                            return AccessReviewHistoryInstance.new
                        when "#microsoft.graph.accessReviewInstance"
                            return AccessReviewInstance.new
                        when "#microsoft.graph.accessReviewInstanceDecisionItem"
                            return AccessReviewInstanceDecisionItem.new
                        when "#microsoft.graph.accessReviewReviewer"
                            return AccessReviewReviewer.new
                        when "#microsoft.graph.accessReviewScheduleDefinition"
                            return AccessReviewScheduleDefinition.new
                        when "#microsoft.graph.accessReviewSet"
                            return AccessReviewSet.new
                        when "#microsoft.graph.accessReviewStage"
                            return AccessReviewStage.new
                        when "#microsoft.graph.activityBasedTimeoutPolicy"
                            return ActivityBasedTimeoutPolicy.new
                        when "#microsoft.graph.activityHistoryItem"
                            return ActivityHistoryItem.new
                        when "#microsoft.graph.addLargeGalleryViewOperation"
                            return AddLargeGalleryViewOperation.new
                        when "#microsoft.graph.adminConsentRequestPolicy"
                            return AdminConsentRequestPolicy.new
                        when "#microsoft.graph.administrativeUnit"
                            return AdministrativeUnit.new
                        when "#microsoft.graph.agreement"
                            return Agreement.new
                        when "#microsoft.graph.agreementAcceptance"
                            return AgreementAcceptance.new
                        when "#microsoft.graph.agreementFile"
                            return AgreementFile.new
                        when "#microsoft.graph.agreementFileLocalization"
                            return AgreementFileLocalization.new
                        when "#microsoft.graph.agreementFileProperties"
                            return AgreementFileProperties.new
                        when "#microsoft.graph.agreementFileVersion"
                            return AgreementFileVersion.new
                        when "#microsoft.graph.alert"
                            return Alert.new
                        when "#microsoft.graph.allowedValue"
                            return AllowedValue.new
                        when "#microsoft.graph.androidCompliancePolicy"
                            return AndroidCompliancePolicy.new
                        when "#microsoft.graph.androidCustomConfiguration"
                            return AndroidCustomConfiguration.new
                        when "#microsoft.graph.androidGeneralDeviceConfiguration"
                            return AndroidGeneralDeviceConfiguration.new
                        when "#microsoft.graph.androidLobApp"
                            return AndroidLobApp.new
                        when "#microsoft.graph.androidManagedAppProtection"
                            return AndroidManagedAppProtection.new
                        when "#microsoft.graph.androidManagedAppRegistration"
                            return AndroidManagedAppRegistration.new
                        when "#microsoft.graph.androidStoreApp"
                            return AndroidStoreApp.new
                        when "#microsoft.graph.androidWorkProfileCompliancePolicy"
                            return AndroidWorkProfileCompliancePolicy.new
                        when "#microsoft.graph.androidWorkProfileCustomConfiguration"
                            return AndroidWorkProfileCustomConfiguration.new
                        when "#microsoft.graph.androidWorkProfileGeneralDeviceConfiguration"
                            return AndroidWorkProfileGeneralDeviceConfiguration.new
                        when "#microsoft.graph.anonymousGuestConversationMember"
                            return AnonymousGuestConversationMember.new
                        when "#microsoft.graph.appCatalogs"
                            return AppCatalogs.new
                        when "#microsoft.graph.appConsentApprovalRoute"
                            return AppConsentApprovalRoute.new
                        when "#microsoft.graph.appConsentRequest"
                            return AppConsentRequest.new
                        when "#microsoft.graph.appleDeviceFeaturesConfigurationBase"
                            return AppleDeviceFeaturesConfigurationBase.new
                        when "#microsoft.graph.appleManagedIdentityProvider"
                            return AppleManagedIdentityProvider.new
                        when "#microsoft.graph.applePushNotificationCertificate"
                            return ApplePushNotificationCertificate.new
                        when "#microsoft.graph.application"
                            return Application.new
                        when "#microsoft.graph.applicationTemplate"
                            return ApplicationTemplate.new
                        when "#microsoft.graph.appLogCollectionRequest"
                            return AppLogCollectionRequest.new
                        when "#microsoft.graph.appManagementPolicy"
                            return AppManagementPolicy.new
                        when "#microsoft.graph.appRoleAssignment"
                            return AppRoleAssignment.new
                        when "#microsoft.graph.approval"
                            return Approval.new
                        when "#microsoft.graph.approvalStage"
                            return ApprovalStage.new
                        when "#microsoft.graph.appScope"
                            return AppScope.new
                        when "#microsoft.graph.associatedTeamInfo"
                            return AssociatedTeamInfo.new
                        when "#microsoft.graph.attachment"
                            return Attachment.new
                        when "#microsoft.graph.attachmentBase"
                            return AttachmentBase.new
                        when "#microsoft.graph.attachmentSession"
                            return AttachmentSession.new
                        when "#microsoft.graph.attackSimulationRoot"
                            return AttackSimulationRoot.new
                        when "#microsoft.graph.attendanceRecord"
                            return AttendanceRecord.new
                        when "#microsoft.graph.attributeMappingFunctionSchema"
                            return AttributeMappingFunctionSchema.new
                        when "#microsoft.graph.attributeSet"
                            return AttributeSet.new
                        when "#microsoft.graph.audioRoutingGroup"
                            return AudioRoutingGroup.new
                        when "#microsoft.graph.auditEvent"
                            return AuditEvent.new
                        when "#microsoft.graph.auditLogRoot"
                            return AuditLogRoot.new
                        when "#microsoft.graph.authentication"
                            return Authentication.new
                        when "#microsoft.graph.authenticationCombinationConfiguration"
                            return AuthenticationCombinationConfiguration.new
                        when "#microsoft.graph.authenticationContextClassReference"
                            return AuthenticationContextClassReference.new
                        when "#microsoft.graph.authenticationFlowsPolicy"
                            return AuthenticationFlowsPolicy.new
                        when "#microsoft.graph.authenticationMethod"
                            return AuthenticationMethod.new
                        when "#microsoft.graph.authenticationMethodConfiguration"
                            return AuthenticationMethodConfiguration.new
                        when "#microsoft.graph.authenticationMethodModeDetail"
                            return AuthenticationMethodModeDetail.new
                        when "#microsoft.graph.authenticationMethodsPolicy"
                            return AuthenticationMethodsPolicy.new
                        when "#microsoft.graph.authenticationMethodsRoot"
                            return AuthenticationMethodsRoot.new
                        when "#microsoft.graph.authenticationMethodTarget"
                            return AuthenticationMethodTarget.new
                        when "#microsoft.graph.authenticationStrengthPolicy"
                            return AuthenticationStrengthPolicy.new
                        when "#microsoft.graph.authenticationStrengthRoot"
                            return AuthenticationStrengthRoot.new
                        when "#microsoft.graph.authoredNote"
                            return AuthoredNote.new
                        when "#microsoft.graph.authorizationPolicy"
                            return AuthorizationPolicy.new
                        when "#microsoft.graph.azureCommunicationServicesUserConversationMember"
                            return AzureCommunicationServicesUserConversationMember.new
                        when "#microsoft.graph.b2xIdentityUserFlow"
                            return B2xIdentityUserFlow.new
                        when "#microsoft.graph.baseItem"
                            return BaseItem.new
                        when "#microsoft.graph.baseItemVersion"
                            return BaseItemVersion.new
                        when "#microsoft.graph.bitlocker"
                            return Bitlocker.new
                        when "#microsoft.graph.bitlockerRecoveryKey"
                            return BitlockerRecoveryKey.new
                        when "#microsoft.graph.bookingAppointment"
                            return BookingAppointment.new
                        when "#microsoft.graph.bookingBusiness"
                            return BookingBusiness.new
                        when "#microsoft.graph.bookingCurrency"
                            return BookingCurrency.new
                        when "#microsoft.graph.bookingCustomer"
                            return BookingCustomer.new
                        when "#microsoft.graph.bookingCustomerBase"
                            return BookingCustomerBase.new
                        when "#microsoft.graph.bookingCustomQuestion"
                            return BookingCustomQuestion.new
                        when "#microsoft.graph.bookingService"
                            return BookingService.new
                        when "#microsoft.graph.bookingStaffMember"
                            return BookingStaffMember.new
                        when "#microsoft.graph.bookingStaffMemberBase"
                            return BookingStaffMemberBase.new
                        when "#microsoft.graph.browserSharedCookie"
                            return BrowserSharedCookie.new
                        when "#microsoft.graph.browserSite"
                            return BrowserSite.new
                        when "#microsoft.graph.browserSiteList"
                            return BrowserSiteList.new
                        when "#microsoft.graph.builtInIdentityProvider"
                            return BuiltInIdentityProvider.new
                        when "#microsoft.graph.calendar"
                            return Calendar.new
                        when "#microsoft.graph.calendarGroup"
                            return CalendarGroup.new
                        when "#microsoft.graph.calendarPermission"
                            return CalendarPermission.new
                        when "#microsoft.graph.calendarSharingMessage"
                            return CalendarSharingMessage.new
                        when "#microsoft.graph.call"
                            return Call.new
                        when "#microsoft.graph.callRecords.callRecord"
                            return CallRecordsCallRecord.new
                        when "#microsoft.graph.callRecords.segment"
                            return CallRecordsSegment.new
                        when "#microsoft.graph.callRecords.session"
                            return CallRecordsSession.new
                        when "#microsoft.graph.cancelMediaProcessingOperation"
                            return CancelMediaProcessingOperation.new
                        when "#microsoft.graph.certificateBasedAuthConfiguration"
                            return CertificateBasedAuthConfiguration.new
                        when "#microsoft.graph.changeTrackedEntity"
                            return ChangeTrackedEntity.new
                        when "#microsoft.graph.channel"
                            return Channel.new
                        when "#microsoft.graph.chat"
                            return Chat.new
                        when "#microsoft.graph.chatMessage"
                            return ChatMessage.new
                        when "#microsoft.graph.chatMessageHostedContent"
                            return ChatMessageHostedContent.new
                        when "#microsoft.graph.chatMessageInfo"
                            return ChatMessageInfo.new
                        when "#microsoft.graph.checklistItem"
                            return ChecklistItem.new
                        when "#microsoft.graph.claimsMappingPolicy"
                            return ClaimsMappingPolicy.new
                        when "#microsoft.graph.columnDefinition"
                            return ColumnDefinition.new
                        when "#microsoft.graph.columnLink"
                            return ColumnLink.new
                        when "#microsoft.graph.commsOperation"
                            return CommsOperation.new
                        when "#microsoft.graph.complianceManagementPartner"
                            return ComplianceManagementPartner.new
                        when "#microsoft.graph.conditionalAccessPolicy"
                            return ConditionalAccessPolicy.new
                        when "#microsoft.graph.conditionalAccessRoot"
                            return ConditionalAccessRoot.new
                        when "#microsoft.graph.conditionalAccessTemplate"
                            return ConditionalAccessTemplate.new
                        when "#microsoft.graph.connectedOrganization"
                            return ConnectedOrganization.new
                        when "#microsoft.graph.contact"
                            return Contact.new
                        when "#microsoft.graph.contactFolder"
                            return ContactFolder.new
                        when "#microsoft.graph.contentSharingSession"
                            return ContentSharingSession.new
                        when "#microsoft.graph.contentType"
                            return ContentType.new
                        when "#microsoft.graph.contract"
                            return Contract.new
                        when "#microsoft.graph.conversation"
                            return Conversation.new
                        when "#microsoft.graph.conversationMember"
                            return ConversationMember.new
                        when "#microsoft.graph.conversationThread"
                            return ConversationThread.new
                        when "#microsoft.graph.countryNamedLocation"
                            return CountryNamedLocation.new
                        when "#microsoft.graph.crossTenantAccessPolicy"
                            return CrossTenantAccessPolicy.new
                        when "#microsoft.graph.crossTenantAccessPolicyConfigurationDefault"
                            return CrossTenantAccessPolicyConfigurationDefault.new
                        when "#microsoft.graph.customCalloutExtension"
                            return CustomCalloutExtension.new
                        when "#microsoft.graph.customExtensionStageSetting"
                            return CustomExtensionStageSetting.new
                        when "#microsoft.graph.customSecurityAttributeDefinition"
                            return CustomSecurityAttributeDefinition.new
                        when "#microsoft.graph.dataPolicyOperation"
                            return DataPolicyOperation.new
                        when "#microsoft.graph.defaultManagedAppProtection"
                            return DefaultManagedAppProtection.new
                        when "#microsoft.graph.delegatedAdminAccessAssignment"
                            return DelegatedAdminAccessAssignment.new
                        when "#microsoft.graph.delegatedAdminCustomer"
                            return DelegatedAdminCustomer.new
                        when "#microsoft.graph.delegatedAdminRelationship"
                            return DelegatedAdminRelationship.new
                        when "#microsoft.graph.delegatedAdminRelationshipOperation"
                            return DelegatedAdminRelationshipOperation.new
                        when "#microsoft.graph.delegatedAdminRelationshipRequest"
                            return DelegatedAdminRelationshipRequest.new
                        when "#microsoft.graph.delegatedAdminServiceManagementDetail"
                            return DelegatedAdminServiceManagementDetail.new
                        when "#microsoft.graph.delegatedPermissionClassification"
                            return DelegatedPermissionClassification.new
                        when "#microsoft.graph.deletedItemContainer"
                            return DeletedItemContainer.new
                        when "#microsoft.graph.deletedTeam"
                            return DeletedTeam.new
                        when "#microsoft.graph.detectedApp"
                            return DetectedApp.new
                        when "#microsoft.graph.device"
                            return Device.new
                        when "#microsoft.graph.deviceAndAppManagementRoleAssignment"
                            return DeviceAndAppManagementRoleAssignment.new
                        when "#microsoft.graph.deviceAndAppManagementRoleDefinition"
                            return DeviceAndAppManagementRoleDefinition.new
                        when "#microsoft.graph.deviceAppManagement"
                            return DeviceAppManagement.new
                        when "#microsoft.graph.deviceCategory"
                            return DeviceCategory.new
                        when "#microsoft.graph.deviceComplianceActionItem"
                            return DeviceComplianceActionItem.new
                        when "#microsoft.graph.deviceComplianceDeviceOverview"
                            return DeviceComplianceDeviceOverview.new
                        when "#microsoft.graph.deviceComplianceDeviceStatus"
                            return DeviceComplianceDeviceStatus.new
                        when "#microsoft.graph.deviceCompliancePolicy"
                            return DeviceCompliancePolicy.new
                        when "#microsoft.graph.deviceCompliancePolicyAssignment"
                            return DeviceCompliancePolicyAssignment.new
                        when "#microsoft.graph.deviceCompliancePolicyDeviceStateSummary"
                            return DeviceCompliancePolicyDeviceStateSummary.new
                        when "#microsoft.graph.deviceCompliancePolicySettingStateSummary"
                            return DeviceCompliancePolicySettingStateSummary.new
                        when "#microsoft.graph.deviceCompliancePolicyState"
                            return DeviceCompliancePolicyState.new
                        when "#microsoft.graph.deviceComplianceScheduledActionForRule"
                            return DeviceComplianceScheduledActionForRule.new
                        when "#microsoft.graph.deviceComplianceSettingState"
                            return DeviceComplianceSettingState.new
                        when "#microsoft.graph.deviceComplianceUserOverview"
                            return DeviceComplianceUserOverview.new
                        when "#microsoft.graph.deviceComplianceUserStatus"
                            return DeviceComplianceUserStatus.new
                        when "#microsoft.graph.deviceConfiguration"
                            return DeviceConfiguration.new
                        when "#microsoft.graph.deviceConfigurationAssignment"
                            return DeviceConfigurationAssignment.new
                        when "#microsoft.graph.deviceConfigurationDeviceOverview"
                            return DeviceConfigurationDeviceOverview.new
                        when "#microsoft.graph.deviceConfigurationDeviceStateSummary"
                            return DeviceConfigurationDeviceStateSummary.new
                        when "#microsoft.graph.deviceConfigurationDeviceStatus"
                            return DeviceConfigurationDeviceStatus.new
                        when "#microsoft.graph.deviceConfigurationState"
                            return DeviceConfigurationState.new
                        when "#microsoft.graph.deviceConfigurationUserOverview"
                            return DeviceConfigurationUserOverview.new
                        when "#microsoft.graph.deviceConfigurationUserStatus"
                            return DeviceConfigurationUserStatus.new
                        when "#microsoft.graph.deviceEnrollmentConfiguration"
                            return DeviceEnrollmentConfiguration.new
                        when "#microsoft.graph.deviceEnrollmentLimitConfiguration"
                            return DeviceEnrollmentLimitConfiguration.new
                        when "#microsoft.graph.deviceEnrollmentPlatformRestrictionsConfiguration"
                            return DeviceEnrollmentPlatformRestrictionsConfiguration.new
                        when "#microsoft.graph.deviceEnrollmentWindowsHelloForBusinessConfiguration"
                            return DeviceEnrollmentWindowsHelloForBusinessConfiguration.new
                        when "#microsoft.graph.deviceInstallState"
                            return DeviceInstallState.new
                        when "#microsoft.graph.deviceLogCollectionResponse"
                            return DeviceLogCollectionResponse.new
                        when "#microsoft.graph.deviceManagement"
                            return DeviceManagement.new
                        when "#microsoft.graph.deviceManagementExchangeConnector"
                            return DeviceManagementExchangeConnector.new
                        when "#microsoft.graph.deviceManagementExportJob"
                            return DeviceManagementExportJob.new
                        when "#microsoft.graph.deviceManagementPartner"
                            return DeviceManagementPartner.new
                        when "#microsoft.graph.deviceManagementReports"
                            return DeviceManagementReports.new
                        when "#microsoft.graph.deviceManagementTroubleshootingEvent"
                            return DeviceManagementTroubleshootingEvent.new
                        when "#microsoft.graph.directory"
                            return Directory.new
                        when "#microsoft.graph.directoryAudit"
                            return DirectoryAudit.new
                        when "#microsoft.graph.directoryDefinition"
                            return DirectoryDefinition.new
                        when "#microsoft.graph.directoryObject"
                            return DirectoryObject.new
                        when "#microsoft.graph.directoryObjectPartnerReference"
                            return DirectoryObjectPartnerReference.new
                        when "#microsoft.graph.directoryRole"
                            return DirectoryRole.new
                        when "#microsoft.graph.directoryRoleTemplate"
                            return DirectoryRoleTemplate.new
                        when "#microsoft.graph.documentSetVersion"
                            return DocumentSetVersion.new
                        when "#microsoft.graph.domain"
                            return Domain.new
                        when "#microsoft.graph.domainDnsCnameRecord"
                            return DomainDnsCnameRecord.new
                        when "#microsoft.graph.domainDnsMxRecord"
                            return DomainDnsMxRecord.new
                        when "#microsoft.graph.domainDnsRecord"
                            return DomainDnsRecord.new
                        when "#microsoft.graph.domainDnsSrvRecord"
                            return DomainDnsSrvRecord.new
                        when "#microsoft.graph.domainDnsTxtRecord"
                            return DomainDnsTxtRecord.new
                        when "#microsoft.graph.domainDnsUnavailableRecord"
                            return DomainDnsUnavailableRecord.new
                        when "#microsoft.graph.drive"
                            return Drive.new
                        when "#microsoft.graph.driveItem"
                            return DriveItem.new
                        when "#microsoft.graph.driveItemVersion"
                            return DriveItemVersion.new
                        when "#microsoft.graph.eBookInstallSummary"
                            return EBookInstallSummary.new
                        when "#microsoft.graph.edge"
                            return Edge.new
                        when "#microsoft.graph.editionUpgradeConfiguration"
                            return EditionUpgradeConfiguration.new
                        when "#microsoft.graph.educationAssignment"
                            return EducationAssignment.new
                        when "#microsoft.graph.educationAssignmentDefaults"
                            return EducationAssignmentDefaults.new
                        when "#microsoft.graph.educationAssignmentResource"
                            return EducationAssignmentResource.new
                        when "#microsoft.graph.educationAssignmentSettings"
                            return EducationAssignmentSettings.new
                        when "#microsoft.graph.educationCategory"
                            return EducationCategory.new
                        when "#microsoft.graph.educationClass"
                            return EducationClass.new
                        when "#microsoft.graph.educationFeedbackOutcome"
                            return EducationFeedbackOutcome.new
                        when "#microsoft.graph.educationFeedbackResourceOutcome"
                            return EducationFeedbackResourceOutcome.new
                        when "#microsoft.graph.educationOrganization"
                            return EducationOrganization.new
                        when "#microsoft.graph.educationOutcome"
                            return EducationOutcome.new
                        when "#microsoft.graph.educationPointsOutcome"
                            return EducationPointsOutcome.new
                        when "#microsoft.graph.educationRubric"
                            return EducationRubric.new
                        when "#microsoft.graph.educationRubricOutcome"
                            return EducationRubricOutcome.new
                        when "#microsoft.graph.educationSchool"
                            return EducationSchool.new
                        when "#microsoft.graph.educationSubmission"
                            return EducationSubmission.new
                        when "#microsoft.graph.educationSubmissionResource"
                            return EducationSubmissionResource.new
                        when "#microsoft.graph.educationUser"
                            return EducationUser.new
                        when "#microsoft.graph.emailAuthenticationMethod"
                            return EmailAuthenticationMethod.new
                        when "#microsoft.graph.emailAuthenticationMethodConfiguration"
                            return EmailAuthenticationMethodConfiguration.new
                        when "#microsoft.graph.emailFileAssessmentRequest"
                            return EmailFileAssessmentRequest.new
                        when "#microsoft.graph.employeeExperienceUser"
                            return EmployeeExperienceUser.new
                        when "#microsoft.graph.endpoint"
                            return Endpoint.new
                        when "#microsoft.graph.enrollmentConfigurationAssignment"
                            return EnrollmentConfigurationAssignment.new
                        when "#microsoft.graph.enrollmentTroubleshootingEvent"
                            return EnrollmentTroubleshootingEvent.new
                        when "#microsoft.graph.enterpriseCodeSigningCertificate"
                            return EnterpriseCodeSigningCertificate.new
                        when "#microsoft.graph.entitlementManagement"
                            return EntitlementManagement.new
                        when "#microsoft.graph.entitlementManagementSettings"
                            return EntitlementManagementSettings.new
                        when "#microsoft.graph.event"
                            return Event.new
                        when "#microsoft.graph.eventMessage"
                            return EventMessage.new
                        when "#microsoft.graph.eventMessageRequest"
                            return EventMessageRequest.new
                        when "#microsoft.graph.eventMessageResponse"
                            return EventMessageResponse.new
                        when "#microsoft.graph.extension"
                            return Extension.new
                        when "#microsoft.graph.extensionProperty"
                            return ExtensionProperty.new
                        when "#microsoft.graph.externalConnectors.connectionOperation"
                            return ExternalConnectorsConnectionOperation.new
                        when "#microsoft.graph.externalConnectors.externalActivity"
                            return ExternalConnectorsExternalActivity.new
                        when "#microsoft.graph.externalConnectors.externalActivityResult"
                            return ExternalConnectorsExternalActivityResult.new
                        when "#microsoft.graph.externalConnectors.externalConnection"
                            return ExternalConnectorsExternalConnection.new
                        when "#microsoft.graph.externalConnectors.externalGroup"
                            return ExternalConnectorsExternalGroup.new
                        when "#microsoft.graph.externalConnectors.externalItem"
                            return ExternalConnectorsExternalItem.new
                        when "#microsoft.graph.externalConnectors.identity"
                            return ExternalConnectorsIdentity.new
                        when "#microsoft.graph.externalConnectors.schema"
                            return ExternalConnectorsSchema.new
                        when "#microsoft.graph.externalDomainName"
                            return ExternalDomainName.new
                        when "#microsoft.graph.featureRolloutPolicy"
                            return FeatureRolloutPolicy.new
                        when "#microsoft.graph.federatedIdentityCredential"
                            return FederatedIdentityCredential.new
                        when "#microsoft.graph.fido2AuthenticationMethod"
                            return Fido2AuthenticationMethod.new
                        when "#microsoft.graph.fido2AuthenticationMethodConfiguration"
                            return Fido2AuthenticationMethodConfiguration.new
                        when "#microsoft.graph.fido2CombinationConfiguration"
                            return Fido2CombinationConfiguration.new
                        when "#microsoft.graph.fieldValueSet"
                            return FieldValueSet.new
                        when "#microsoft.graph.fileAssessmentRequest"
                            return FileAssessmentRequest.new
                        when "#microsoft.graph.fileAttachment"
                            return FileAttachment.new
                        when "#microsoft.graph.filterOperatorSchema"
                            return FilterOperatorSchema.new
                        when "#microsoft.graph.governanceInsight"
                            return GovernanceInsight.new
                        when "#microsoft.graph.group"
                            return Group.new
                        when "#microsoft.graph.groupLifecyclePolicy"
                            return GroupLifecyclePolicy.new
                        when "#microsoft.graph.groupSetting"
                            return GroupSetting.new
                        when "#microsoft.graph.groupSettingTemplate"
                            return GroupSettingTemplate.new
                        when "#microsoft.graph.homeRealmDiscoveryPolicy"
                            return HomeRealmDiscoveryPolicy.new
                        when "#microsoft.graph.identityApiConnector"
                            return IdentityApiConnector.new
                        when "#microsoft.graph.identityBuiltInUserFlowAttribute"
                            return IdentityBuiltInUserFlowAttribute.new
                        when "#microsoft.graph.identityContainer"
                            return IdentityContainer.new
                        when "#microsoft.graph.identityCustomUserFlowAttribute"
                            return IdentityCustomUserFlowAttribute.new
                        when "#microsoft.graph.identityGovernance.customTaskExtension"
                            return IdentityGovernanceCustomTaskExtension.new
                        when "#microsoft.graph.identityGovernance.lifecycleManagementSettings"
                            return IdentityGovernanceLifecycleManagementSettings.new
                        when "#microsoft.graph.identityGovernance.lifecycleWorkflowsContainer"
                            return IdentityGovernanceLifecycleWorkflowsContainer.new
                        when "#microsoft.graph.identityGovernance.run"
                            return IdentityGovernanceRun.new
                        when "#microsoft.graph.identityGovernance.task"
                            return IdentityGovernanceTask.new
                        when "#microsoft.graph.identityGovernance.taskDefinition"
                            return IdentityGovernanceTaskDefinition.new
                        when "#microsoft.graph.identityGovernance.taskProcessingResult"
                            return IdentityGovernanceTaskProcessingResult.new
                        when "#microsoft.graph.identityGovernance.taskReport"
                            return IdentityGovernanceTaskReport.new
                        when "#microsoft.graph.identityGovernance.userProcessingResult"
                            return IdentityGovernanceUserProcessingResult.new
                        when "#microsoft.graph.identityGovernance.workflowTemplate"
                            return IdentityGovernanceWorkflowTemplate.new
                        when "#microsoft.graph.identityProvider"
                            return IdentityProvider.new
                        when "#microsoft.graph.identityProviderBase"
                            return IdentityProviderBase.new
                        when "#microsoft.graph.identitySecurityDefaultsEnforcementPolicy"
                            return IdentitySecurityDefaultsEnforcementPolicy.new
                        when "#microsoft.graph.identityUserFlow"
                            return IdentityUserFlow.new
                        when "#microsoft.graph.identityUserFlowAttribute"
                            return IdentityUserFlowAttribute.new
                        when "#microsoft.graph.identityUserFlowAttributeAssignment"
                            return IdentityUserFlowAttributeAssignment.new
                        when "#microsoft.graph.importedWindowsAutopilotDeviceIdentity"
                            return ImportedWindowsAutopilotDeviceIdentity.new
                        when "#microsoft.graph.importedWindowsAutopilotDeviceIdentityUpload"
                            return ImportedWindowsAutopilotDeviceIdentityUpload.new
                        when "#microsoft.graph.inferenceClassification"
                            return InferenceClassification.new
                        when "#microsoft.graph.inferenceClassificationOverride"
                            return InferenceClassificationOverride.new
                        when "#microsoft.graph.internalDomainFederation"
                            return InternalDomainFederation.new
                        when "#microsoft.graph.internetExplorerMode"
                            return InternetExplorerMode.new
                        when "#microsoft.graph.invitation"
                            return Invitation.new
                        when "#microsoft.graph.inviteParticipantsOperation"
                            return InviteParticipantsOperation.new
                        when "#microsoft.graph.iosCertificateProfile"
                            return IosCertificateProfile.new
                        when "#microsoft.graph.iosCompliancePolicy"
                            return IosCompliancePolicy.new
                        when "#microsoft.graph.iosCustomConfiguration"
                            return IosCustomConfiguration.new
                        when "#microsoft.graph.iosDeviceFeaturesConfiguration"
                            return IosDeviceFeaturesConfiguration.new
                        when "#microsoft.graph.iosGeneralDeviceConfiguration"
                            return IosGeneralDeviceConfiguration.new
                        when "#microsoft.graph.iosiPadOSWebClip"
                            return IosiPadOSWebClip.new
                        when "#microsoft.graph.iosLobApp"
                            return IosLobApp.new
                        when "#microsoft.graph.iosLobAppProvisioningConfigurationAssignment"
                            return IosLobAppProvisioningConfigurationAssignment.new
                        when "#microsoft.graph.iosManagedAppProtection"
                            return IosManagedAppProtection.new
                        when "#microsoft.graph.iosManagedAppRegistration"
                            return IosManagedAppRegistration.new
                        when "#microsoft.graph.iosMobileAppConfiguration"
                            return IosMobileAppConfiguration.new
                        when "#microsoft.graph.iosStoreApp"
                            return IosStoreApp.new
                        when "#microsoft.graph.iosUpdateConfiguration"
                            return IosUpdateConfiguration.new
                        when "#microsoft.graph.iosUpdateDeviceStatus"
                            return IosUpdateDeviceStatus.new
                        when "#microsoft.graph.iosVppApp"
                            return IosVppApp.new
                        when "#microsoft.graph.iosVppEBook"
                            return IosVppEBook.new
                        when "#microsoft.graph.iosVppEBookAssignment"
                            return IosVppEBookAssignment.new
                        when "#microsoft.graph.ipNamedLocation"
                            return IpNamedLocation.new
                        when "#microsoft.graph.itemActivity"
                            return ItemActivity.new
                        when "#microsoft.graph.itemActivityStat"
                            return ItemActivityStat.new
                        when "#microsoft.graph.itemAnalytics"
                            return ItemAnalytics.new
                        when "#microsoft.graph.itemAttachment"
                            return ItemAttachment.new
                        when "#microsoft.graph.learningAssignment"
                            return LearningAssignment.new
                        when "#microsoft.graph.learningContent"
                            return LearningContent.new
                        when "#microsoft.graph.learningCourseActivity"
                            return LearningCourseActivity.new
                        when "#microsoft.graph.learningProvider"
                            return LearningProvider.new
                        when "#microsoft.graph.learningSelfInitiatedCourse"
                            return LearningSelfInitiatedCourse.new
                        when "#microsoft.graph.licenseDetails"
                            return LicenseDetails.new
                        when "#microsoft.graph.linkedResource"
                            return LinkedResource.new
                        when "#microsoft.graph.list"
                            return List.new
                        when "#microsoft.graph.listItem"
                            return ListItem.new
                        when "#microsoft.graph.listItemVersion"
                            return ListItemVersion.new
                        when "#microsoft.graph.localizedNotificationMessage"
                            return LocalizedNotificationMessage.new
                        when "#microsoft.graph.longRunningOperation"
                            return LongRunningOperation.new
                        when "#microsoft.graph.macOSCompliancePolicy"
                            return MacOSCompliancePolicy.new
                        when "#microsoft.graph.macOSCustomConfiguration"
                            return MacOSCustomConfiguration.new
                        when "#microsoft.graph.macOSDeviceFeaturesConfiguration"
                            return MacOSDeviceFeaturesConfiguration.new
                        when "#microsoft.graph.macOSGeneralDeviceConfiguration"
                            return MacOSGeneralDeviceConfiguration.new
                        when "#microsoft.graph.macOSLobApp"
                            return MacOSLobApp.new
                        when "#microsoft.graph.macOSMicrosoftDefenderApp"
                            return MacOSMicrosoftDefenderApp.new
                        when "#microsoft.graph.macOSMicrosoftEdgeApp"
                            return MacOSMicrosoftEdgeApp.new
                        when "#microsoft.graph.macOSOfficeSuiteApp"
                            return MacOSOfficeSuiteApp.new
                        when "#microsoft.graph.mailAssessmentRequest"
                            return MailAssessmentRequest.new
                        when "#microsoft.graph.mailFolder"
                            return MailFolder.new
                        when "#microsoft.graph.mailSearchFolder"
                            return MailSearchFolder.new
                        when "#microsoft.graph.malwareStateForWindowsDevice"
                            return MalwareStateForWindowsDevice.new
                        when "#microsoft.graph.managedAndroidLobApp"
                            return ManagedAndroidLobApp.new
                        when "#microsoft.graph.managedAndroidStoreApp"
                            return ManagedAndroidStoreApp.new
                        when "#microsoft.graph.managedApp"
                            return ManagedApp.new
                        when "#microsoft.graph.managedAppConfiguration"
                            return ManagedAppConfiguration.new
                        when "#microsoft.graph.managedAppOperation"
                            return ManagedAppOperation.new
                        when "#microsoft.graph.managedAppPolicy"
                            return ManagedAppPolicy.new
                        when "#microsoft.graph.managedAppPolicyDeploymentSummary"
                            return ManagedAppPolicyDeploymentSummary.new
                        when "#microsoft.graph.managedAppProtection"
                            return ManagedAppProtection.new
                        when "#microsoft.graph.managedAppRegistration"
                            return ManagedAppRegistration.new
                        when "#microsoft.graph.managedAppStatus"
                            return ManagedAppStatus.new
                        when "#microsoft.graph.managedAppStatusRaw"
                            return ManagedAppStatusRaw.new
                        when "#microsoft.graph.managedDevice"
                            return ManagedDevice.new
                        when "#microsoft.graph.managedDeviceMobileAppConfiguration"
                            return ManagedDeviceMobileAppConfiguration.new
                        when "#microsoft.graph.managedDeviceMobileAppConfigurationAssignment"
                            return ManagedDeviceMobileAppConfigurationAssignment.new
                        when "#microsoft.graph.managedDeviceMobileAppConfigurationDeviceStatus"
                            return ManagedDeviceMobileAppConfigurationDeviceStatus.new
                        when "#microsoft.graph.managedDeviceMobileAppConfigurationDeviceSummary"
                            return ManagedDeviceMobileAppConfigurationDeviceSummary.new
                        when "#microsoft.graph.managedDeviceMobileAppConfigurationUserStatus"
                            return ManagedDeviceMobileAppConfigurationUserStatus.new
                        when "#microsoft.graph.managedDeviceMobileAppConfigurationUserSummary"
                            return ManagedDeviceMobileAppConfigurationUserSummary.new
                        when "#microsoft.graph.managedDeviceOverview"
                            return ManagedDeviceOverview.new
                        when "#microsoft.graph.managedEBook"
                            return ManagedEBook.new
                        when "#microsoft.graph.managedEBookAssignment"
                            return ManagedEBookAssignment.new
                        when "#microsoft.graph.managedIOSLobApp"
                            return ManagedIOSLobApp.new
                        when "#microsoft.graph.managedIOSStoreApp"
                            return ManagedIOSStoreApp.new
                        when "#microsoft.graph.managedMobileApp"
                            return ManagedMobileApp.new
                        when "#microsoft.graph.managedMobileLobApp"
                            return ManagedMobileLobApp.new
                        when "#microsoft.graph.mdmWindowsInformationProtectionPolicy"
                            return MdmWindowsInformationProtectionPolicy.new
                        when "#microsoft.graph.meetingAttendanceReport"
                            return MeetingAttendanceReport.new
                        when "#microsoft.graph.membershipOutlierInsight"
                            return MembershipOutlierInsight.new
                        when "#microsoft.graph.message"
                            return Message.new
                        when "#microsoft.graph.messageRule"
                            return MessageRule.new
                        when "#microsoft.graph.microsoftAccountUserConversationMember"
                            return MicrosoftAccountUserConversationMember.new
                        when "#microsoft.graph.microsoftAuthenticatorAuthenticationMethod"
                            return MicrosoftAuthenticatorAuthenticationMethod.new
                        when "#microsoft.graph.microsoftAuthenticatorAuthenticationMethodConfiguration"
                            return MicrosoftAuthenticatorAuthenticationMethodConfiguration.new
                        when "#microsoft.graph.microsoftAuthenticatorAuthenticationMethodTarget"
                            return MicrosoftAuthenticatorAuthenticationMethodTarget.new
                        when "#microsoft.graph.microsoftStoreForBusinessApp"
                            return MicrosoftStoreForBusinessApp.new
                        when "#microsoft.graph.mobileApp"
                            return MobileApp.new
                        when "#microsoft.graph.mobileAppAssignment"
                            return MobileAppAssignment.new
                        when "#microsoft.graph.mobileAppCategory"
                            return MobileAppCategory.new
                        when "#microsoft.graph.mobileAppContent"
                            return MobileAppContent.new
                        when "#microsoft.graph.mobileAppContentFile"
                            return MobileAppContentFile.new
                        when "#microsoft.graph.mobileAppTroubleshootingEvent"
                            return MobileAppTroubleshootingEvent.new
                        when "#microsoft.graph.mobileContainedApp"
                            return MobileContainedApp.new
                        when "#microsoft.graph.mobileLobApp"
                            return MobileLobApp.new
                        when "#microsoft.graph.mobileThreatDefenseConnector"
                            return MobileThreatDefenseConnector.new
                        when "#microsoft.graph.multiValueLegacyExtendedProperty"
                            return MultiValueLegacyExtendedProperty.new
                        when "#microsoft.graph.muteParticipantOperation"
                            return MuteParticipantOperation.new
                        when "#microsoft.graph.namedLocation"
                            return NamedLocation.new
                        when "#microsoft.graph.notebook"
                            return Notebook.new
                        when "#microsoft.graph.notificationMessageTemplate"
                            return NotificationMessageTemplate.new
                        when "#microsoft.graph.oAuth2PermissionGrant"
                            return OAuth2PermissionGrant.new
                        when "#microsoft.graph.offerShiftRequest"
                            return OfferShiftRequest.new
                        when "#microsoft.graph.officeGraphInsights"
                            return OfficeGraphInsights.new
                        when "#microsoft.graph.onenote"
                            return Onenote.new
                        when "#microsoft.graph.onenoteEntityBaseModel"
                            return OnenoteEntityBaseModel.new
                        when "#microsoft.graph.onenoteEntityHierarchyModel"
                            return OnenoteEntityHierarchyModel.new
                        when "#microsoft.graph.onenoteEntitySchemaObjectModel"
                            return OnenoteEntitySchemaObjectModel.new
                        when "#microsoft.graph.onenoteOperation"
                            return OnenoteOperation.new
                        when "#microsoft.graph.onenotePage"
                            return OnenotePage.new
                        when "#microsoft.graph.onenoteResource"
                            return OnenoteResource.new
                        when "#microsoft.graph.onenoteSection"
                            return OnenoteSection.new
                        when "#microsoft.graph.onlineMeeting"
                            return OnlineMeeting.new
                        when "#microsoft.graph.onPremisesConditionalAccessSettings"
                            return OnPremisesConditionalAccessSettings.new
                        when "#microsoft.graph.onPremisesDirectorySynchronization"
                            return OnPremisesDirectorySynchronization.new
                        when "#microsoft.graph.openShift"
                            return OpenShift.new
                        when "#microsoft.graph.openShiftChangeRequest"
                            return OpenShiftChangeRequest.new
                        when "#microsoft.graph.openTypeExtension"
                            return OpenTypeExtension.new
                        when "#microsoft.graph.operation"
                            return Operation.new
                        when "#microsoft.graph.organization"
                            return Organization.new
                        when "#microsoft.graph.organizationalBranding"
                            return OrganizationalBranding.new
                        when "#microsoft.graph.organizationalBrandingLocalization"
                            return OrganizationalBrandingLocalization.new
                        when "#microsoft.graph.organizationalBrandingProperties"
                            return OrganizationalBrandingProperties.new
                        when "#microsoft.graph.orgContact"
                            return OrgContact.new
                        when "#microsoft.graph.outlookCategory"
                            return OutlookCategory.new
                        when "#microsoft.graph.outlookItem"
                            return OutlookItem.new
                        when "#microsoft.graph.outlookUser"
                            return OutlookUser.new
                        when "#microsoft.graph.participant"
                            return Participant.new
                        when "#microsoft.graph.participantJoiningNotification"
                            return ParticipantJoiningNotification.new
                        when "#microsoft.graph.participantLeftNotification"
                            return ParticipantLeftNotification.new
                        when "#microsoft.graph.passwordAuthenticationMethod"
                            return PasswordAuthenticationMethod.new
                        when "#microsoft.graph.permission"
                            return Permission.new
                        when "#microsoft.graph.permissionGrantConditionSet"
                            return PermissionGrantConditionSet.new
                        when "#microsoft.graph.permissionGrantPolicy"
                            return PermissionGrantPolicy.new
                        when "#microsoft.graph.person"
                            return Person.new
                        when "#microsoft.graph.phoneAuthenticationMethod"
                            return PhoneAuthenticationMethod.new
                        when "#microsoft.graph.pinnedChatMessageInfo"
                            return PinnedChatMessageInfo.new
                        when "#microsoft.graph.place"
                            return Place.new
                        when "#microsoft.graph.planner"
                            return Planner.new
                        when "#microsoft.graph.plannerAssignedToTaskBoardTaskFormat"
                            return PlannerAssignedToTaskBoardTaskFormat.new
                        when "#microsoft.graph.plannerBucket"
                            return PlannerBucket.new
                        when "#microsoft.graph.plannerBucketTaskBoardTaskFormat"
                            return PlannerBucketTaskBoardTaskFormat.new
                        when "#microsoft.graph.plannerGroup"
                            return PlannerGroup.new
                        when "#microsoft.graph.plannerPlan"
                            return PlannerPlan.new
                        when "#microsoft.graph.plannerPlanDetails"
                            return PlannerPlanDetails.new
                        when "#microsoft.graph.plannerProgressTaskBoardTaskFormat"
                            return PlannerProgressTaskBoardTaskFormat.new
                        when "#microsoft.graph.plannerTask"
                            return PlannerTask.new
                        when "#microsoft.graph.plannerTaskDetails"
                            return PlannerTaskDetails.new
                        when "#microsoft.graph.plannerUser"
                            return PlannerUser.new
                        when "#microsoft.graph.playPromptOperation"
                            return PlayPromptOperation.new
                        when "#microsoft.graph.policyBase"
                            return PolicyBase.new
                        when "#microsoft.graph.policyRoot"
                            return PolicyRoot.new
                        when "#microsoft.graph.post"
                            return Post.new
                        when "#microsoft.graph.presence"
                            return Presence.new
                        when "#microsoft.graph.printConnector"
                            return PrintConnector.new
                        when "#microsoft.graph.printDocument"
                            return PrintDocument.new
                        when "#microsoft.graph.printer"
                            return Printer.new
                        when "#microsoft.graph.printerBase"
                            return PrinterBase.new
                        when "#microsoft.graph.printerCreateOperation"
                            return PrinterCreateOperation.new
                        when "#microsoft.graph.printerShare"
                            return PrinterShare.new
                        when "#microsoft.graph.printJob"
                            return PrintJob.new
                        when "#microsoft.graph.printOperation"
                            return PrintOperation.new
                        when "#microsoft.graph.printService"
                            return PrintService.new
                        when "#microsoft.graph.printServiceEndpoint"
                            return PrintServiceEndpoint.new
                        when "#microsoft.graph.printTask"
                            return PrintTask.new
                        when "#microsoft.graph.printTaskDefinition"
                            return PrintTaskDefinition.new
                        when "#microsoft.graph.printTaskTrigger"
                            return PrintTaskTrigger.new
                        when "#microsoft.graph.printUsage"
                            return PrintUsage.new
                        when "#microsoft.graph.printUsageByPrinter"
                            return PrintUsageByPrinter.new
                        when "#microsoft.graph.printUsageByUser"
                            return PrintUsageByUser.new
                        when "#microsoft.graph.profilePhoto"
                            return ProfilePhoto.new
                        when "#microsoft.graph.provisioningObjectSummary"
                            return ProvisioningObjectSummary.new
                        when "#microsoft.graph.rbacApplication"
                            return RbacApplication.new
                        when "#microsoft.graph.recordOperation"
                            return RecordOperation.new
                        when "#microsoft.graph.referenceAttachment"
                            return ReferenceAttachment.new
                        when "#microsoft.graph.remoteAssistancePartner"
                            return RemoteAssistancePartner.new
                        when "#microsoft.graph.request"
                            return Request.new
                        when "#microsoft.graph.resourceOperation"
                            return ResourceOperation.new
                        when "#microsoft.graph.resourceSpecificPermissionGrant"
                            return ResourceSpecificPermissionGrant.new
                        when "#microsoft.graph.richLongRunningOperation"
                            return RichLongRunningOperation.new
                        when "#microsoft.graph.riskDetection"
                            return RiskDetection.new
                        when "#microsoft.graph.riskyServicePrincipal"
                            return RiskyServicePrincipal.new
                        when "#microsoft.graph.riskyServicePrincipalHistoryItem"
                            return RiskyServicePrincipalHistoryItem.new
                        when "#microsoft.graph.riskyUser"
                            return RiskyUser.new
                        when "#microsoft.graph.riskyUserHistoryItem"
                            return RiskyUserHistoryItem.new
                        when "#microsoft.graph.roleAssignment"
                            return RoleAssignment.new
                        when "#microsoft.graph.roleDefinition"
                            return RoleDefinition.new
                        when "#microsoft.graph.room"
                            return Room.new
                        when "#microsoft.graph.roomList"
                            return RoomList.new
                        when "#microsoft.graph.samlOrWsFedExternalDomainFederation"
                            return SamlOrWsFedExternalDomainFederation.new
                        when "#microsoft.graph.samlOrWsFedProvider"
                            return SamlOrWsFedProvider.new
                        when "#microsoft.graph.schedule"
                            return Schedule.new
                        when "#microsoft.graph.scheduleChangeRequest"
                            return ScheduleChangeRequest.new
                        when "#microsoft.graph.schedulingGroup"
                            return SchedulingGroup.new
                        when "#microsoft.graph.schemaExtension"
                            return SchemaExtension.new
                        when "#microsoft.graph.scopedRoleMembership"
                            return ScopedRoleMembership.new
                        when "#microsoft.graph.searchEntity"
                            return SearchEntity.new
                        when "#microsoft.graph.sectionGroup"
                            return SectionGroup.new
                        when "#microsoft.graph.secureScore"
                            return SecureScore.new
                        when "#microsoft.graph.secureScoreControlProfile"
                            return SecureScoreControlProfile.new
                        when "#microsoft.graph.security"
                            return SecurityModelModelModelModelModelModelModel.new
                        when "#microsoft.graph.security.alert"
                            return SecurityAlert.new
                        when "#microsoft.graph.security.article"
                            return SecurityArticle.new
                        when "#microsoft.graph.security.articleIndicator"
                            return SecurityArticleIndicator.new
                        when "#microsoft.graph.security.artifact"
                            return SecurityArtifact.new
                        when "#microsoft.graph.security.case"
                            return SecurityCase.new
                        when "#microsoft.graph.security.caseOperation"
                            return SecurityCaseOperation.new
                        when "#microsoft.graph.security.casesRoot"
                            return SecurityCasesRoot.new
                        when "#microsoft.graph.security.dataSet"
                            return SecurityDataSet.new
                        when "#microsoft.graph.security.dataSource"
                            return SecurityDataSource.new
                        when "#microsoft.graph.security.dataSourceContainer"
                            return SecurityDataSourceContainer.new
                        when "#microsoft.graph.security.ediscoveryAddToReviewSetOperation"
                            return SecurityEdiscoveryAddToReviewSetOperation.new
                        when "#microsoft.graph.security.ediscoveryCase"
                            return SecurityEdiscoveryCase.new
                        when "#microsoft.graph.security.ediscoveryCaseSettings"
                            return SecurityEdiscoveryCaseSettings.new
                        when "#microsoft.graph.security.ediscoveryCustodian"
                            return SecurityEdiscoveryCustodian.new
                        when "#microsoft.graph.security.ediscoveryEstimateOperation"
                            return SecurityEdiscoveryEstimateOperation.new
                        when "#microsoft.graph.security.ediscoveryExportOperation"
                            return SecurityEdiscoveryExportOperation.new
                        when "#microsoft.graph.security.ediscoveryHoldOperation"
                            return SecurityEdiscoveryHoldOperation.new
                        when "#microsoft.graph.security.ediscoveryIndexOperation"
                            return SecurityEdiscoveryIndexOperation.new
                        when "#microsoft.graph.security.ediscoveryNoncustodialDataSource"
                            return SecurityEdiscoveryNoncustodialDataSource.new
                        when "#microsoft.graph.security.ediscoveryPurgeDataOperation"
                            return SecurityEdiscoveryPurgeDataOperation.new
                        when "#microsoft.graph.security.ediscoveryReviewSet"
                            return SecurityEdiscoveryReviewSet.new
                        when "#microsoft.graph.security.ediscoveryReviewSetQuery"
                            return SecurityEdiscoveryReviewSetQuery.new
                        when "#microsoft.graph.security.ediscoveryReviewTag"
                            return SecurityEdiscoveryReviewTag.new
                        when "#microsoft.graph.security.ediscoverySearch"
                            return SecurityEdiscoverySearch.new
                        when "#microsoft.graph.security.ediscoveryTagOperation"
                            return SecurityEdiscoveryTagOperation.new
                        when "#microsoft.graph.security.host"
                            return SecurityHost.new
                        when "#microsoft.graph.security.hostComponent"
                            return SecurityHostComponent.new
                        when "#microsoft.graph.security.hostCookie"
                            return SecurityHostCookie.new
                        when "#microsoft.graph.security.hostname"
                            return SecurityHostname.new
                        when "#microsoft.graph.security.hostReputation"
                            return SecurityHostReputation.new
                        when "#microsoft.graph.security.hostTracker"
                            return SecurityHostTracker.new
                        when "#microsoft.graph.security.incident"
                            return SecurityIncident.new
                        when "#microsoft.graph.security.indicator"
                            return SecurityIndicator.new
                        when "#microsoft.graph.security.intelligenceProfile"
                            return SecurityIntelligenceProfile.new
                        when "#microsoft.graph.security.intelligenceProfileIndicator"
                            return SecurityIntelligenceProfileIndicator.new
                        when "#microsoft.graph.security.ipAddress"
                            return SecurityIpAddress.new
                        when "#microsoft.graph.security.passiveDnsRecord"
                            return SecurityPassiveDnsRecord.new
                        when "#microsoft.graph.security.retentionEvent"
                            return SecurityRetentionEvent.new
                        when "#microsoft.graph.security.retentionEventType"
                            return SecurityRetentionEventType.new
                        when "#microsoft.graph.security.search"
                            return SecuritySearch.new
                        when "#microsoft.graph.security.siteSource"
                            return SecuritySiteSource.new
                        when "#microsoft.graph.security.tag"
                            return SecurityTag.new
                        when "#microsoft.graph.security.threatIntelligence"
                            return SecurityThreatIntelligence.new
                        when "#microsoft.graph.security.triggersRoot"
                            return SecurityTriggersRoot.new
                        when "#microsoft.graph.security.triggerTypesRoot"
                            return SecurityTriggerTypesRoot.new
                        when "#microsoft.graph.security.unclassifiedArtifact"
                            return SecurityUnclassifiedArtifact.new
                        when "#microsoft.graph.security.unifiedGroupSource"
                            return SecurityUnifiedGroupSource.new
                        when "#microsoft.graph.security.userSource"
                            return SecurityUserSource.new
                        when "#microsoft.graph.security.vulnerability"
                            return SecurityVulnerability.new
                        when "#microsoft.graph.security.vulnerabilityComponent"
                            return SecurityVulnerabilityComponent.new
                        when "#microsoft.graph.securityReportsRoot"
                            return SecurityReportsRoot.new
                        when "#microsoft.graph.serviceAnnouncement"
                            return ServiceAnnouncement.new
                        when "#microsoft.graph.serviceAnnouncementAttachment"
                            return ServiceAnnouncementAttachment.new
                        when "#microsoft.graph.serviceAnnouncementBase"
                            return ServiceAnnouncementBase.new
                        when "#microsoft.graph.serviceHealth"
                            return ServiceHealth.new
                        when "#microsoft.graph.serviceHealthIssue"
                            return ServiceHealthIssue.new
                        when "#microsoft.graph.servicePrincipal"
                            return ServicePrincipal.new
                        when "#microsoft.graph.servicePrincipalRiskDetection"
                            return ServicePrincipalRiskDetection.new
                        when "#microsoft.graph.serviceUpdateMessage"
                            return ServiceUpdateMessage.new
                        when "#microsoft.graph.settingStateDeviceSummary"
                            return SettingStateDeviceSummary.new
                        when "#microsoft.graph.sharedDriveItem"
                            return SharedDriveItem.new
                        when "#microsoft.graph.sharedInsight"
                            return SharedInsight.new
                        when "#microsoft.graph.sharedPCConfiguration"
                            return SharedPCConfiguration.new
                        when "#microsoft.graph.sharedWithChannelTeamInfo"
                            return SharedWithChannelTeamInfo.new
                        when "#microsoft.graph.sharepoint"
                            return Sharepoint.new
                        when "#microsoft.graph.sharepointSettings"
                            return SharepointSettings.new
                        when "#microsoft.graph.shift"
                            return Shift.new
                        when "#microsoft.graph.shiftPreferences"
                            return ShiftPreferences.new
                        when "#microsoft.graph.signIn"
                            return SignIn.new
                        when "#microsoft.graph.simulation"
                            return Simulation.new
                        when "#microsoft.graph.simulationAutomation"
                            return SimulationAutomation.new
                        when "#microsoft.graph.simulationAutomationRun"
                            return SimulationAutomationRun.new
                        when "#microsoft.graph.singleValueLegacyExtendedProperty"
                            return SingleValueLegacyExtendedProperty.new
                        when "#microsoft.graph.site"
                            return Site.new
                        when "#microsoft.graph.skypeForBusinessUserConversationMember"
                            return SkypeForBusinessUserConversationMember.new
                        when "#microsoft.graph.skypeUserConversationMember"
                            return SkypeUserConversationMember.new
                        when "#microsoft.graph.smsAuthenticationMethodConfiguration"
                            return SmsAuthenticationMethodConfiguration.new
                        when "#microsoft.graph.smsAuthenticationMethodTarget"
                            return SmsAuthenticationMethodTarget.new
                        when "#microsoft.graph.socialIdentityProvider"
                            return SocialIdentityProvider.new
                        when "#microsoft.graph.softwareOathAuthenticationMethod"
                            return SoftwareOathAuthenticationMethod.new
                        when "#microsoft.graph.softwareOathAuthenticationMethodConfiguration"
                            return SoftwareOathAuthenticationMethodConfiguration.new
                        when "#microsoft.graph.softwareUpdateStatusSummary"
                            return SoftwareUpdateStatusSummary.new
                        when "#microsoft.graph.startHoldMusicOperation"
                            return StartHoldMusicOperation.new
                        when "#microsoft.graph.stopHoldMusicOperation"
                            return StopHoldMusicOperation.new
                        when "#microsoft.graph.stsPolicy"
                            return StsPolicy.new
                        when "#microsoft.graph.subjectRightsRequest"
                            return SubjectRightsRequest.new
                        when "#microsoft.graph.subscribedSku"
                            return SubscribedSku.new
                        when "#microsoft.graph.subscribeToToneOperation"
                            return SubscribeToToneOperation.new
                        when "#microsoft.graph.subscription"
                            return Subscription.new
                        when "#microsoft.graph.swapShiftsChangeRequest"
                            return SwapShiftsChangeRequest.new
                        when "#microsoft.graph.synchronization"
                            return Synchronization.new
                        when "#microsoft.graph.synchronizationJob"
                            return SynchronizationJob.new
                        when "#microsoft.graph.synchronizationSchema"
                            return SynchronizationSchema.new
                        when "#microsoft.graph.synchronizationTemplate"
                            return SynchronizationTemplate.new
                        when "#microsoft.graph.targetedManagedAppConfiguration"
                            return TargetedManagedAppConfiguration.new
                        when "#microsoft.graph.targetedManagedAppPolicyAssignment"
                            return TargetedManagedAppPolicyAssignment.new
                        when "#microsoft.graph.targetedManagedAppProtection"
                            return TargetedManagedAppProtection.new
                        when "#microsoft.graph.taskFileAttachment"
                            return TaskFileAttachment.new
                        when "#microsoft.graph.team"
                            return Team.new
                        when "#microsoft.graph.teamInfo"
                            return TeamInfo.new
                        when "#microsoft.graph.teamsApp"
                            return TeamsApp.new
                        when "#microsoft.graph.teamsAppDefinition"
                            return TeamsAppDefinition.new
                        when "#microsoft.graph.teamsAppInstallation"
                            return TeamsAppInstallation.new
                        when "#microsoft.graph.teamsAppSettings"
                            return TeamsAppSettings.new
                        when "#microsoft.graph.teamsAsyncOperation"
                            return TeamsAsyncOperation.new
                        when "#microsoft.graph.teamsTab"
                            return TeamsTab.new
                        when "#microsoft.graph.teamsTemplate"
                            return TeamsTemplate.new
                        when "#microsoft.graph.teamwork"
                            return Teamwork.new
                        when "#microsoft.graph.teamworkBot"
                            return TeamworkBot.new
                        when "#microsoft.graph.teamworkHostedContent"
                            return TeamworkHostedContent.new
                        when "#microsoft.graph.teamworkTag"
                            return TeamworkTag.new
                        when "#microsoft.graph.teamworkTagMember"
                            return TeamworkTagMember.new
                        when "#microsoft.graph.telecomExpenseManagementPartner"
                            return TelecomExpenseManagementPartner.new
                        when "#microsoft.graph.temporaryAccessPassAuthenticationMethod"
                            return TemporaryAccessPassAuthenticationMethod.new
                        when "#microsoft.graph.temporaryAccessPassAuthenticationMethodConfiguration"
                            return TemporaryAccessPassAuthenticationMethodConfiguration.new
                        when "#microsoft.graph.tenantAppManagementPolicy"
                            return TenantAppManagementPolicy.new
                        when "#microsoft.graph.termsAndConditions"
                            return TermsAndConditions.new
                        when "#microsoft.graph.termsAndConditionsAcceptanceStatus"
                            return TermsAndConditionsAcceptanceStatus.new
                        when "#microsoft.graph.termsAndConditionsAssignment"
                            return TermsAndConditionsAssignment.new
                        when "#microsoft.graph.termsOfUseContainer"
                            return TermsOfUseContainer.new
                        when "#microsoft.graph.termStore.group"
                            return TermStoreGroup.new
                        when "#microsoft.graph.termStore.relation"
                            return TermStoreRelation.new
                        when "#microsoft.graph.termStore.set"
                            return TermStoreSet.new
                        when "#microsoft.graph.termStore.store"
                            return TermStoreStore.new
                        when "#microsoft.graph.termStore.term"
                            return TermStoreTerm.new
                        when "#microsoft.graph.threatAssessmentRequest"
                            return ThreatAssessmentRequest.new
                        when "#microsoft.graph.threatAssessmentResult"
                            return ThreatAssessmentResult.new
                        when "#microsoft.graph.thumbnailSet"
                            return ThumbnailSet.new
                        when "#microsoft.graph.timeOff"
                            return TimeOff.new
                        when "#microsoft.graph.timeOffReason"
                            return TimeOffReason.new
                        when "#microsoft.graph.timeOffRequest"
                            return TimeOffRequest.new
                        when "#microsoft.graph.todo"
                            return Todo.new
                        when "#microsoft.graph.todoTask"
                            return TodoTask.new
                        when "#microsoft.graph.todoTaskList"
                            return TodoTaskList.new
                        when "#microsoft.graph.tokenIssuancePolicy"
                            return TokenIssuancePolicy.new
                        when "#microsoft.graph.tokenLifetimePolicy"
                            return TokenLifetimePolicy.new
                        when "#microsoft.graph.trending"
                            return Trending.new
                        when "#microsoft.graph.unifiedRbacResourceAction"
                            return UnifiedRbacResourceAction.new
                        when "#microsoft.graph.unifiedRbacResourceNamespace"
                            return UnifiedRbacResourceNamespace.new
                        when "#microsoft.graph.unifiedRoleAssignment"
                            return UnifiedRoleAssignment.new
                        when "#microsoft.graph.unifiedRoleAssignmentSchedule"
                            return UnifiedRoleAssignmentSchedule.new
                        when "#microsoft.graph.unifiedRoleAssignmentScheduleInstance"
                            return UnifiedRoleAssignmentScheduleInstance.new
                        when "#microsoft.graph.unifiedRoleAssignmentScheduleRequest"
                            return UnifiedRoleAssignmentScheduleRequest.new
                        when "#microsoft.graph.unifiedRoleDefinition"
                            return UnifiedRoleDefinition.new
                        when "#microsoft.graph.unifiedRoleEligibilitySchedule"
                            return UnifiedRoleEligibilitySchedule.new
                        when "#microsoft.graph.unifiedRoleEligibilityScheduleInstance"
                            return UnifiedRoleEligibilityScheduleInstance.new
                        when "#microsoft.graph.unifiedRoleEligibilityScheduleRequest"
                            return UnifiedRoleEligibilityScheduleRequest.new
                        when "#microsoft.graph.unifiedRoleManagementPolicy"
                            return UnifiedRoleManagementPolicy.new
                        when "#microsoft.graph.unifiedRoleManagementPolicyApprovalRule"
                            return UnifiedRoleManagementPolicyApprovalRule.new
                        when "#microsoft.graph.unifiedRoleManagementPolicyAssignment"
                            return UnifiedRoleManagementPolicyAssignment.new
                        when "#microsoft.graph.unifiedRoleManagementPolicyAuthenticationContextRule"
                            return UnifiedRoleManagementPolicyAuthenticationContextRule.new
                        when "#microsoft.graph.unifiedRoleManagementPolicyEnablementRule"
                            return UnifiedRoleManagementPolicyEnablementRule.new
                        when "#microsoft.graph.unifiedRoleManagementPolicyExpirationRule"
                            return UnifiedRoleManagementPolicyExpirationRule.new
                        when "#microsoft.graph.unifiedRoleManagementPolicyNotificationRule"
                            return UnifiedRoleManagementPolicyNotificationRule.new
                        when "#microsoft.graph.unifiedRoleManagementPolicyRule"
                            return UnifiedRoleManagementPolicyRule.new
                        when "#microsoft.graph.unifiedRoleScheduleBase"
                            return UnifiedRoleScheduleBase.new
                        when "#microsoft.graph.unifiedRoleScheduleInstanceBase"
                            return UnifiedRoleScheduleInstanceBase.new
                        when "#microsoft.graph.unmuteParticipantOperation"
                            return UnmuteParticipantOperation.new
                        when "#microsoft.graph.updateRecordingStatusOperation"
                            return UpdateRecordingStatusOperation.new
                        when "#microsoft.graph.urlAssessmentRequest"
                            return UrlAssessmentRequest.new
                        when "#microsoft.graph.usedInsight"
                            return UsedInsight.new
                        when "#microsoft.graph.user"
                            return User.new
                        when "#microsoft.graph.userActivity"
                            return UserActivity.new
                        when "#microsoft.graph.userConsentRequest"
                            return UserConsentRequest.new
                        when "#microsoft.graph.userExperienceAnalyticsAppHealthApplicationPerformance"
                            return UserExperienceAnalyticsAppHealthApplicationPerformance.new
                        when "#microsoft.graph.userExperienceAnalyticsAppHealthAppPerformanceByAppVersionDetails"
                            return UserExperienceAnalyticsAppHealthAppPerformanceByAppVersionDetails.new
                        when "#microsoft.graph.userExperienceAnalyticsAppHealthAppPerformanceByAppVersionDeviceId"
                            return UserExperienceAnalyticsAppHealthAppPerformanceByAppVersionDeviceId.new
                        when "#microsoft.graph.userExperienceAnalyticsAppHealthAppPerformanceByOSVersion"
                            return UserExperienceAnalyticsAppHealthAppPerformanceByOSVersion.new
                        when "#microsoft.graph.userExperienceAnalyticsAppHealthDeviceModelPerformance"
                            return UserExperienceAnalyticsAppHealthDeviceModelPerformance.new
                        when "#microsoft.graph.userExperienceAnalyticsAppHealthDevicePerformance"
                            return UserExperienceAnalyticsAppHealthDevicePerformance.new
                        when "#microsoft.graph.userExperienceAnalyticsAppHealthDevicePerformanceDetails"
                            return UserExperienceAnalyticsAppHealthDevicePerformanceDetails.new
                        when "#microsoft.graph.userExperienceAnalyticsAppHealthOSVersionPerformance"
                            return UserExperienceAnalyticsAppHealthOSVersionPerformance.new
                        when "#microsoft.graph.userExperienceAnalyticsBaseline"
                            return UserExperienceAnalyticsBaseline.new
                        when "#microsoft.graph.userExperienceAnalyticsCategory"
                            return UserExperienceAnalyticsCategory.new
                        when "#microsoft.graph.userExperienceAnalyticsDevicePerformance"
                            return UserExperienceAnalyticsDevicePerformance.new
                        when "#microsoft.graph.userExperienceAnalyticsDeviceScores"
                            return UserExperienceAnalyticsDeviceScores.new
                        when "#microsoft.graph.userExperienceAnalyticsDeviceStartupHistory"
                            return UserExperienceAnalyticsDeviceStartupHistory.new
                        when "#microsoft.graph.userExperienceAnalyticsDeviceStartupProcess"
                            return UserExperienceAnalyticsDeviceStartupProcess.new
                        when "#microsoft.graph.userExperienceAnalyticsMetric"
                            return UserExperienceAnalyticsMetric.new
                        when "#microsoft.graph.userExperienceAnalyticsMetricHistory"
                            return UserExperienceAnalyticsMetricHistory.new
                        when "#microsoft.graph.userExperienceAnalyticsModelScores"
                            return UserExperienceAnalyticsModelScores.new
                        when "#microsoft.graph.userExperienceAnalyticsOverview"
                            return UserExperienceAnalyticsOverview.new
                        when "#microsoft.graph.userExperienceAnalyticsScoreHistory"
                            return UserExperienceAnalyticsScoreHistory.new
                        when "#microsoft.graph.userExperienceAnalyticsWorkFromAnywhereDevice"
                            return UserExperienceAnalyticsWorkFromAnywhereDevice.new
                        when "#microsoft.graph.userExperienceAnalyticsWorkFromAnywhereHardwareReadinessMetric"
                            return UserExperienceAnalyticsWorkFromAnywhereHardwareReadinessMetric.new
                        when "#microsoft.graph.userExperienceAnalyticsWorkFromAnywhereMetric"
                            return UserExperienceAnalyticsWorkFromAnywhereMetric.new
                        when "#microsoft.graph.userExperienceAnalyticsWorkFromAnywhereModelPerformance"
                            return UserExperienceAnalyticsWorkFromAnywhereModelPerformance.new
                        when "#microsoft.graph.userFlowLanguageConfiguration"
                            return UserFlowLanguageConfiguration.new
                        when "#microsoft.graph.userFlowLanguagePage"
                            return UserFlowLanguagePage.new
                        when "#microsoft.graph.userInstallStateSummary"
                            return UserInstallStateSummary.new
                        when "#microsoft.graph.userRegistrationDetails"
                            return UserRegistrationDetails.new
                        when "#microsoft.graph.userScopeTeamsAppInstallation"
                            return UserScopeTeamsAppInstallation.new
                        when "#microsoft.graph.userSettings"
                            return UserSettings.new
                        when "#microsoft.graph.userSignInInsight"
                            return UserSignInInsight.new
                        when "#microsoft.graph.userTeamwork"
                            return UserTeamwork.new
                        when "#microsoft.graph.voiceAuthenticationMethodConfiguration"
                            return VoiceAuthenticationMethodConfiguration.new
                        when "#microsoft.graph.vppToken"
                            return VppToken.new
                        when "#microsoft.graph.webApp"
                            return WebApp.new
                        when "#microsoft.graph.win32LobApp"
                            return Win32LobApp.new
                        when "#microsoft.graph.windows10CompliancePolicy"
                            return Windows10CompliancePolicy.new
                        when "#microsoft.graph.windows10CustomConfiguration"
                            return Windows10CustomConfiguration.new
                        when "#microsoft.graph.windows10EndpointProtectionConfiguration"
                            return Windows10EndpointProtectionConfiguration.new
                        when "#microsoft.graph.windows10EnterpriseModernAppManagementConfiguration"
                            return Windows10EnterpriseModernAppManagementConfiguration.new
                        when "#microsoft.graph.windows10GeneralConfiguration"
                            return Windows10GeneralConfiguration.new
                        when "#microsoft.graph.windows10MobileCompliancePolicy"
                            return Windows10MobileCompliancePolicy.new
                        when "#microsoft.graph.windows10SecureAssessmentConfiguration"
                            return Windows10SecureAssessmentConfiguration.new
                        when "#microsoft.graph.windows10TeamGeneralConfiguration"
                            return Windows10TeamGeneralConfiguration.new
                        when "#microsoft.graph.windows81CompliancePolicy"
                            return Windows81CompliancePolicy.new
                        when "#microsoft.graph.windows81GeneralConfiguration"
                            return Windows81GeneralConfiguration.new
                        when "#microsoft.graph.windowsAppX"
                            return WindowsAppX.new
                        when "#microsoft.graph.windowsAutopilotDeviceIdentity"
                            return WindowsAutopilotDeviceIdentity.new
                        when "#microsoft.graph.windowsDefenderAdvancedThreatProtectionConfiguration"
                            return WindowsDefenderAdvancedThreatProtectionConfiguration.new
                        when "#microsoft.graph.windowsDeviceMalwareState"
                            return WindowsDeviceMalwareState.new
                        when "#microsoft.graph.windowsHelloForBusinessAuthenticationMethod"
                            return WindowsHelloForBusinessAuthenticationMethod.new
                        when "#microsoft.graph.windowsInformationProtection"
                            return WindowsInformationProtection.new
                        when "#microsoft.graph.windowsInformationProtectionAppLearningSummary"
                            return WindowsInformationProtectionAppLearningSummary.new
                        when "#microsoft.graph.windowsInformationProtectionAppLockerFile"
                            return WindowsInformationProtectionAppLockerFile.new
                        when "#microsoft.graph.windowsInformationProtectionNetworkLearningSummary"
                            return WindowsInformationProtectionNetworkLearningSummary.new
                        when "#microsoft.graph.windowsInformationProtectionPolicy"
                            return WindowsInformationProtectionPolicy.new
                        when "#microsoft.graph.windowsMalwareInformation"
                            return WindowsMalwareInformation.new
                        when "#microsoft.graph.windowsMicrosoftEdgeApp"
                            return WindowsMicrosoftEdgeApp.new
                        when "#microsoft.graph.windowsMobileMSI"
                            return WindowsMobileMSI.new
                        when "#microsoft.graph.windowsPhone81CompliancePolicy"
                            return WindowsPhone81CompliancePolicy.new
                        when "#microsoft.graph.windowsPhone81CustomConfiguration"
                            return WindowsPhone81CustomConfiguration.new
                        when "#microsoft.graph.windowsPhone81GeneralConfiguration"
                            return WindowsPhone81GeneralConfiguration.new
                        when "#microsoft.graph.windowsProtectionState"
                            return WindowsProtectionState.new
                        when "#microsoft.graph.windowsUniversalAppX"
                            return WindowsUniversalAppX.new
                        when "#microsoft.graph.windowsUniversalAppXContainedApp"
                            return WindowsUniversalAppXContainedApp.new
                        when "#microsoft.graph.windowsUpdateForBusinessConfiguration"
                            return WindowsUpdateForBusinessConfiguration.new
                        when "#microsoft.graph.windowsWebApp"
                            return WindowsWebApp.new
                        when "#microsoft.graph.workbook"
                            return Workbook.new
                        when "#microsoft.graph.workbookApplication"
                            return WorkbookApplication.new
                        when "#microsoft.graph.workbookChart"
                            return WorkbookChart.new
                        when "#microsoft.graph.workbookChartAreaFormat"
                            return WorkbookChartAreaFormat.new
                        when "#microsoft.graph.workbookChartAxes"
                            return WorkbookChartAxes.new
                        when "#microsoft.graph.workbookChartAxis"
                            return WorkbookChartAxis.new
                        when "#microsoft.graph.workbookChartAxisFormat"
                            return WorkbookChartAxisFormat.new
                        when "#microsoft.graph.workbookChartAxisTitle"
                            return WorkbookChartAxisTitle.new
                        when "#microsoft.graph.workbookChartAxisTitleFormat"
                            return WorkbookChartAxisTitleFormat.new
                        when "#microsoft.graph.workbookChartDataLabelFormat"
                            return WorkbookChartDataLabelFormat.new
                        when "#microsoft.graph.workbookChartDataLabels"
                            return WorkbookChartDataLabels.new
                        when "#microsoft.graph.workbookChartFill"
                            return WorkbookChartFill.new
                        when "#microsoft.graph.workbookChartFont"
                            return WorkbookChartFont.new
                        when "#microsoft.graph.workbookChartGridlines"
                            return WorkbookChartGridlines.new
                        when "#microsoft.graph.workbookChartGridlinesFormat"
                            return WorkbookChartGridlinesFormat.new
                        when "#microsoft.graph.workbookChartLegend"
                            return WorkbookChartLegend.new
                        when "#microsoft.graph.workbookChartLegendFormat"
                            return WorkbookChartLegendFormat.new
                        when "#microsoft.graph.workbookChartLineFormat"
                            return WorkbookChartLineFormat.new
                        when "#microsoft.graph.workbookChartPoint"
                            return WorkbookChartPoint.new
                        when "#microsoft.graph.workbookChartPointFormat"
                            return WorkbookChartPointFormat.new
                        when "#microsoft.graph.workbookChartSeries"
                            return WorkbookChartSeries.new
                        when "#microsoft.graph.workbookChartSeriesFormat"
                            return WorkbookChartSeriesFormat.new
                        when "#microsoft.graph.workbookChartTitle"
                            return WorkbookChartTitle.new
                        when "#microsoft.graph.workbookChartTitleFormat"
                            return WorkbookChartTitleFormat.new
                        when "#microsoft.graph.workbookComment"
                            return WorkbookComment.new
                        when "#microsoft.graph.workbookCommentReply"
                            return WorkbookCommentReply.new
                        when "#microsoft.graph.workbookFilter"
                            return WorkbookFilter.new
                        when "#microsoft.graph.workbookFormatProtection"
                            return WorkbookFormatProtection.new
                        when "#microsoft.graph.workbookFunctionResult"
                            return WorkbookFunctionResult.new
                        when "#microsoft.graph.workbookFunctions"
                            return WorkbookFunctions.new
                        when "#microsoft.graph.workbookNamedItem"
                            return WorkbookNamedItem.new
                        when "#microsoft.graph.workbookOperation"
                            return WorkbookOperation.new
                        when "#microsoft.graph.workbookPivotTable"
                            return WorkbookPivotTable.new
                        when "#microsoft.graph.workbookRange"
                            return WorkbookRange.new
                        when "#microsoft.graph.workbookRangeBorder"
                            return WorkbookRangeBorder.new
                        when "#microsoft.graph.workbookRangeFill"
                            return WorkbookRangeFill.new
                        when "#microsoft.graph.workbookRangeFont"
                            return WorkbookRangeFont.new
                        when "#microsoft.graph.workbookRangeFormat"
                            return WorkbookRangeFormat.new
                        when "#microsoft.graph.workbookRangeSort"
                            return WorkbookRangeSort.new
                        when "#microsoft.graph.workbookRangeView"
                            return WorkbookRangeView.new
                        when "#microsoft.graph.workbookTable"
                            return WorkbookTable.new
                        when "#microsoft.graph.workbookTableColumn"
                            return WorkbookTableColumn.new
                        when "#microsoft.graph.workbookTableRow"
                            return WorkbookTableRow.new
                        when "#microsoft.graph.workbookTableSort"
                            return WorkbookTableSort.new
                        when "#microsoft.graph.workbookWorksheet"
                            return WorkbookWorksheet.new
                        when "#microsoft.graph.workbookWorksheetProtection"
                            return WorkbookWorksheetProtection.new
                        when "#microsoft.graph.workforceIntegration"
                            return WorkforceIntegration.new
                        when "#microsoft.graph.x509CertificateAuthenticationMethodConfiguration"
                            return X509CertificateAuthenticationMethodConfiguration.new
                    end
                end
                return Entity.new
            end
            ## 
            ## The deserialization information for the current model
            ## @return a i_dictionary
            ## 
            def get_field_deserializers()
                return {
                    "id" => lambda {|n| @id = n.get_string_value() },
                    "@odata.type" => lambda {|n| @odata_type = n.get_string_value() },
                }
            end
            ## 
            ## Gets the id property value. The unique idenfier for an entity. Read-only.
            ## @return a string
            ## 
            def id
                return @id
            end
            ## 
            ## Sets the id property value. The unique idenfier for an entity. Read-only.
            ## @param value Value to set for the id property.
            ## @return a void
            ## 
            def id=(value)
                @id = value
            end
            ## 
            ## Gets the @odata.type property value. The OdataType property
            ## @return a string
            ## 
            def odata_type
                return @odata_type
            end
            ## 
            ## Sets the @odata.type property value. The OdataType property
            ## @param value Value to set for the @odata.type property.
            ## @return a void
            ## 
            def odata_type=(value)
                @odata_type = value
            end
            ## 
            ## Serializes information the current object
            ## @param writer Serialization writer to use to serialize this model
            ## @return a void
            ## 
            def serialize(writer)
                raise StandardError, 'writer cannot be null' if writer.nil?
                writer.write_string_value("id", @id)
                writer.write_string_value("@odata.type", @odata_type)
                writer.write_additional_data(@additional_data)
            end
        end
    end
end
