public Meeting(string id, bool archived, string summary, List <TDLocation> locations, List <TDMemberProfile> profiles, List <TDTeam> teams, CalendarEventSpec occurrenceRule, MeetingOrigin origin, MeetingVisibility visibility, MeetingModificationPreference modificationPreference, long etag, bool privateDataSubstituted, bool canModify, bool canDelete, bool canJoin, List <string> externalParticipants, string?description = null, string?conferenceLink = null, MeetingJoiningPreference?joiningPreference = null, MeetingOrganizer?organizer = null, string?linkToExternalSource = null, List <MeetingAttachment>?eventAttachments = null, EventConferenceData?conferenceData = null)
 {
     Id                       = id;
     IsArchived               = archived;
     Summary                  = summary;
     Description              = description;
     Locations                = locations;
     Profiles                 = profiles;
     Teams                    = teams;
     OccurrenceRule           = occurrenceRule;
     Origin                   = origin;
     ConferenceLink           = conferenceLink;
     Visibility               = visibility;
     ModificationPreference   = modificationPreference;
     JoiningPreference        = joiningPreference;
     Organizer                = organizer;
     Etag                     = etag;
     IsPrivateDataSubstituted = privateDataSubstituted;
     CanModify                = canModify;
     CanDelete                = canDelete;
     CanJoin                  = canJoin;
     ExternalParticipants     = externalParticipants;
     LinkToExternalSource     = linkToExternalSource;
     EventAttachments         = eventAttachments;
     ConferenceData           = conferenceData;
 }
 public CalendarsMeetingsPostRequest(string summary, CalendarEventSpec occurrenceRule, List<string>? locations = null, List<string>? profiles = null, List<string>? externalParticipants = null, List<string>? teams = null, MeetingVisibility visibility = MeetingVisibility.EVERYONE, MeetingModificationPreference modificationPreference = MeetingModificationPreference.PARTICIPANTS, MeetingJoiningPreference joiningPreference = MeetingJoiningPreference.NOBODY, bool notifyOnExport = true, string? description = null, string? organizer = null)
 {
     Summary = summary;
     Description = description;
     OccurrenceRule = occurrenceRule;
     Locations = (locations ?? new List<string>());
     Profiles = (profiles ?? new List<string>());
     ExternalParticipants = (externalParticipants ?? new List<string>());
     Teams = (teams ?? new List<string>());
     Visibility = visibility;
     ModificationPreference = modificationPreference;
     JoiningPreference = joiningPreference;
     IsNotifyOnExport = notifyOnExport;
     Organizer = organizer;
 }
            public async Task <Meeting> CreateMeetingAsync(string summary, CalendarEventSpec occurrenceRule, List <string>?locations = null, List <string>?profiles = null, List <string>?externalParticipants = null, List <string>?teams = null, MeetingVisibility visibility = MeetingVisibility.EVERYONE, MeetingModificationPreference modificationPreference = MeetingModificationPreference.PARTICIPANTS, MeetingJoiningPreference joiningPreference = MeetingJoiningPreference.NOBODY, bool notifyOnExport = true, string?description = null, string?organizer = null, Func <Partial <Meeting>, Partial <Meeting> >?partial = null, CancellationToken cancellationToken = default)
            {
                var queryParameters = new NameValueCollection();

                queryParameters.Append("$fields", (partial != null ? partial(new Partial <Meeting>()) : Partial <Meeting> .Default()).ToString());

                return(await _connection.RequestResourceAsync <CalendarsMeetingsPostRequest, Meeting>("POST", $"api/http/calendars/meetings{queryParameters.ToQueryString()}",
                                                                                                      new CalendarsMeetingsPostRequest
                {
                    Summary = summary,
                    Description = description,
                    OccurrenceRule = occurrenceRule,
                    Locations = (locations ?? new List <string>()),
                    Profiles = (profiles ?? new List <string>()),
                    ExternalParticipants = (externalParticipants ?? new List <string>()),
                    Teams = (teams ?? new List <string>()),
                    Visibility = visibility,
                    ModificationPreference = modificationPreference,
                    JoiningPreference = joiningPreference,
                    IsNotifyOnExport = notifyOnExport,
                    Organizer = organizer,
                }, cancellationToken));
            }