"""Selectable Microsoft Graph fields per resource. Single source for defaults and Swagger descriptions.""" EVENT_FIELDS = ( "id", "subject", "bodyPreview", "body", "start", "end", "location", "locations", "attendees", "organizer", "webLink", "isOnlineMeeting", "onlineMeeting", "onlineMeetingUrl", "onlineMeetingProvider", "showAs", "isCancelled", "isAllDay", "isDraft", "isOrganizer", "isReminderOn", "reminderMinutesBeforeStart", "importance", "sensitivity", "categories", "recurrence", "seriesMasterId", "type", "responseStatus", "responseRequested", "allowNewTimeProposals", "hideAttendees", "hasAttachments", "iCalUId", "createdDateTime", "lastModifiedDateTime", "changeKey", "originalStart", "originalStartTimeZone", "originalEndTimeZone", "transactionId", ) EVENT_DEFAULT_SELECT = ( "id,subject,start,end,location,attendees,webLink,isOnlineMeeting,onlineMeeting,showAs,isCancelled,organizer" ) MESSAGE_FIELDS = ( "id", "subject", "body", "bodyPreview", "uniqueBody", "from", "sender", "toRecipients", "ccRecipients", "bccRecipients", "replyTo", "receivedDateTime", "sentDateTime", "createdDateTime", "lastModifiedDateTime", "hasAttachments", "isRead", "isDraft", "importance", "categories", "conversationId", "conversationIndex", "internetMessageId", "internetMessageHeaders", "flag", "parentFolderId", "webLink", "inferenceClassification", "isDeliveryReceiptRequested", "isReadReceiptRequested", "changeKey", ) MESSAGE_DEFAULT_SELECT = "id,subject,from,toRecipients,receivedDateTime,hasAttachments,isRead,webLink" GROUP_FIELDS = ( "id", "displayName", "description", "mail", "mailNickname", "mailEnabled", "securityEnabled", "groupTypes", "visibility", "classification", "createdDateTime", "renewedDateTime", "expirationDateTime", "resourceProvisioningOptions", "resourceBehaviorOptions", "proxyAddresses", "membershipRule", "membershipRuleProcessingState", "isAssignableToRole", "preferredLanguage", "theme", "onPremisesSyncEnabled", "deletedDateTime", ) GROUP_DEFAULT_SELECT = "id,displayName,mail,groupTypes,securityEnabled,mailEnabled" def select_description(default: str, fields: tuple[str, ...]) -> str: """Swagger text for the select query parameter.""" return ( "Comma separated Graph fields to return. Replaces the default selection. " f"Default: {default}. Available: {', '.join(fields)}." )