msgraph-sdk 1.35.0__py3-none-any.whl → 1.37.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (210) hide show
  1. msgraph/_version.py +1 -1
  2. msgraph/generated/applications/get_available_extension_properties/get_available_extension_properties_request_builder.py +2 -2
  3. msgraph/generated/applications/item/add_key/add_key_request_builder.py +2 -2
  4. msgraph/generated/applications/item/restore/restore_request_builder.py +2 -2
  5. msgraph/generated/audit_logs/sign_ins/confirm_compromised/confirm_compromised_post_request_body.py +50 -0
  6. msgraph/generated/audit_logs/sign_ins/confirm_compromised/confirm_compromised_request_builder.py +87 -0
  7. msgraph/generated/audit_logs/sign_ins/confirm_safe/confirm_safe_post_request_body.py +50 -0
  8. msgraph/generated/audit_logs/sign_ins/confirm_safe/confirm_safe_request_builder.py +87 -0
  9. msgraph/generated/audit_logs/sign_ins/dismiss/dismiss_post_request_body.py +50 -0
  10. msgraph/generated/audit_logs/sign_ins/dismiss/dismiss_request_builder.py +87 -0
  11. msgraph/generated/audit_logs/sign_ins/sign_ins_request_builder.py +30 -0
  12. msgraph/generated/chats/item/messages/messages_request_builder.py +3 -3
  13. msgraph/generated/chats/item/send_activity_notification/send_activity_notification_post_request_body.py +4 -0
  14. msgraph/generated/communications/calls/item/participants/invite/invite_request_builder.py +3 -3
  15. msgraph/generated/contacts/contacts_request_builder.py +1 -52
  16. msgraph/generated/contacts/get_available_extension_properties/get_available_extension_properties_request_builder.py +2 -2
  17. msgraph/generated/contacts/item/org_contact_item_request_builder.py +0 -81
  18. msgraph/generated/contacts/item/restore/restore_request_builder.py +2 -2
  19. msgraph/generated/contracts/get_available_extension_properties/get_available_extension_properties_request_builder.py +2 -2
  20. msgraph/generated/contracts/item/restore/restore_request_builder.py +2 -2
  21. msgraph/generated/device_app_management/device_app_management_request_builder.py +2 -2
  22. msgraph/generated/device_app_management/managed_app_policies/item/managed_app_policy_item_request_builder.py +4 -4
  23. msgraph/generated/device_app_management/managed_app_policies/managed_app_policies_request_builder.py +4 -4
  24. msgraph/generated/device_app_management/managed_app_registrations/item/managed_app_registration_item_request_builder.py +4 -4
  25. msgraph/generated/device_app_management/managed_app_registrations/managed_app_registrations_request_builder.py +4 -4
  26. msgraph/generated/device_app_management/managed_app_statuses/item/managed_app_status_item_request_builder.py +4 -4
  27. msgraph/generated/device_app_management/managed_app_statuses/managed_app_statuses_request_builder.py +4 -4
  28. msgraph/generated/device_app_management/managed_e_books/item/assignments/assignments_request_builder.py +3 -3
  29. msgraph/generated/device_app_management/managed_e_books/item/assignments/item/managed_e_book_assignment_item_request_builder.py +4 -4
  30. msgraph/generated/device_app_management/managed_e_books/item/managed_e_book_item_request_builder.py +4 -4
  31. msgraph/generated/device_app_management/mobile_app_configurations/item/managed_device_mobile_app_configuration_item_request_builder.py +4 -4
  32. msgraph/generated/device_app_management/mobile_app_configurations/mobile_app_configurations_request_builder.py +4 -4
  33. msgraph/generated/device_app_management/mobile_apps/item/mobile_app_item_request_builder.py +10 -10
  34. msgraph/generated/device_app_management/mobile_apps/mobile_apps_request_builder.py +7 -7
  35. msgraph/generated/device_management/device_compliance_policies/device_compliance_policies_request_builder.py +3 -3
  36. msgraph/generated/device_management/device_compliance_policies/item/device_compliance_policy_item_request_builder.py +7 -7
  37. msgraph/generated/device_management/device_configurations/device_configurations_request_builder.py +7 -7
  38. msgraph/generated/device_management/device_configurations/item/device_configuration_item_request_builder.py +10 -10
  39. msgraph/generated/device_management/device_enrollment_configurations/device_enrollment_configurations_request_builder.py +7 -7
  40. msgraph/generated/device_management/device_enrollment_configurations/item/device_enrollment_configuration_item_request_builder.py +4 -4
  41. msgraph/generated/device_management/device_management_request_builder.py +2 -2
  42. msgraph/generated/device_management/role_definitions/item/role_definition_item_request_builder.py +3 -3
  43. msgraph/generated/devices/get_available_extension_properties/get_available_extension_properties_request_builder.py +2 -2
  44. msgraph/generated/devices/item/restore/restore_request_builder.py +2 -2
  45. msgraph/generated/directory/administrative_units/item/administrative_unit_item_request_builder.py +3 -3
  46. msgraph/generated/directory/deleted_items/deleted_items_request_builder.py +3 -3
  47. msgraph/generated/directory/deleted_items/get_available_extension_properties/get_available_extension_properties_request_builder.py +2 -2
  48. msgraph/generated/directory/deleted_items/graph_group/graph_group_request_builder.py +3 -3
  49. msgraph/generated/directory/deleted_items/item/directory_object_item_request_builder.py +5 -5
  50. msgraph/generated/directory/deleted_items/item/graph_group/graph_group_request_builder.py +3 -3
  51. msgraph/generated/directory/deleted_items/item/restore/restore_request_builder.py +2 -2
  52. msgraph/generated/directory/public_key_infrastructure/certificate_based_auth_configurations/certificate_based_auth_configurations_request_builder.py +7 -5
  53. msgraph/generated/directory/public_key_infrastructure/certificate_based_auth_configurations/item/certificate_authorities/certificate_authorities_request_builder.py +7 -5
  54. msgraph/generated/directory/public_key_infrastructure/certificate_based_auth_configurations/item/certificate_authorities/item/certificate_authority_detail_item_request_builder.py +9 -7
  55. msgraph/generated/directory/public_key_infrastructure/certificate_based_auth_configurations/item/certificate_based_auth_pki_item_request_builder.py +10 -7
  56. msgraph/generated/directory/public_key_infrastructure/certificate_based_auth_configurations/item/upload/upload_request_builder.py +3 -2
  57. msgraph/generated/directory/public_key_infrastructure/public_key_infrastructure_request_builder.py +3 -3
  58. msgraph/generated/directory_objects/get_available_extension_properties/get_available_extension_properties_request_builder.py +2 -2
  59. msgraph/generated/directory_objects/item/restore/restore_request_builder.py +2 -2
  60. msgraph/generated/directory_role_templates/get_available_extension_properties/get_available_extension_properties_request_builder.py +2 -2
  61. msgraph/generated/directory_role_templates/item/restore/restore_request_builder.py +2 -2
  62. msgraph/generated/directory_roles/get_available_extension_properties/get_available_extension_properties_request_builder.py +2 -2
  63. msgraph/generated/directory_roles/item/restore/restore_request_builder.py +2 -2
  64. msgraph/generated/domains/item/verify/verify_request_builder.py +2 -2
  65. msgraph/generated/drives/item/items/item/create_link/create_link_request_builder.py +2 -2
  66. msgraph/generated/drives/item/items/item/restore/restore_request_builder.py +2 -2
  67. msgraph/generated/group_setting_templates/get_available_extension_properties/get_available_extension_properties_request_builder.py +2 -2
  68. msgraph/generated/group_setting_templates/item/restore/restore_request_builder.py +2 -2
  69. msgraph/generated/group_settings/group_settings_request_builder.py +2 -2
  70. msgraph/generated/groups/get_available_extension_properties/get_available_extension_properties_request_builder.py +2 -2
  71. msgraph/generated/groups/groups_request_builder.py +3 -3
  72. msgraph/generated/groups/item/conversations/item/threads/item/reply/reply_request_builder.py +3 -3
  73. msgraph/generated/groups/item/restore/restore_request_builder.py +2 -2
  74. msgraph/generated/groups/item/settings/settings_request_builder.py +2 -2
  75. msgraph/generated/groups/item/team/send_activity_notification/send_activity_notification_post_request_body.py +4 -0
  76. msgraph/generated/groups/item/threads/item/conversation_thread_item_request_builder.py +5 -5
  77. msgraph/generated/groups/item/threads/item/reply/reply_request_builder.py +3 -3
  78. msgraph/generated/identity/conditional_access/named_locations/item/named_location_item_request_builder.py +10 -10
  79. msgraph/generated/identity_governance/entitlement_management/catalogs/item/custom_workflow_extensions/item/custom_callout_extension_item_request_builder.py +7 -7
  80. msgraph/generated/identity_governance/terms_of_use/agreements/item/agreement_item_request_builder.py +4 -4
  81. msgraph/generated/kiota-dom-export.txt +1000 -10
  82. msgraph/generated/kiota-lock.json +1 -1
  83. msgraph/generated/models/activities_container.py +60 -0
  84. msgraph/generated/models/activity_metadata.py +61 -0
  85. msgraph/generated/models/administrative_unit.py +1 -1
  86. msgraph/generated/models/ai_interaction_plugin.py +62 -0
  87. msgraph/generated/models/binary_content.py +57 -0
  88. msgraph/generated/models/call_event.py +84 -0
  89. msgraph/generated/models/call_event_type.py +8 -0
  90. msgraph/generated/models/certificate_authority_detail.py +10 -10
  91. msgraph/generated/models/certificate_based_auth_pki.py +5 -5
  92. msgraph/generated/models/classifcation_error_base.py +92 -0
  93. msgraph/generated/models/classification_error.py +69 -0
  94. msgraph/generated/models/classification_inner_error.py +67 -0
  95. msgraph/generated/models/content_activity.py +68 -0
  96. msgraph/generated/models/content_activity_collection_response.py +58 -0
  97. msgraph/generated/models/content_base.py +73 -0
  98. msgraph/generated/models/content_processing_error_type.py +7 -0
  99. msgraph/generated/models/custom_metadata_dictionary.py +53 -0
  100. msgraph/generated/models/data_security_and_governance.py +72 -0
  101. msgraph/generated/models/device.py +1 -1
  102. msgraph/generated/models/device_metadata.py +69 -0
  103. msgraph/generated/models/dictionary.py +7 -0
  104. msgraph/generated/models/directory.py +1 -1
  105. msgraph/generated/models/dlp_action.py +16 -0
  106. msgraph/generated/models/dlp_action_info.py +80 -0
  107. msgraph/generated/models/emergency_call_event.py +68 -0
  108. msgraph/generated/models/emergency_caller_info.py +77 -0
  109. msgraph/generated/models/entity.py +84 -0
  110. msgraph/generated/models/execution_mode.py +7 -0
  111. msgraph/generated/models/group.py +1 -1
  112. msgraph/generated/models/group_scope.py +53 -0
  113. msgraph/generated/models/integrated_application_metadata.py +74 -0
  114. msgraph/generated/models/label_content_right.py +61 -0
  115. msgraph/generated/models/operating_system_specifications.py +58 -0
  116. msgraph/generated/models/partners/billing/billing_reconciliation.py +7 -0
  117. msgraph/generated/models/partners/billing/unbilled_reconciliation.py +53 -0
  118. msgraph/generated/models/policy_binding.py +65 -0
  119. msgraph/generated/models/policy_location.py +84 -0
  120. msgraph/generated/models/policy_location_application.py +53 -0
  121. msgraph/generated/models/policy_location_domain.py +53 -0
  122. msgraph/generated/models/policy_location_url.py +53 -0
  123. msgraph/generated/models/policy_pivot_property.py +8 -0
  124. msgraph/generated/models/policy_scope_base.py +101 -0
  125. msgraph/generated/models/policy_tenant_scope.py +60 -0
  126. msgraph/generated/models/policy_user_scope.py +53 -0
  127. msgraph/generated/models/process_content_batch_request.py +69 -0
  128. msgraph/generated/models/process_content_metadata_base.py +113 -0
  129. msgraph/generated/models/process_content_request.py +89 -0
  130. msgraph/generated/models/process_content_response.py +75 -0
  131. msgraph/generated/models/process_content_responses.py +65 -0
  132. msgraph/generated/models/process_conversation_metadata.py +68 -0
  133. msgraph/generated/models/process_file_metadata.py +64 -0
  134. msgraph/generated/models/processing_error.py +60 -0
  135. msgraph/generated/models/protected_application_metadata.py +60 -0
  136. msgraph/generated/models/protection_scope_state.py +7 -0
  137. msgraph/generated/models/public_key_infrastructure_root.py +1 -1
  138. msgraph/generated/models/restrict_access_action.py +53 -0
  139. msgraph/generated/models/restrict_access_action_base.py +72 -0
  140. msgraph/generated/models/restriction_action.py +7 -0
  141. msgraph/generated/models/scope_base.py +84 -0
  142. msgraph/generated/models/security/security.py +7 -0
  143. msgraph/generated/models/tenant_data_security_and_governance.py +60 -0
  144. msgraph/generated/models/tenant_protection_scope_container.py +53 -0
  145. msgraph/generated/models/tenant_scope.py +53 -0
  146. msgraph/generated/models/text_content.py +57 -0
  147. msgraph/generated/models/upload_session.py +1 -1
  148. msgraph/generated/models/usage_rights.py +25 -0
  149. msgraph/generated/models/usage_rights_included.py +68 -0
  150. msgraph/generated/models/user.py +8 -1
  151. msgraph/generated/models/user_activity_type.py +9 -0
  152. msgraph/generated/models/user_activity_types.py +10 -0
  153. msgraph/generated/models/user_data_security_and_governance.py +67 -0
  154. msgraph/generated/models/user_protection_scope_container.py +53 -0
  155. msgraph/generated/models/user_scope.py +53 -0
  156. msgraph/generated/organization/get_available_extension_properties/get_available_extension_properties_request_builder.py +2 -2
  157. msgraph/generated/organization/item/branding/localizations/item/banner_logo/banner_logo_request_builder.py +3 -3
  158. msgraph/generated/organization/item/organization_item_request_builder.py +3 -3
  159. msgraph/generated/organization/item/restore/restore_request_builder.py +2 -2
  160. msgraph/generated/organization/organization_request_builder.py +4 -4
  161. msgraph/generated/permission_grants/get_available_extension_properties/get_available_extension_properties_request_builder.py +2 -2
  162. msgraph/generated/permission_grants/item/restore/restore_request_builder.py +2 -2
  163. msgraph/generated/policies/cross_tenant_access_policy/partners/item/identity_synchronization/identity_synchronization_request_builder.py +3 -3
  164. msgraph/generated/reports/partners/billing/reconciliation/reconciliation_request_builder.py +10 -0
  165. msgraph/generated/reports/partners/billing/reconciliation/unbilled/microsoft_graph_partners_billing_export/export_post_request_body.py +68 -0
  166. msgraph/generated/reports/partners/billing/reconciliation/unbilled/microsoft_graph_partners_billing_export/microsoft_graph_partners_billing_export_request_builder.py +89 -0
  167. msgraph/generated/reports/partners/billing/reconciliation/unbilled/unbilled_request_builder.py +198 -0
  168. msgraph/generated/security/data_security_and_governance/data_security_and_governance_request_builder.py +208 -0
  169. msgraph/generated/security/data_security_and_governance/process_content_async/process_content_async_post_request_body.py +57 -0
  170. msgraph/generated/security/data_security_and_governance/process_content_async/process_content_async_post_response.py +58 -0
  171. msgraph/generated/security/data_security_and_governance/process_content_async/process_content_async_request_builder.py +89 -0
  172. msgraph/generated/security/data_security_and_governance/protection_scopes/compute/compute_post_request_body.py +85 -0
  173. msgraph/generated/security/data_security_and_governance/protection_scopes/compute/compute_post_response.py +58 -0
  174. msgraph/generated/security/data_security_and_governance/protection_scopes/compute/compute_request_builder.py +89 -0
  175. msgraph/generated/security/data_security_and_governance/protection_scopes/protection_scopes_request_builder.py +198 -0
  176. msgraph/generated/security/security_request_builder.py +10 -0
  177. msgraph/generated/service_principals/get_available_extension_properties/get_available_extension_properties_request_builder.py +2 -2
  178. msgraph/generated/service_principals/item/add_key/add_key_request_builder.py +2 -2
  179. msgraph/generated/service_principals/item/restore/restore_request_builder.py +2 -2
  180. msgraph/generated/sites/item/lists/item/list_item_request_builder.py +4 -4
  181. msgraph/generated/sites/sites_request_builder.py +4 -4
  182. msgraph/generated/teams/item/channels/item/members/item/conversation_member_item_request_builder.py +3 -3
  183. msgraph/generated/teams/item/channels/item/messages/messages_request_builder.py +3 -3
  184. msgraph/generated/teams/item/schedule/shifts/item/shift_item_request_builder.py +2 -2
  185. msgraph/generated/teams/item/send_activity_notification/send_activity_notification_post_request_body.py +4 -0
  186. msgraph/generated/teamwork/send_activity_notification_to_recipients/send_activity_notification_to_recipients_post_request_body.py +4 -0
  187. msgraph/generated/tenant_relationships/multi_tenant_organization/multi_tenant_organization_request_builder.py +3 -3
  188. msgraph/generated/users/get_available_extension_properties/get_available_extension_properties_request_builder.py +2 -2
  189. msgraph/generated/users/item/chats/item/send_activity_notification/send_activity_notification_post_request_body.py +4 -0
  190. msgraph/generated/users/item/data_security_and_governance/activities/activities_request_builder.py +198 -0
  191. msgraph/generated/users/item/data_security_and_governance/activities/content_activities/content_activities_request_builder.py +208 -0
  192. msgraph/generated/users/item/data_security_and_governance/activities/content_activities/count/count_request_builder.py +104 -0
  193. msgraph/generated/users/item/data_security_and_governance/activities/content_activities/item/content_activity_item_request_builder.py +188 -0
  194. msgraph/generated/users/item/data_security_and_governance/data_security_and_governance_request_builder.py +218 -0
  195. msgraph/generated/users/item/data_security_and_governance/process_content/process_content_post_request_body.py +57 -0
  196. msgraph/generated/users/item/data_security_and_governance/process_content/process_content_request_builder.py +90 -0
  197. msgraph/generated/users/item/data_security_and_governance/protection_scopes/compute/compute_post_request_body.py +85 -0
  198. msgraph/generated/users/item/data_security_and_governance/protection_scopes/compute/compute_post_response.py +58 -0
  199. msgraph/generated/users/item/data_security_and_governance/protection_scopes/compute/compute_request_builder.py +89 -0
  200. msgraph/generated/users/item/data_security_and_governance/protection_scopes/protection_scopes_request_builder.py +198 -0
  201. msgraph/generated/users/item/joined_teams/item/send_activity_notification/send_activity_notification_post_request_body.py +4 -0
  202. msgraph/generated/users/item/restore/restore_request_builder.py +2 -2
  203. msgraph/generated/users/item/teamwork/send_activity_notification/send_activity_notification_post_request_body.py +4 -0
  204. msgraph/generated/users/item/user_item_request_builder.py +16 -6
  205. msgraph/generated/users/users_request_builder.py +5 -5
  206. msgraph/generated/users_with_user_principal_name/users_with_user_principal_name_request_builder.py +6 -6
  207. {msgraph_sdk-1.35.0.dist-info → msgraph_sdk-1.37.0.dist-info}/METADATA +1 -1
  208. {msgraph_sdk-1.35.0.dist-info → msgraph_sdk-1.37.0.dist-info}/RECORD +210 -122
  209. {msgraph_sdk-1.35.0.dist-info → msgraph_sdk-1.37.0.dist-info}/WHEEL +0 -0
  210. {msgraph_sdk-1.35.0.dist-info → msgraph_sdk-1.37.0.dist-info}/licenses/LICENSE +0 -0
@@ -1,5 +1,5 @@
1
1
  {
2
- "descriptionHash": "B06ED628E27AAD8F8ED2E3AA49DEE5FF10E6F211237E90896666FA008F5885D429DD2685B8462C401CA04D6A3B5EE90DB71E7AD795881A9E1DCF7E3E76C64270",
2
+ "descriptionHash": "645999DA4E657EB400D8A694456CA5F9D1E62FE46056F8B00797AD20C48BFD4522A925588EF4DD2AD33AE76361C65DDDEDB5C4C77BE6167C97F26B389CDD0E3D",
3
3
  "descriptionLocation": "../../msgraph-metadata/clean_v10_openapi/openapi.yaml",
4
4
  "lockFileVersion": "1.0.0",
5
5
  "kiotaVersion": "1.28.0",
@@ -0,0 +1,60 @@
1
+ from __future__ import annotations
2
+ from collections.abc import Callable
3
+ from dataclasses import dataclass, field
4
+ from kiota_abstractions.serialization import Parsable, ParseNode, SerializationWriter
5
+ from typing import Any, Optional, TYPE_CHECKING, Union
6
+
7
+ if TYPE_CHECKING:
8
+ from .content_activity import ContentActivity
9
+ from .entity import Entity
10
+
11
+ from .entity import Entity
12
+
13
+ @dataclass
14
+ class ActivitiesContainer(Entity, Parsable):
15
+ # Collection of activity logs related to content processing.
16
+ content_activities: Optional[list[ContentActivity]] = None
17
+ # The OdataType property
18
+ odata_type: Optional[str] = None
19
+
20
+ @staticmethod
21
+ def create_from_discriminator_value(parse_node: ParseNode) -> ActivitiesContainer:
22
+ """
23
+ Creates a new instance of the appropriate class based on discriminator value
24
+ param parse_node: The parse node to use to read the discriminator value and create the object
25
+ Returns: ActivitiesContainer
26
+ """
27
+ if parse_node is None:
28
+ raise TypeError("parse_node cannot be null.")
29
+ return ActivitiesContainer()
30
+
31
+ def get_field_deserializers(self,) -> dict[str, Callable[[ParseNode], None]]:
32
+ """
33
+ The deserialization information for the current model
34
+ Returns: dict[str, Callable[[ParseNode], None]]
35
+ """
36
+ from .content_activity import ContentActivity
37
+ from .entity import Entity
38
+
39
+ from .content_activity import ContentActivity
40
+ from .entity import Entity
41
+
42
+ fields: dict[str, Callable[[Any], None]] = {
43
+ "contentActivities": lambda n : setattr(self, 'content_activities', n.get_collection_of_object_values(ContentActivity)),
44
+ }
45
+ super_fields = super().get_field_deserializers()
46
+ fields.update(super_fields)
47
+ return fields
48
+
49
+ def serialize(self,writer: SerializationWriter) -> None:
50
+ """
51
+ Serializes information the current object
52
+ param writer: Serialization writer to use to serialize this model
53
+ Returns: None
54
+ """
55
+ if writer is None:
56
+ raise TypeError("writer cannot be null.")
57
+ super().serialize(writer)
58
+ writer.write_collection_of_object_values("contentActivities", self.content_activities)
59
+
60
+
@@ -0,0 +1,61 @@
1
+ from __future__ import annotations
2
+ from collections.abc import Callable
3
+ from dataclasses import dataclass, field
4
+ from kiota_abstractions.serialization import AdditionalDataHolder, Parsable, ParseNode, SerializationWriter
5
+ from kiota_abstractions.store import BackedModel, BackingStore, BackingStoreFactorySingleton
6
+ from typing import Any, Optional, TYPE_CHECKING, Union
7
+
8
+ if TYPE_CHECKING:
9
+ from .user_activity_type import UserActivityType
10
+
11
+ @dataclass
12
+ class ActivityMetadata(AdditionalDataHolder, BackedModel, Parsable):
13
+ # Stores model information.
14
+ backing_store: BackingStore = field(default_factory=BackingStoreFactorySingleton(backing_store_factory=None).backing_store_factory.create_backing_store, repr=False)
15
+
16
+ # Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
17
+ additional_data: dict[str, Any] = field(default_factory=dict)
18
+ # The activity property
19
+ activity: Optional[UserActivityType] = None
20
+ # The OdataType property
21
+ odata_type: Optional[str] = None
22
+
23
+ @staticmethod
24
+ def create_from_discriminator_value(parse_node: ParseNode) -> ActivityMetadata:
25
+ """
26
+ Creates a new instance of the appropriate class based on discriminator value
27
+ param parse_node: The parse node to use to read the discriminator value and create the object
28
+ Returns: ActivityMetadata
29
+ """
30
+ if parse_node is None:
31
+ raise TypeError("parse_node cannot be null.")
32
+ return ActivityMetadata()
33
+
34
+ def get_field_deserializers(self,) -> dict[str, Callable[[ParseNode], None]]:
35
+ """
36
+ The deserialization information for the current model
37
+ Returns: dict[str, Callable[[ParseNode], None]]
38
+ """
39
+ from .user_activity_type import UserActivityType
40
+
41
+ from .user_activity_type import UserActivityType
42
+
43
+ fields: dict[str, Callable[[Any], None]] = {
44
+ "activity": lambda n : setattr(self, 'activity', n.get_enum_value(UserActivityType)),
45
+ "@odata.type": lambda n : setattr(self, 'odata_type', n.get_str_value()),
46
+ }
47
+ return fields
48
+
49
+ def serialize(self,writer: SerializationWriter) -> None:
50
+ """
51
+ Serializes information the current object
52
+ param writer: Serialization writer to use to serialize this model
53
+ Returns: None
54
+ """
55
+ if writer is None:
56
+ raise TypeError("writer cannot be null.")
57
+ writer.write_enum_value("activity", self.activity)
58
+ writer.write_str_value("@odata.type", self.odata_type)
59
+ writer.write_additional_data_value(self.additional_data)
60
+
61
+
@@ -21,7 +21,7 @@ class AdministrativeUnit(DirectoryObject, Parsable):
21
21
  display_name: Optional[str] = None
22
22
  # The collection of open extensions defined for this administrative unit. Nullable.
23
23
  extensions: Optional[list[Extension]] = None
24
- # The isMemberManagementRestricted property
24
+ # true if members of this administrative unit should be treated as sensitive, which requires specific permissions to manage. If not set, the default value is null and the default behavior is false. Use this property to define administrative units with roles that don't inherit from tenant-level administrators, and where the management of individual member objects is limited to administrators scoped to a restricted management administrative unit. This property is immutable and can't be changed later. For more information on how to work with restricted management administrative units, see Restricted management administrative units in Microsoft Entra ID.
25
25
  is_member_management_restricted: Optional[bool] = None
26
26
  # Users and groups that are members of this administrative unit. Supports $expand.
27
27
  members: Optional[list[DirectoryObject]] = None
@@ -0,0 +1,62 @@
1
+ from __future__ import annotations
2
+ from collections.abc import Callable
3
+ from dataclasses import dataclass, field
4
+ from kiota_abstractions.serialization import AdditionalDataHolder, Parsable, ParseNode, SerializationWriter
5
+ from kiota_abstractions.store import BackedModel, BackingStore, BackingStoreFactorySingleton
6
+ from typing import Any, Optional, TYPE_CHECKING, Union
7
+
8
+ @dataclass
9
+ class AiInteractionPlugin(AdditionalDataHolder, BackedModel, Parsable):
10
+ # Stores model information.
11
+ backing_store: BackingStore = field(default_factory=BackingStoreFactorySingleton(backing_store_factory=None).backing_store_factory.create_backing_store, repr=False)
12
+
13
+ # Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
14
+ additional_data: dict[str, Any] = field(default_factory=dict)
15
+ # The unique identifier of the plugin.
16
+ identifier: Optional[str] = None
17
+ # The display name of the plugin.
18
+ name: Optional[str] = None
19
+ # The OdataType property
20
+ odata_type: Optional[str] = None
21
+ # The version of the plugin used.
22
+ version: Optional[str] = None
23
+
24
+ @staticmethod
25
+ def create_from_discriminator_value(parse_node: ParseNode) -> AiInteractionPlugin:
26
+ """
27
+ Creates a new instance of the appropriate class based on discriminator value
28
+ param parse_node: The parse node to use to read the discriminator value and create the object
29
+ Returns: AiInteractionPlugin
30
+ """
31
+ if parse_node is None:
32
+ raise TypeError("parse_node cannot be null.")
33
+ return AiInteractionPlugin()
34
+
35
+ def get_field_deserializers(self,) -> dict[str, Callable[[ParseNode], None]]:
36
+ """
37
+ The deserialization information for the current model
38
+ Returns: dict[str, Callable[[ParseNode], None]]
39
+ """
40
+ fields: dict[str, Callable[[Any], None]] = {
41
+ "identifier": lambda n : setattr(self, 'identifier', n.get_str_value()),
42
+ "name": lambda n : setattr(self, 'name', n.get_str_value()),
43
+ "@odata.type": lambda n : setattr(self, 'odata_type', n.get_str_value()),
44
+ "version": lambda n : setattr(self, 'version', n.get_str_value()),
45
+ }
46
+ return fields
47
+
48
+ def serialize(self,writer: SerializationWriter) -> None:
49
+ """
50
+ Serializes information the current object
51
+ param writer: Serialization writer to use to serialize this model
52
+ Returns: None
53
+ """
54
+ if writer is None:
55
+ raise TypeError("writer cannot be null.")
56
+ writer.write_str_value("identifier", self.identifier)
57
+ writer.write_str_value("name", self.name)
58
+ writer.write_str_value("@odata.type", self.odata_type)
59
+ writer.write_str_value("version", self.version)
60
+ writer.write_additional_data_value(self.additional_data)
61
+
62
+
@@ -0,0 +1,57 @@
1
+ from __future__ import annotations
2
+ from collections.abc import Callable
3
+ from dataclasses import dataclass, field
4
+ from kiota_abstractions.serialization import Parsable, ParseNode, SerializationWriter
5
+ from typing import Any, Optional, TYPE_CHECKING, Union
6
+
7
+ if TYPE_CHECKING:
8
+ from .content_base import ContentBase
9
+
10
+ from .content_base import ContentBase
11
+
12
+ @dataclass
13
+ class BinaryContent(ContentBase, Parsable):
14
+ # The OdataType property
15
+ odata_type: Optional[str] = "#microsoft.graph.binaryContent"
16
+ # The binary content, encoded as a Base64 string. Inherited from contentBase.
17
+ data: Optional[bytes] = None
18
+
19
+ @staticmethod
20
+ def create_from_discriminator_value(parse_node: ParseNode) -> BinaryContent:
21
+ """
22
+ Creates a new instance of the appropriate class based on discriminator value
23
+ param parse_node: The parse node to use to read the discriminator value and create the object
24
+ Returns: BinaryContent
25
+ """
26
+ if parse_node is None:
27
+ raise TypeError("parse_node cannot be null.")
28
+ return BinaryContent()
29
+
30
+ def get_field_deserializers(self,) -> dict[str, Callable[[ParseNode], None]]:
31
+ """
32
+ The deserialization information for the current model
33
+ Returns: dict[str, Callable[[ParseNode], None]]
34
+ """
35
+ from .content_base import ContentBase
36
+
37
+ from .content_base import ContentBase
38
+
39
+ fields: dict[str, Callable[[Any], None]] = {
40
+ "data": lambda n : setattr(self, 'data', n.get_bytes_value()),
41
+ }
42
+ super_fields = super().get_field_deserializers()
43
+ fields.update(super_fields)
44
+ return fields
45
+
46
+ def serialize(self,writer: SerializationWriter) -> None:
47
+ """
48
+ Serializes information the current object
49
+ param writer: Serialization writer to use to serialize this model
50
+ Returns: None
51
+ """
52
+ if writer is None:
53
+ raise TypeError("writer cannot be null.")
54
+ super().serialize(writer)
55
+ writer.write_bytes_value("data", self.data)
56
+
57
+
@@ -0,0 +1,84 @@
1
+ from __future__ import annotations
2
+ import datetime
3
+ from collections.abc import Callable
4
+ from dataclasses import dataclass, field
5
+ from kiota_abstractions.serialization import Parsable, ParseNode, SerializationWriter
6
+ from typing import Any, Optional, TYPE_CHECKING, Union
7
+
8
+ if TYPE_CHECKING:
9
+ from .call_event_type import CallEventType
10
+ from .emergency_call_event import EmergencyCallEvent
11
+ from .entity import Entity
12
+ from .participant import Participant
13
+
14
+ from .entity import Entity
15
+
16
+ @dataclass
17
+ class CallEvent(Entity, Parsable):
18
+ # The callEventType property
19
+ call_event_type: Optional[CallEventType] = None
20
+ # The eventDateTime property
21
+ event_date_time: Optional[datetime.datetime] = None
22
+ # The OdataType property
23
+ odata_type: Optional[str] = None
24
+ # The participants property
25
+ participants: Optional[list[Participant]] = None
26
+
27
+ @staticmethod
28
+ def create_from_discriminator_value(parse_node: ParseNode) -> CallEvent:
29
+ """
30
+ Creates a new instance of the appropriate class based on discriminator value
31
+ param parse_node: The parse node to use to read the discriminator value and create the object
32
+ Returns: CallEvent
33
+ """
34
+ if parse_node is None:
35
+ raise TypeError("parse_node cannot be null.")
36
+ try:
37
+ child_node = parse_node.get_child_node("@odata.type")
38
+ mapping_value = child_node.get_str_value() if child_node else None
39
+ except AttributeError:
40
+ mapping_value = None
41
+ if mapping_value and mapping_value.casefold() == "#microsoft.graph.emergencyCallEvent".casefold():
42
+ from .emergency_call_event import EmergencyCallEvent
43
+
44
+ return EmergencyCallEvent()
45
+ return CallEvent()
46
+
47
+ def get_field_deserializers(self,) -> dict[str, Callable[[ParseNode], None]]:
48
+ """
49
+ The deserialization information for the current model
50
+ Returns: dict[str, Callable[[ParseNode], None]]
51
+ """
52
+ from .call_event_type import CallEventType
53
+ from .emergency_call_event import EmergencyCallEvent
54
+ from .entity import Entity
55
+ from .participant import Participant
56
+
57
+ from .call_event_type import CallEventType
58
+ from .emergency_call_event import EmergencyCallEvent
59
+ from .entity import Entity
60
+ from .participant import Participant
61
+
62
+ fields: dict[str, Callable[[Any], None]] = {
63
+ "callEventType": lambda n : setattr(self, 'call_event_type', n.get_enum_value(CallEventType)),
64
+ "eventDateTime": lambda n : setattr(self, 'event_date_time', n.get_datetime_value()),
65
+ "participants": lambda n : setattr(self, 'participants', n.get_collection_of_object_values(Participant)),
66
+ }
67
+ super_fields = super().get_field_deserializers()
68
+ fields.update(super_fields)
69
+ return fields
70
+
71
+ def serialize(self,writer: SerializationWriter) -> None:
72
+ """
73
+ Serializes information the current object
74
+ param writer: Serialization writer to use to serialize this model
75
+ Returns: None
76
+ """
77
+ if writer is None:
78
+ raise TypeError("writer cannot be null.")
79
+ super().serialize(writer)
80
+ writer.write_enum_value("callEventType", self.call_event_type)
81
+ writer.write_datetime_value("eventDateTime", self.event_date_time)
82
+ writer.write_collection_of_object_values("participants", self.participants)
83
+
84
+
@@ -0,0 +1,8 @@
1
+ from enum import Enum
2
+
3
+ class CallEventType(str, Enum):
4
+ CallStarted = "callStarted",
5
+ CallEnded = "callEnded",
6
+ UnknownFutureValue = "unknownFutureValue",
7
+ RosterUpdated = "rosterUpdated",
8
+
@@ -15,27 +15,27 @@ from .directory_object import DirectoryObject
15
15
  class CertificateAuthorityDetail(DirectoryObject, Parsable):
16
16
  # The OdataType property
17
17
  odata_type: Optional[str] = "#microsoft.graph.certificateAuthorityDetail"
18
- # The certificate property
18
+ # The public key of the certificate authority.
19
19
  certificate: Optional[bytes] = None
20
- # The certificateAuthorityType property
20
+ # The type of certificate authority. The possible values are: root, intermediate, unknownFutureValue. Supports $filter (eq).
21
21
  certificate_authority_type: Optional[CertificateAuthorityType] = None
22
- # The certificateRevocationListUrl property
22
+ # The URL to check if the certificate is revoked.
23
23
  certificate_revocation_list_url: Optional[str] = None
24
- # The createdDateTime property
24
+ # The date and time when the certificate authority was created.
25
25
  created_date_time: Optional[datetime.datetime] = None
26
26
  # The deltaCertificateRevocationListUrl property
27
27
  delta_certificate_revocation_list_url: Optional[str] = None
28
- # The displayName property
28
+ # The display name of the certificate authority.
29
29
  display_name: Optional[str] = None
30
- # The expirationDateTime property
30
+ # The date and time when the certificate authority expires. Supports $filter (eq) and $orderby.
31
31
  expiration_date_time: Optional[datetime.datetime] = None
32
- # The isIssuerHintEnabled property
32
+ # Indicates whether the certificate picker presents the certificate authority to the user to use for authentication. Default value is false. Optional.
33
33
  is_issuer_hint_enabled: Optional[bool] = None
34
- # The issuer property
34
+ # The issuer of the certificate authority.
35
35
  issuer: Optional[str] = None
36
- # The issuerSubjectKeyIdentifier property
36
+ # The subject key identifier of certificate authority.
37
37
  issuer_subject_key_identifier: Optional[str] = None
38
- # The thumbprint property
38
+ # The thumbprint of certificate authority certificate. Supports $filter (eq, startswith).
39
39
  thumbprint: Optional[str] = None
40
40
 
41
41
  @staticmethod
@@ -15,15 +15,15 @@ from .directory_object import DirectoryObject
15
15
  class CertificateBasedAuthPki(DirectoryObject, Parsable):
16
16
  # The OdataType property
17
17
  odata_type: Optional[str] = "#microsoft.graph.certificateBasedAuthPki"
18
- # The certificateAuthorities property
18
+ # The collection of certificate authorities contained in this public key infrastructure resource.
19
19
  certificate_authorities: Optional[list[CertificateAuthorityDetail]] = None
20
- # The displayName property
20
+ # The name of the object. Maximum length is 256 characters.
21
21
  display_name: Optional[str] = None
22
- # The lastModifiedDateTime property
22
+ # The date and time when the object was created or last modified.
23
23
  last_modified_date_time: Optional[datetime.datetime] = None
24
- # The status property
24
+ # The status of any asynchronous jobs runs on the object which can be upload or delete.
25
25
  status: Optional[str] = None
26
- # The statusDetails property
26
+ # The status details of the upload/deleted operation of PKI (Public Key Infrastructure).
27
27
  status_details: Optional[str] = None
28
28
 
29
29
  @staticmethod
@@ -0,0 +1,92 @@
1
+ from __future__ import annotations
2
+ from collections.abc import Callable
3
+ from dataclasses import dataclass, field
4
+ from kiota_abstractions.serialization import AdditionalDataHolder, Parsable, ParseNode, SerializationWriter
5
+ from kiota_abstractions.store import BackedModel, BackingStore, BackingStoreFactorySingleton
6
+ from typing import Any, Optional, TYPE_CHECKING, Union
7
+
8
+ if TYPE_CHECKING:
9
+ from .classification_error import ClassificationError
10
+ from .classification_inner_error import ClassificationInnerError
11
+ from .processing_error import ProcessingError
12
+
13
+ @dataclass
14
+ class ClassifcationErrorBase(AdditionalDataHolder, BackedModel, Parsable):
15
+ # Stores model information.
16
+ backing_store: BackingStore = field(default_factory=BackingStoreFactorySingleton(backing_store_factory=None).backing_store_factory.create_backing_store, repr=False)
17
+
18
+ # Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
19
+ additional_data: dict[str, Any] = field(default_factory=dict)
20
+ # A service-defined error code string.
21
+ code: Optional[str] = None
22
+ # Contains more specific, potentially internal error details.
23
+ inner_error: Optional[ClassificationInnerError] = None
24
+ # A human-readable representation of the error.
25
+ message: Optional[str] = None
26
+ # The OdataType property
27
+ odata_type: Optional[str] = None
28
+ # The target of the error (for example, the specific property or item causing the issue).
29
+ target: Optional[str] = None
30
+
31
+ @staticmethod
32
+ def create_from_discriminator_value(parse_node: ParseNode) -> ClassifcationErrorBase:
33
+ """
34
+ Creates a new instance of the appropriate class based on discriminator value
35
+ param parse_node: The parse node to use to read the discriminator value and create the object
36
+ Returns: ClassifcationErrorBase
37
+ """
38
+ if parse_node is None:
39
+ raise TypeError("parse_node cannot be null.")
40
+ try:
41
+ child_node = parse_node.get_child_node("@odata.type")
42
+ mapping_value = child_node.get_str_value() if child_node else None
43
+ except AttributeError:
44
+ mapping_value = None
45
+ if mapping_value and mapping_value.casefold() == "#microsoft.graph.classificationError".casefold():
46
+ from .classification_error import ClassificationError
47
+
48
+ return ClassificationError()
49
+ if mapping_value and mapping_value.casefold() == "#microsoft.graph.processingError".casefold():
50
+ from .processing_error import ProcessingError
51
+
52
+ return ProcessingError()
53
+ return ClassifcationErrorBase()
54
+
55
+ def get_field_deserializers(self,) -> dict[str, Callable[[ParseNode], None]]:
56
+ """
57
+ The deserialization information for the current model
58
+ Returns: dict[str, Callable[[ParseNode], None]]
59
+ """
60
+ from .classification_error import ClassificationError
61
+ from .classification_inner_error import ClassificationInnerError
62
+ from .processing_error import ProcessingError
63
+
64
+ from .classification_error import ClassificationError
65
+ from .classification_inner_error import ClassificationInnerError
66
+ from .processing_error import ProcessingError
67
+
68
+ fields: dict[str, Callable[[Any], None]] = {
69
+ "code": lambda n : setattr(self, 'code', n.get_str_value()),
70
+ "innerError": lambda n : setattr(self, 'inner_error', n.get_object_value(ClassificationInnerError)),
71
+ "message": lambda n : setattr(self, 'message', n.get_str_value()),
72
+ "@odata.type": lambda n : setattr(self, 'odata_type', n.get_str_value()),
73
+ "target": lambda n : setattr(self, 'target', n.get_str_value()),
74
+ }
75
+ return fields
76
+
77
+ def serialize(self,writer: SerializationWriter) -> None:
78
+ """
79
+ Serializes information the current object
80
+ param writer: Serialization writer to use to serialize this model
81
+ Returns: None
82
+ """
83
+ if writer is None:
84
+ raise TypeError("writer cannot be null.")
85
+ writer.write_str_value("code", self.code)
86
+ writer.write_object_value("innerError", self.inner_error)
87
+ writer.write_str_value("message", self.message)
88
+ writer.write_str_value("@odata.type", self.odata_type)
89
+ writer.write_str_value("target", self.target)
90
+ writer.write_additional_data_value(self.additional_data)
91
+
92
+
@@ -0,0 +1,69 @@
1
+ from __future__ import annotations
2
+ from collections.abc import Callable
3
+ from dataclasses import dataclass, field
4
+ from kiota_abstractions.serialization import Parsable, ParseNode, SerializationWriter
5
+ from typing import Any, Optional, TYPE_CHECKING, Union
6
+
7
+ if TYPE_CHECKING:
8
+ from .classifcation_error_base import ClassifcationErrorBase
9
+ from .processing_error import ProcessingError
10
+
11
+ from .classifcation_error_base import ClassifcationErrorBase
12
+
13
+ @dataclass
14
+ class ClassificationError(ClassifcationErrorBase, Parsable):
15
+ # A collection of more specific errors contributing to the overall error.
16
+ details: Optional[list[ClassifcationErrorBase]] = None
17
+ # The OdataType property
18
+ odata_type: Optional[str] = None
19
+
20
+ @staticmethod
21
+ def create_from_discriminator_value(parse_node: ParseNode) -> ClassificationError:
22
+ """
23
+ Creates a new instance of the appropriate class based on discriminator value
24
+ param parse_node: The parse node to use to read the discriminator value and create the object
25
+ Returns: ClassificationError
26
+ """
27
+ if parse_node is None:
28
+ raise TypeError("parse_node cannot be null.")
29
+ try:
30
+ child_node = parse_node.get_child_node("@odata.type")
31
+ mapping_value = child_node.get_str_value() if child_node else None
32
+ except AttributeError:
33
+ mapping_value = None
34
+ if mapping_value and mapping_value.casefold() == "#microsoft.graph.processingError".casefold():
35
+ from .processing_error import ProcessingError
36
+
37
+ return ProcessingError()
38
+ return ClassificationError()
39
+
40
+ def get_field_deserializers(self,) -> dict[str, Callable[[ParseNode], None]]:
41
+ """
42
+ The deserialization information for the current model
43
+ Returns: dict[str, Callable[[ParseNode], None]]
44
+ """
45
+ from .classifcation_error_base import ClassifcationErrorBase
46
+ from .processing_error import ProcessingError
47
+
48
+ from .classifcation_error_base import ClassifcationErrorBase
49
+ from .processing_error import ProcessingError
50
+
51
+ fields: dict[str, Callable[[Any], None]] = {
52
+ "details": lambda n : setattr(self, 'details', n.get_collection_of_object_values(ClassifcationErrorBase)),
53
+ }
54
+ super_fields = super().get_field_deserializers()
55
+ fields.update(super_fields)
56
+ return fields
57
+
58
+ def serialize(self,writer: SerializationWriter) -> None:
59
+ """
60
+ Serializes information the current object
61
+ param writer: Serialization writer to use to serialize this model
62
+ Returns: None
63
+ """
64
+ if writer is None:
65
+ raise TypeError("writer cannot be null.")
66
+ super().serialize(writer)
67
+ writer.write_collection_of_object_values("details", self.details)
68
+
69
+
@@ -0,0 +1,67 @@
1
+ from __future__ import annotations
2
+ import datetime
3
+ from collections.abc import Callable
4
+ from dataclasses import dataclass, field
5
+ from kiota_abstractions.serialization import AdditionalDataHolder, Parsable, ParseNode, SerializationWriter
6
+ from kiota_abstractions.store import BackedModel, BackingStore, BackingStoreFactorySingleton
7
+ from typing import Any, Optional, TYPE_CHECKING, Union
8
+
9
+ @dataclass
10
+ class ClassificationInnerError(AdditionalDataHolder, BackedModel, Parsable):
11
+ # Stores model information.
12
+ backing_store: BackingStore = field(default_factory=BackingStoreFactorySingleton(backing_store_factory=None).backing_store_factory.create_backing_store, repr=False)
13
+
14
+ # Stores additional data not described in the OpenAPI description found when deserializing. Can be used for serialization as well.
15
+ additional_data: dict[str, Any] = field(default_factory=dict)
16
+ # The activity ID associated with the request that generated the error.
17
+ activity_id: Optional[str] = None
18
+ # The client request ID, if provided by the caller.
19
+ client_request_id: Optional[str] = None
20
+ # A more specific, potentially internal, error code string.
21
+ code: Optional[str] = None
22
+ # The date and time the inner error occurred.
23
+ error_date_time: Optional[datetime.datetime] = None
24
+ # The OdataType property
25
+ odata_type: Optional[str] = None
26
+
27
+ @staticmethod
28
+ def create_from_discriminator_value(parse_node: ParseNode) -> ClassificationInnerError:
29
+ """
30
+ Creates a new instance of the appropriate class based on discriminator value
31
+ param parse_node: The parse node to use to read the discriminator value and create the object
32
+ Returns: ClassificationInnerError
33
+ """
34
+ if parse_node is None:
35
+ raise TypeError("parse_node cannot be null.")
36
+ return ClassificationInnerError()
37
+
38
+ def get_field_deserializers(self,) -> dict[str, Callable[[ParseNode], None]]:
39
+ """
40
+ The deserialization information for the current model
41
+ Returns: dict[str, Callable[[ParseNode], None]]
42
+ """
43
+ fields: dict[str, Callable[[Any], None]] = {
44
+ "activityId": lambda n : setattr(self, 'activity_id', n.get_str_value()),
45
+ "clientRequestId": lambda n : setattr(self, 'client_request_id', n.get_str_value()),
46
+ "code": lambda n : setattr(self, 'code', n.get_str_value()),
47
+ "errorDateTime": lambda n : setattr(self, 'error_date_time', n.get_datetime_value()),
48
+ "@odata.type": lambda n : setattr(self, 'odata_type', n.get_str_value()),
49
+ }
50
+ return fields
51
+
52
+ def serialize(self,writer: SerializationWriter) -> None:
53
+ """
54
+ Serializes information the current object
55
+ param writer: Serialization writer to use to serialize this model
56
+ Returns: None
57
+ """
58
+ if writer is None:
59
+ raise TypeError("writer cannot be null.")
60
+ writer.write_str_value("activityId", self.activity_id)
61
+ writer.write_str_value("clientRequestId", self.client_request_id)
62
+ writer.write_str_value("code", self.code)
63
+ writer.write_datetime_value("errorDateTime", self.error_date_time)
64
+ writer.write_str_value("@odata.type", self.odata_type)
65
+ writer.write_additional_data_value(self.additional_data)
66
+
67
+