github.com/yaegashi/msgraph.go@v0.1.4/v1.0/ActionUser.go (about)

     1  // Code generated by msgraph.go/gen DO NOT EDIT.
     2  
     3  package msgraph
     4  
     5  import (
     6  	"context"
     7  	"fmt"
     8  	"io/ioutil"
     9  	"net/http"
    10  
    11  	"github.com/yaegashi/msgraph.go/jsonx"
    12  )
    13  
    14  // UserAssignLicenseRequestParameter undocumented
    15  type UserAssignLicenseRequestParameter struct {
    16  	// AddLicenses undocumented
    17  	AddLicenses []AssignedLicense `json:"addLicenses,omitempty"`
    18  	// RemoveLicenses undocumented
    19  	RemoveLicenses []UUID `json:"removeLicenses,omitempty"`
    20  }
    21  
    22  // UserChangePasswordRequestParameter undocumented
    23  type UserChangePasswordRequestParameter struct {
    24  	// CurrentPassword undocumented
    25  	CurrentPassword *string `json:"currentPassword,omitempty"`
    26  	// NewPassword undocumented
    27  	NewPassword *string `json:"newPassword,omitempty"`
    28  }
    29  
    30  // UserRevokeSignInSessionsRequestParameter undocumented
    31  type UserRevokeSignInSessionsRequestParameter struct {
    32  }
    33  
    34  // UserFindMeetingTimesRequestParameter undocumented
    35  type UserFindMeetingTimesRequestParameter struct {
    36  	// Attendees undocumented
    37  	Attendees []AttendeeBase `json:"attendees,omitempty"`
    38  	// LocationConstraint undocumented
    39  	LocationConstraint *LocationConstraint `json:"locationConstraint,omitempty"`
    40  	// TimeConstraint undocumented
    41  	TimeConstraint *TimeConstraint `json:"timeConstraint,omitempty"`
    42  	// MeetingDuration undocumented
    43  	MeetingDuration *Duration `json:"meetingDuration,omitempty"`
    44  	// MaxCandidates undocumented
    45  	MaxCandidates *int `json:"maxCandidates,omitempty"`
    46  	// IsOrganizerOptional undocumented
    47  	IsOrganizerOptional *bool `json:"isOrganizerOptional,omitempty"`
    48  	// ReturnSuggestionReasons undocumented
    49  	ReturnSuggestionReasons *bool `json:"returnSuggestionReasons,omitempty"`
    50  	// MinimumAttendeePercentage undocumented
    51  	MinimumAttendeePercentage *float64 `json:"minimumAttendeePercentage,omitempty"`
    52  }
    53  
    54  // UserSendMailRequestParameter undocumented
    55  type UserSendMailRequestParameter struct {
    56  	// Message undocumented
    57  	Message *Message `json:"Message,omitempty"`
    58  	// SaveToSentItems undocumented
    59  	SaveToSentItems *bool `json:"SaveToSentItems,omitempty"`
    60  }
    61  
    62  // UserGetMailTipsRequestParameter undocumented
    63  type UserGetMailTipsRequestParameter struct {
    64  	// EmailAddresses undocumented
    65  	EmailAddresses []string `json:"EmailAddresses,omitempty"`
    66  	// MailTipsOptions undocumented
    67  	MailTipsOptions *MailTipsType `json:"MailTipsOptions,omitempty"`
    68  }
    69  
    70  // UserTranslateExchangeIDsRequestParameter undocumented
    71  type UserTranslateExchangeIDsRequestParameter struct {
    72  	// InputIDs undocumented
    73  	InputIDs []string `json:"InputIds,omitempty"`
    74  	// TargetIDType undocumented
    75  	TargetIDType *ExchangeIDFormat `json:"TargetIdType,omitempty"`
    76  	// SourceIDType undocumented
    77  	SourceIDType *ExchangeIDFormat `json:"SourceIdType,omitempty"`
    78  }
    79  
    80  // UserRemoveAllDevicesFromManagementRequestParameter undocumented
    81  type UserRemoveAllDevicesFromManagementRequestParameter struct {
    82  }
    83  
    84  // UserWipeManagedAppRegistrationsByDeviceTagRequestParameter undocumented
    85  type UserWipeManagedAppRegistrationsByDeviceTagRequestParameter struct {
    86  	// DeviceTag undocumented
    87  	DeviceTag *string `json:"deviceTag,omitempty"`
    88  }
    89  
    90  // UserExportPersonalDataRequestParameter undocumented
    91  type UserExportPersonalDataRequestParameter struct {
    92  	// StorageLocation undocumented
    93  	StorageLocation *string `json:"storageLocation,omitempty"`
    94  }
    95  
    96  // Activities returns request builder for UserActivity collection
    97  func (b *UserRequestBuilder) Activities() *UserActivitiesCollectionRequestBuilder {
    98  	bb := &UserActivitiesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
    99  	bb.baseURL += "/activities"
   100  	return bb
   101  }
   102  
   103  // UserActivitiesCollectionRequestBuilder is request builder for UserActivity collection
   104  type UserActivitiesCollectionRequestBuilder struct{ BaseRequestBuilder }
   105  
   106  // Request returns request for UserActivity collection
   107  func (b *UserActivitiesCollectionRequestBuilder) Request() *UserActivitiesCollectionRequest {
   108  	return &UserActivitiesCollectionRequest{
   109  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   110  	}
   111  }
   112  
   113  // ID returns request builder for UserActivity item
   114  func (b *UserActivitiesCollectionRequestBuilder) ID(id string) *UserActivityRequestBuilder {
   115  	bb := &UserActivityRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   116  	bb.baseURL += "/" + id
   117  	return bb
   118  }
   119  
   120  // UserActivitiesCollectionRequest is request for UserActivity collection
   121  type UserActivitiesCollectionRequest struct{ BaseRequest }
   122  
   123  // Paging perfoms paging operation for UserActivity collection
   124  func (r *UserActivitiesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]UserActivity, error) {
   125  	req, err := r.NewJSONRequest(method, path, obj)
   126  	if err != nil {
   127  		return nil, err
   128  	}
   129  	if ctx != nil {
   130  		req = req.WithContext(ctx)
   131  	}
   132  	res, err := r.client.Do(req)
   133  	if err != nil {
   134  		return nil, err
   135  	}
   136  	var values []UserActivity
   137  	for {
   138  		if res.StatusCode != http.StatusOK {
   139  			b, _ := ioutil.ReadAll(res.Body)
   140  			res.Body.Close()
   141  			errRes := &ErrorResponse{Response: res}
   142  			err := jsonx.Unmarshal(b, errRes)
   143  			if err != nil {
   144  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
   145  			}
   146  			return nil, errRes
   147  		}
   148  		var (
   149  			paging Paging
   150  			value  []UserActivity
   151  		)
   152  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
   153  		res.Body.Close()
   154  		if err != nil {
   155  			return nil, err
   156  		}
   157  		err = jsonx.Unmarshal(paging.Value, &value)
   158  		if err != nil {
   159  			return nil, err
   160  		}
   161  		values = append(values, value...)
   162  		if n >= 0 {
   163  			n--
   164  		}
   165  		if n == 0 || len(paging.NextLink) == 0 {
   166  			return values, nil
   167  		}
   168  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   169  		if ctx != nil {
   170  			req = req.WithContext(ctx)
   171  		}
   172  		res, err = r.client.Do(req)
   173  		if err != nil {
   174  			return nil, err
   175  		}
   176  	}
   177  }
   178  
   179  // GetN performs GET request for UserActivity collection, max N pages
   180  func (r *UserActivitiesCollectionRequest) GetN(ctx context.Context, n int) ([]UserActivity, error) {
   181  	var query string
   182  	if r.query != nil {
   183  		query = "?" + r.query.Encode()
   184  	}
   185  	return r.Paging(ctx, "GET", query, nil, n)
   186  }
   187  
   188  // Get performs GET request for UserActivity collection
   189  func (r *UserActivitiesCollectionRequest) Get(ctx context.Context) ([]UserActivity, error) {
   190  	return r.GetN(ctx, 0)
   191  }
   192  
   193  // Add performs POST request for UserActivity collection
   194  func (r *UserActivitiesCollectionRequest) Add(ctx context.Context, reqObj *UserActivity) (resObj *UserActivity, err error) {
   195  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   196  	return
   197  }
   198  
   199  // Calendar is navigation property
   200  func (b *UserRequestBuilder) Calendar() *CalendarRequestBuilder {
   201  	bb := &CalendarRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   202  	bb.baseURL += "/calendar"
   203  	return bb
   204  }
   205  
   206  // CalendarGroups returns request builder for CalendarGroup collection
   207  func (b *UserRequestBuilder) CalendarGroups() *UserCalendarGroupsCollectionRequestBuilder {
   208  	bb := &UserCalendarGroupsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   209  	bb.baseURL += "/calendarGroups"
   210  	return bb
   211  }
   212  
   213  // UserCalendarGroupsCollectionRequestBuilder is request builder for CalendarGroup collection
   214  type UserCalendarGroupsCollectionRequestBuilder struct{ BaseRequestBuilder }
   215  
   216  // Request returns request for CalendarGroup collection
   217  func (b *UserCalendarGroupsCollectionRequestBuilder) Request() *UserCalendarGroupsCollectionRequest {
   218  	return &UserCalendarGroupsCollectionRequest{
   219  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   220  	}
   221  }
   222  
   223  // ID returns request builder for CalendarGroup item
   224  func (b *UserCalendarGroupsCollectionRequestBuilder) ID(id string) *CalendarGroupRequestBuilder {
   225  	bb := &CalendarGroupRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   226  	bb.baseURL += "/" + id
   227  	return bb
   228  }
   229  
   230  // UserCalendarGroupsCollectionRequest is request for CalendarGroup collection
   231  type UserCalendarGroupsCollectionRequest struct{ BaseRequest }
   232  
   233  // Paging perfoms paging operation for CalendarGroup collection
   234  func (r *UserCalendarGroupsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]CalendarGroup, error) {
   235  	req, err := r.NewJSONRequest(method, path, obj)
   236  	if err != nil {
   237  		return nil, err
   238  	}
   239  	if ctx != nil {
   240  		req = req.WithContext(ctx)
   241  	}
   242  	res, err := r.client.Do(req)
   243  	if err != nil {
   244  		return nil, err
   245  	}
   246  	var values []CalendarGroup
   247  	for {
   248  		if res.StatusCode != http.StatusOK {
   249  			b, _ := ioutil.ReadAll(res.Body)
   250  			res.Body.Close()
   251  			errRes := &ErrorResponse{Response: res}
   252  			err := jsonx.Unmarshal(b, errRes)
   253  			if err != nil {
   254  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
   255  			}
   256  			return nil, errRes
   257  		}
   258  		var (
   259  			paging Paging
   260  			value  []CalendarGroup
   261  		)
   262  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
   263  		res.Body.Close()
   264  		if err != nil {
   265  			return nil, err
   266  		}
   267  		err = jsonx.Unmarshal(paging.Value, &value)
   268  		if err != nil {
   269  			return nil, err
   270  		}
   271  		values = append(values, value...)
   272  		if n >= 0 {
   273  			n--
   274  		}
   275  		if n == 0 || len(paging.NextLink) == 0 {
   276  			return values, nil
   277  		}
   278  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   279  		if ctx != nil {
   280  			req = req.WithContext(ctx)
   281  		}
   282  		res, err = r.client.Do(req)
   283  		if err != nil {
   284  			return nil, err
   285  		}
   286  	}
   287  }
   288  
   289  // GetN performs GET request for CalendarGroup collection, max N pages
   290  func (r *UserCalendarGroupsCollectionRequest) GetN(ctx context.Context, n int) ([]CalendarGroup, error) {
   291  	var query string
   292  	if r.query != nil {
   293  		query = "?" + r.query.Encode()
   294  	}
   295  	return r.Paging(ctx, "GET", query, nil, n)
   296  }
   297  
   298  // Get performs GET request for CalendarGroup collection
   299  func (r *UserCalendarGroupsCollectionRequest) Get(ctx context.Context) ([]CalendarGroup, error) {
   300  	return r.GetN(ctx, 0)
   301  }
   302  
   303  // Add performs POST request for CalendarGroup collection
   304  func (r *UserCalendarGroupsCollectionRequest) Add(ctx context.Context, reqObj *CalendarGroup) (resObj *CalendarGroup, err error) {
   305  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   306  	return
   307  }
   308  
   309  // CalendarView returns request builder for Event collection
   310  func (b *UserRequestBuilder) CalendarView() *UserCalendarViewCollectionRequestBuilder {
   311  	bb := &UserCalendarViewCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   312  	bb.baseURL += "/calendarView"
   313  	return bb
   314  }
   315  
   316  // UserCalendarViewCollectionRequestBuilder is request builder for Event collection
   317  type UserCalendarViewCollectionRequestBuilder struct{ BaseRequestBuilder }
   318  
   319  // Request returns request for Event collection
   320  func (b *UserCalendarViewCollectionRequestBuilder) Request() *UserCalendarViewCollectionRequest {
   321  	return &UserCalendarViewCollectionRequest{
   322  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   323  	}
   324  }
   325  
   326  // ID returns request builder for Event item
   327  func (b *UserCalendarViewCollectionRequestBuilder) ID(id string) *EventRequestBuilder {
   328  	bb := &EventRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   329  	bb.baseURL += "/" + id
   330  	return bb
   331  }
   332  
   333  // UserCalendarViewCollectionRequest is request for Event collection
   334  type UserCalendarViewCollectionRequest struct{ BaseRequest }
   335  
   336  // Paging perfoms paging operation for Event collection
   337  func (r *UserCalendarViewCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]Event, error) {
   338  	req, err := r.NewJSONRequest(method, path, obj)
   339  	if err != nil {
   340  		return nil, err
   341  	}
   342  	if ctx != nil {
   343  		req = req.WithContext(ctx)
   344  	}
   345  	res, err := r.client.Do(req)
   346  	if err != nil {
   347  		return nil, err
   348  	}
   349  	var values []Event
   350  	for {
   351  		if res.StatusCode != http.StatusOK {
   352  			b, _ := ioutil.ReadAll(res.Body)
   353  			res.Body.Close()
   354  			errRes := &ErrorResponse{Response: res}
   355  			err := jsonx.Unmarshal(b, errRes)
   356  			if err != nil {
   357  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
   358  			}
   359  			return nil, errRes
   360  		}
   361  		var (
   362  			paging Paging
   363  			value  []Event
   364  		)
   365  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
   366  		res.Body.Close()
   367  		if err != nil {
   368  			return nil, err
   369  		}
   370  		err = jsonx.Unmarshal(paging.Value, &value)
   371  		if err != nil {
   372  			return nil, err
   373  		}
   374  		values = append(values, value...)
   375  		if n >= 0 {
   376  			n--
   377  		}
   378  		if n == 0 || len(paging.NextLink) == 0 {
   379  			return values, nil
   380  		}
   381  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   382  		if ctx != nil {
   383  			req = req.WithContext(ctx)
   384  		}
   385  		res, err = r.client.Do(req)
   386  		if err != nil {
   387  			return nil, err
   388  		}
   389  	}
   390  }
   391  
   392  // GetN performs GET request for Event collection, max N pages
   393  func (r *UserCalendarViewCollectionRequest) GetN(ctx context.Context, n int) ([]Event, error) {
   394  	var query string
   395  	if r.query != nil {
   396  		query = "?" + r.query.Encode()
   397  	}
   398  	return r.Paging(ctx, "GET", query, nil, n)
   399  }
   400  
   401  // Get performs GET request for Event collection
   402  func (r *UserCalendarViewCollectionRequest) Get(ctx context.Context) ([]Event, error) {
   403  	return r.GetN(ctx, 0)
   404  }
   405  
   406  // Add performs POST request for Event collection
   407  func (r *UserCalendarViewCollectionRequest) Add(ctx context.Context, reqObj *Event) (resObj *Event, err error) {
   408  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   409  	return
   410  }
   411  
   412  // Calendars returns request builder for Calendar collection
   413  func (b *UserRequestBuilder) Calendars() *UserCalendarsCollectionRequestBuilder {
   414  	bb := &UserCalendarsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   415  	bb.baseURL += "/calendars"
   416  	return bb
   417  }
   418  
   419  // UserCalendarsCollectionRequestBuilder is request builder for Calendar collection
   420  type UserCalendarsCollectionRequestBuilder struct{ BaseRequestBuilder }
   421  
   422  // Request returns request for Calendar collection
   423  func (b *UserCalendarsCollectionRequestBuilder) Request() *UserCalendarsCollectionRequest {
   424  	return &UserCalendarsCollectionRequest{
   425  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   426  	}
   427  }
   428  
   429  // ID returns request builder for Calendar item
   430  func (b *UserCalendarsCollectionRequestBuilder) ID(id string) *CalendarRequestBuilder {
   431  	bb := &CalendarRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   432  	bb.baseURL += "/" + id
   433  	return bb
   434  }
   435  
   436  // UserCalendarsCollectionRequest is request for Calendar collection
   437  type UserCalendarsCollectionRequest struct{ BaseRequest }
   438  
   439  // Paging perfoms paging operation for Calendar collection
   440  func (r *UserCalendarsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]Calendar, error) {
   441  	req, err := r.NewJSONRequest(method, path, obj)
   442  	if err != nil {
   443  		return nil, err
   444  	}
   445  	if ctx != nil {
   446  		req = req.WithContext(ctx)
   447  	}
   448  	res, err := r.client.Do(req)
   449  	if err != nil {
   450  		return nil, err
   451  	}
   452  	var values []Calendar
   453  	for {
   454  		if res.StatusCode != http.StatusOK {
   455  			b, _ := ioutil.ReadAll(res.Body)
   456  			res.Body.Close()
   457  			errRes := &ErrorResponse{Response: res}
   458  			err := jsonx.Unmarshal(b, errRes)
   459  			if err != nil {
   460  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
   461  			}
   462  			return nil, errRes
   463  		}
   464  		var (
   465  			paging Paging
   466  			value  []Calendar
   467  		)
   468  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
   469  		res.Body.Close()
   470  		if err != nil {
   471  			return nil, err
   472  		}
   473  		err = jsonx.Unmarshal(paging.Value, &value)
   474  		if err != nil {
   475  			return nil, err
   476  		}
   477  		values = append(values, value...)
   478  		if n >= 0 {
   479  			n--
   480  		}
   481  		if n == 0 || len(paging.NextLink) == 0 {
   482  			return values, nil
   483  		}
   484  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   485  		if ctx != nil {
   486  			req = req.WithContext(ctx)
   487  		}
   488  		res, err = r.client.Do(req)
   489  		if err != nil {
   490  			return nil, err
   491  		}
   492  	}
   493  }
   494  
   495  // GetN performs GET request for Calendar collection, max N pages
   496  func (r *UserCalendarsCollectionRequest) GetN(ctx context.Context, n int) ([]Calendar, error) {
   497  	var query string
   498  	if r.query != nil {
   499  		query = "?" + r.query.Encode()
   500  	}
   501  	return r.Paging(ctx, "GET", query, nil, n)
   502  }
   503  
   504  // Get performs GET request for Calendar collection
   505  func (r *UserCalendarsCollectionRequest) Get(ctx context.Context) ([]Calendar, error) {
   506  	return r.GetN(ctx, 0)
   507  }
   508  
   509  // Add performs POST request for Calendar collection
   510  func (r *UserCalendarsCollectionRequest) Add(ctx context.Context, reqObj *Calendar) (resObj *Calendar, err error) {
   511  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   512  	return
   513  }
   514  
   515  // ContactFolders returns request builder for ContactFolder collection
   516  func (b *UserRequestBuilder) ContactFolders() *UserContactFoldersCollectionRequestBuilder {
   517  	bb := &UserContactFoldersCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   518  	bb.baseURL += "/contactFolders"
   519  	return bb
   520  }
   521  
   522  // UserContactFoldersCollectionRequestBuilder is request builder for ContactFolder collection
   523  type UserContactFoldersCollectionRequestBuilder struct{ BaseRequestBuilder }
   524  
   525  // Request returns request for ContactFolder collection
   526  func (b *UserContactFoldersCollectionRequestBuilder) Request() *UserContactFoldersCollectionRequest {
   527  	return &UserContactFoldersCollectionRequest{
   528  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   529  	}
   530  }
   531  
   532  // ID returns request builder for ContactFolder item
   533  func (b *UserContactFoldersCollectionRequestBuilder) ID(id string) *ContactFolderRequestBuilder {
   534  	bb := &ContactFolderRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   535  	bb.baseURL += "/" + id
   536  	return bb
   537  }
   538  
   539  // UserContactFoldersCollectionRequest is request for ContactFolder collection
   540  type UserContactFoldersCollectionRequest struct{ BaseRequest }
   541  
   542  // Paging perfoms paging operation for ContactFolder collection
   543  func (r *UserContactFoldersCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]ContactFolder, error) {
   544  	req, err := r.NewJSONRequest(method, path, obj)
   545  	if err != nil {
   546  		return nil, err
   547  	}
   548  	if ctx != nil {
   549  		req = req.WithContext(ctx)
   550  	}
   551  	res, err := r.client.Do(req)
   552  	if err != nil {
   553  		return nil, err
   554  	}
   555  	var values []ContactFolder
   556  	for {
   557  		if res.StatusCode != http.StatusOK {
   558  			b, _ := ioutil.ReadAll(res.Body)
   559  			res.Body.Close()
   560  			errRes := &ErrorResponse{Response: res}
   561  			err := jsonx.Unmarshal(b, errRes)
   562  			if err != nil {
   563  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
   564  			}
   565  			return nil, errRes
   566  		}
   567  		var (
   568  			paging Paging
   569  			value  []ContactFolder
   570  		)
   571  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
   572  		res.Body.Close()
   573  		if err != nil {
   574  			return nil, err
   575  		}
   576  		err = jsonx.Unmarshal(paging.Value, &value)
   577  		if err != nil {
   578  			return nil, err
   579  		}
   580  		values = append(values, value...)
   581  		if n >= 0 {
   582  			n--
   583  		}
   584  		if n == 0 || len(paging.NextLink) == 0 {
   585  			return values, nil
   586  		}
   587  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   588  		if ctx != nil {
   589  			req = req.WithContext(ctx)
   590  		}
   591  		res, err = r.client.Do(req)
   592  		if err != nil {
   593  			return nil, err
   594  		}
   595  	}
   596  }
   597  
   598  // GetN performs GET request for ContactFolder collection, max N pages
   599  func (r *UserContactFoldersCollectionRequest) GetN(ctx context.Context, n int) ([]ContactFolder, error) {
   600  	var query string
   601  	if r.query != nil {
   602  		query = "?" + r.query.Encode()
   603  	}
   604  	return r.Paging(ctx, "GET", query, nil, n)
   605  }
   606  
   607  // Get performs GET request for ContactFolder collection
   608  func (r *UserContactFoldersCollectionRequest) Get(ctx context.Context) ([]ContactFolder, error) {
   609  	return r.GetN(ctx, 0)
   610  }
   611  
   612  // Add performs POST request for ContactFolder collection
   613  func (r *UserContactFoldersCollectionRequest) Add(ctx context.Context, reqObj *ContactFolder) (resObj *ContactFolder, err error) {
   614  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   615  	return
   616  }
   617  
   618  // Contacts returns request builder for Contact collection
   619  func (b *UserRequestBuilder) Contacts() *UserContactsCollectionRequestBuilder {
   620  	bb := &UserContactsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   621  	bb.baseURL += "/contacts"
   622  	return bb
   623  }
   624  
   625  // UserContactsCollectionRequestBuilder is request builder for Contact collection
   626  type UserContactsCollectionRequestBuilder struct{ BaseRequestBuilder }
   627  
   628  // Request returns request for Contact collection
   629  func (b *UserContactsCollectionRequestBuilder) Request() *UserContactsCollectionRequest {
   630  	return &UserContactsCollectionRequest{
   631  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   632  	}
   633  }
   634  
   635  // ID returns request builder for Contact item
   636  func (b *UserContactsCollectionRequestBuilder) ID(id string) *ContactRequestBuilder {
   637  	bb := &ContactRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   638  	bb.baseURL += "/" + id
   639  	return bb
   640  }
   641  
   642  // UserContactsCollectionRequest is request for Contact collection
   643  type UserContactsCollectionRequest struct{ BaseRequest }
   644  
   645  // Paging perfoms paging operation for Contact collection
   646  func (r *UserContactsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]Contact, error) {
   647  	req, err := r.NewJSONRequest(method, path, obj)
   648  	if err != nil {
   649  		return nil, err
   650  	}
   651  	if ctx != nil {
   652  		req = req.WithContext(ctx)
   653  	}
   654  	res, err := r.client.Do(req)
   655  	if err != nil {
   656  		return nil, err
   657  	}
   658  	var values []Contact
   659  	for {
   660  		if res.StatusCode != http.StatusOK {
   661  			b, _ := ioutil.ReadAll(res.Body)
   662  			res.Body.Close()
   663  			errRes := &ErrorResponse{Response: res}
   664  			err := jsonx.Unmarshal(b, errRes)
   665  			if err != nil {
   666  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
   667  			}
   668  			return nil, errRes
   669  		}
   670  		var (
   671  			paging Paging
   672  			value  []Contact
   673  		)
   674  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
   675  		res.Body.Close()
   676  		if err != nil {
   677  			return nil, err
   678  		}
   679  		err = jsonx.Unmarshal(paging.Value, &value)
   680  		if err != nil {
   681  			return nil, err
   682  		}
   683  		values = append(values, value...)
   684  		if n >= 0 {
   685  			n--
   686  		}
   687  		if n == 0 || len(paging.NextLink) == 0 {
   688  			return values, nil
   689  		}
   690  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   691  		if ctx != nil {
   692  			req = req.WithContext(ctx)
   693  		}
   694  		res, err = r.client.Do(req)
   695  		if err != nil {
   696  			return nil, err
   697  		}
   698  	}
   699  }
   700  
   701  // GetN performs GET request for Contact collection, max N pages
   702  func (r *UserContactsCollectionRequest) GetN(ctx context.Context, n int) ([]Contact, error) {
   703  	var query string
   704  	if r.query != nil {
   705  		query = "?" + r.query.Encode()
   706  	}
   707  	return r.Paging(ctx, "GET", query, nil, n)
   708  }
   709  
   710  // Get performs GET request for Contact collection
   711  func (r *UserContactsCollectionRequest) Get(ctx context.Context) ([]Contact, error) {
   712  	return r.GetN(ctx, 0)
   713  }
   714  
   715  // Add performs POST request for Contact collection
   716  func (r *UserContactsCollectionRequest) Add(ctx context.Context, reqObj *Contact) (resObj *Contact, err error) {
   717  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   718  	return
   719  }
   720  
   721  // CreatedObjects returns request builder for DirectoryObject collection
   722  func (b *UserRequestBuilder) CreatedObjects() *UserCreatedObjectsCollectionRequestBuilder {
   723  	bb := &UserCreatedObjectsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   724  	bb.baseURL += "/createdObjects"
   725  	return bb
   726  }
   727  
   728  // UserCreatedObjectsCollectionRequestBuilder is request builder for DirectoryObject collection
   729  type UserCreatedObjectsCollectionRequestBuilder struct{ BaseRequestBuilder }
   730  
   731  // Request returns request for DirectoryObject collection
   732  func (b *UserCreatedObjectsCollectionRequestBuilder) Request() *UserCreatedObjectsCollectionRequest {
   733  	return &UserCreatedObjectsCollectionRequest{
   734  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   735  	}
   736  }
   737  
   738  // ID returns request builder for DirectoryObject item
   739  func (b *UserCreatedObjectsCollectionRequestBuilder) ID(id string) *DirectoryObjectRequestBuilder {
   740  	bb := &DirectoryObjectRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   741  	bb.baseURL += "/" + id
   742  	return bb
   743  }
   744  
   745  // UserCreatedObjectsCollectionRequest is request for DirectoryObject collection
   746  type UserCreatedObjectsCollectionRequest struct{ BaseRequest }
   747  
   748  // Paging perfoms paging operation for DirectoryObject collection
   749  func (r *UserCreatedObjectsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]DirectoryObject, error) {
   750  	req, err := r.NewJSONRequest(method, path, obj)
   751  	if err != nil {
   752  		return nil, err
   753  	}
   754  	if ctx != nil {
   755  		req = req.WithContext(ctx)
   756  	}
   757  	res, err := r.client.Do(req)
   758  	if err != nil {
   759  		return nil, err
   760  	}
   761  	var values []DirectoryObject
   762  	for {
   763  		if res.StatusCode != http.StatusOK {
   764  			b, _ := ioutil.ReadAll(res.Body)
   765  			res.Body.Close()
   766  			errRes := &ErrorResponse{Response: res}
   767  			err := jsonx.Unmarshal(b, errRes)
   768  			if err != nil {
   769  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
   770  			}
   771  			return nil, errRes
   772  		}
   773  		var (
   774  			paging Paging
   775  			value  []DirectoryObject
   776  		)
   777  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
   778  		res.Body.Close()
   779  		if err != nil {
   780  			return nil, err
   781  		}
   782  		err = jsonx.Unmarshal(paging.Value, &value)
   783  		if err != nil {
   784  			return nil, err
   785  		}
   786  		values = append(values, value...)
   787  		if n >= 0 {
   788  			n--
   789  		}
   790  		if n == 0 || len(paging.NextLink) == 0 {
   791  			return values, nil
   792  		}
   793  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   794  		if ctx != nil {
   795  			req = req.WithContext(ctx)
   796  		}
   797  		res, err = r.client.Do(req)
   798  		if err != nil {
   799  			return nil, err
   800  		}
   801  	}
   802  }
   803  
   804  // GetN performs GET request for DirectoryObject collection, max N pages
   805  func (r *UserCreatedObjectsCollectionRequest) GetN(ctx context.Context, n int) ([]DirectoryObject, error) {
   806  	var query string
   807  	if r.query != nil {
   808  		query = "?" + r.query.Encode()
   809  	}
   810  	return r.Paging(ctx, "GET", query, nil, n)
   811  }
   812  
   813  // Get performs GET request for DirectoryObject collection
   814  func (r *UserCreatedObjectsCollectionRequest) Get(ctx context.Context) ([]DirectoryObject, error) {
   815  	return r.GetN(ctx, 0)
   816  }
   817  
   818  // Add performs POST request for DirectoryObject collection
   819  func (r *UserCreatedObjectsCollectionRequest) Add(ctx context.Context, reqObj *DirectoryObject) (resObj *DirectoryObject, err error) {
   820  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   821  	return
   822  }
   823  
   824  // DeviceManagementTroubleshootingEvents returns request builder for DeviceManagementTroubleshootingEvent collection
   825  func (b *UserRequestBuilder) DeviceManagementTroubleshootingEvents() *UserDeviceManagementTroubleshootingEventsCollectionRequestBuilder {
   826  	bb := &UserDeviceManagementTroubleshootingEventsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   827  	bb.baseURL += "/deviceManagementTroubleshootingEvents"
   828  	return bb
   829  }
   830  
   831  // UserDeviceManagementTroubleshootingEventsCollectionRequestBuilder is request builder for DeviceManagementTroubleshootingEvent collection
   832  type UserDeviceManagementTroubleshootingEventsCollectionRequestBuilder struct{ BaseRequestBuilder }
   833  
   834  // Request returns request for DeviceManagementTroubleshootingEvent collection
   835  func (b *UserDeviceManagementTroubleshootingEventsCollectionRequestBuilder) Request() *UserDeviceManagementTroubleshootingEventsCollectionRequest {
   836  	return &UserDeviceManagementTroubleshootingEventsCollectionRequest{
   837  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   838  	}
   839  }
   840  
   841  // ID returns request builder for DeviceManagementTroubleshootingEvent item
   842  func (b *UserDeviceManagementTroubleshootingEventsCollectionRequestBuilder) ID(id string) *DeviceManagementTroubleshootingEventRequestBuilder {
   843  	bb := &DeviceManagementTroubleshootingEventRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   844  	bb.baseURL += "/" + id
   845  	return bb
   846  }
   847  
   848  // UserDeviceManagementTroubleshootingEventsCollectionRequest is request for DeviceManagementTroubleshootingEvent collection
   849  type UserDeviceManagementTroubleshootingEventsCollectionRequest struct{ BaseRequest }
   850  
   851  // Paging perfoms paging operation for DeviceManagementTroubleshootingEvent collection
   852  func (r *UserDeviceManagementTroubleshootingEventsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]DeviceManagementTroubleshootingEvent, error) {
   853  	req, err := r.NewJSONRequest(method, path, obj)
   854  	if err != nil {
   855  		return nil, err
   856  	}
   857  	if ctx != nil {
   858  		req = req.WithContext(ctx)
   859  	}
   860  	res, err := r.client.Do(req)
   861  	if err != nil {
   862  		return nil, err
   863  	}
   864  	var values []DeviceManagementTroubleshootingEvent
   865  	for {
   866  		if res.StatusCode != http.StatusOK {
   867  			b, _ := ioutil.ReadAll(res.Body)
   868  			res.Body.Close()
   869  			errRes := &ErrorResponse{Response: res}
   870  			err := jsonx.Unmarshal(b, errRes)
   871  			if err != nil {
   872  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
   873  			}
   874  			return nil, errRes
   875  		}
   876  		var (
   877  			paging Paging
   878  			value  []DeviceManagementTroubleshootingEvent
   879  		)
   880  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
   881  		res.Body.Close()
   882  		if err != nil {
   883  			return nil, err
   884  		}
   885  		err = jsonx.Unmarshal(paging.Value, &value)
   886  		if err != nil {
   887  			return nil, err
   888  		}
   889  		values = append(values, value...)
   890  		if n >= 0 {
   891  			n--
   892  		}
   893  		if n == 0 || len(paging.NextLink) == 0 {
   894  			return values, nil
   895  		}
   896  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   897  		if ctx != nil {
   898  			req = req.WithContext(ctx)
   899  		}
   900  		res, err = r.client.Do(req)
   901  		if err != nil {
   902  			return nil, err
   903  		}
   904  	}
   905  }
   906  
   907  // GetN performs GET request for DeviceManagementTroubleshootingEvent collection, max N pages
   908  func (r *UserDeviceManagementTroubleshootingEventsCollectionRequest) GetN(ctx context.Context, n int) ([]DeviceManagementTroubleshootingEvent, error) {
   909  	var query string
   910  	if r.query != nil {
   911  		query = "?" + r.query.Encode()
   912  	}
   913  	return r.Paging(ctx, "GET", query, nil, n)
   914  }
   915  
   916  // Get performs GET request for DeviceManagementTroubleshootingEvent collection
   917  func (r *UserDeviceManagementTroubleshootingEventsCollectionRequest) Get(ctx context.Context) ([]DeviceManagementTroubleshootingEvent, error) {
   918  	return r.GetN(ctx, 0)
   919  }
   920  
   921  // Add performs POST request for DeviceManagementTroubleshootingEvent collection
   922  func (r *UserDeviceManagementTroubleshootingEventsCollectionRequest) Add(ctx context.Context, reqObj *DeviceManagementTroubleshootingEvent) (resObj *DeviceManagementTroubleshootingEvent, err error) {
   923  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   924  	return
   925  }
   926  
   927  // DirectReports returns request builder for DirectoryObject collection
   928  func (b *UserRequestBuilder) DirectReports() *UserDirectReportsCollectionRequestBuilder {
   929  	bb := &UserDirectReportsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   930  	bb.baseURL += "/directReports"
   931  	return bb
   932  }
   933  
   934  // UserDirectReportsCollectionRequestBuilder is request builder for DirectoryObject collection
   935  type UserDirectReportsCollectionRequestBuilder struct{ BaseRequestBuilder }
   936  
   937  // Request returns request for DirectoryObject collection
   938  func (b *UserDirectReportsCollectionRequestBuilder) Request() *UserDirectReportsCollectionRequest {
   939  	return &UserDirectReportsCollectionRequest{
   940  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   941  	}
   942  }
   943  
   944  // ID returns request builder for DirectoryObject item
   945  func (b *UserDirectReportsCollectionRequestBuilder) ID(id string) *DirectoryObjectRequestBuilder {
   946  	bb := &DirectoryObjectRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   947  	bb.baseURL += "/" + id
   948  	return bb
   949  }
   950  
   951  // UserDirectReportsCollectionRequest is request for DirectoryObject collection
   952  type UserDirectReportsCollectionRequest struct{ BaseRequest }
   953  
   954  // Paging perfoms paging operation for DirectoryObject collection
   955  func (r *UserDirectReportsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]DirectoryObject, error) {
   956  	req, err := r.NewJSONRequest(method, path, obj)
   957  	if err != nil {
   958  		return nil, err
   959  	}
   960  	if ctx != nil {
   961  		req = req.WithContext(ctx)
   962  	}
   963  	res, err := r.client.Do(req)
   964  	if err != nil {
   965  		return nil, err
   966  	}
   967  	var values []DirectoryObject
   968  	for {
   969  		if res.StatusCode != http.StatusOK {
   970  			b, _ := ioutil.ReadAll(res.Body)
   971  			res.Body.Close()
   972  			errRes := &ErrorResponse{Response: res}
   973  			err := jsonx.Unmarshal(b, errRes)
   974  			if err != nil {
   975  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
   976  			}
   977  			return nil, errRes
   978  		}
   979  		var (
   980  			paging Paging
   981  			value  []DirectoryObject
   982  		)
   983  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
   984  		res.Body.Close()
   985  		if err != nil {
   986  			return nil, err
   987  		}
   988  		err = jsonx.Unmarshal(paging.Value, &value)
   989  		if err != nil {
   990  			return nil, err
   991  		}
   992  		values = append(values, value...)
   993  		if n >= 0 {
   994  			n--
   995  		}
   996  		if n == 0 || len(paging.NextLink) == 0 {
   997  			return values, nil
   998  		}
   999  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  1000  		if ctx != nil {
  1001  			req = req.WithContext(ctx)
  1002  		}
  1003  		res, err = r.client.Do(req)
  1004  		if err != nil {
  1005  			return nil, err
  1006  		}
  1007  	}
  1008  }
  1009  
  1010  // GetN performs GET request for DirectoryObject collection, max N pages
  1011  func (r *UserDirectReportsCollectionRequest) GetN(ctx context.Context, n int) ([]DirectoryObject, error) {
  1012  	var query string
  1013  	if r.query != nil {
  1014  		query = "?" + r.query.Encode()
  1015  	}
  1016  	return r.Paging(ctx, "GET", query, nil, n)
  1017  }
  1018  
  1019  // Get performs GET request for DirectoryObject collection
  1020  func (r *UserDirectReportsCollectionRequest) Get(ctx context.Context) ([]DirectoryObject, error) {
  1021  	return r.GetN(ctx, 0)
  1022  }
  1023  
  1024  // Add performs POST request for DirectoryObject collection
  1025  func (r *UserDirectReportsCollectionRequest) Add(ctx context.Context, reqObj *DirectoryObject) (resObj *DirectoryObject, err error) {
  1026  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  1027  	return
  1028  }
  1029  
  1030  // Drive is navigation property
  1031  func (b *UserRequestBuilder) Drive() *DriveRequestBuilder {
  1032  	bb := &DriveRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1033  	bb.baseURL += "/drive"
  1034  	return bb
  1035  }
  1036  
  1037  // Drives returns request builder for Drive collection
  1038  func (b *UserRequestBuilder) Drives() *UserDrivesCollectionRequestBuilder {
  1039  	bb := &UserDrivesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1040  	bb.baseURL += "/drives"
  1041  	return bb
  1042  }
  1043  
  1044  // UserDrivesCollectionRequestBuilder is request builder for Drive collection
  1045  type UserDrivesCollectionRequestBuilder struct{ BaseRequestBuilder }
  1046  
  1047  // Request returns request for Drive collection
  1048  func (b *UserDrivesCollectionRequestBuilder) Request() *UserDrivesCollectionRequest {
  1049  	return &UserDrivesCollectionRequest{
  1050  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  1051  	}
  1052  }
  1053  
  1054  // ID returns request builder for Drive item
  1055  func (b *UserDrivesCollectionRequestBuilder) ID(id string) *DriveRequestBuilder {
  1056  	bb := &DriveRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1057  	bb.baseURL += "/" + id
  1058  	return bb
  1059  }
  1060  
  1061  // UserDrivesCollectionRequest is request for Drive collection
  1062  type UserDrivesCollectionRequest struct{ BaseRequest }
  1063  
  1064  // Paging perfoms paging operation for Drive collection
  1065  func (r *UserDrivesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]Drive, error) {
  1066  	req, err := r.NewJSONRequest(method, path, obj)
  1067  	if err != nil {
  1068  		return nil, err
  1069  	}
  1070  	if ctx != nil {
  1071  		req = req.WithContext(ctx)
  1072  	}
  1073  	res, err := r.client.Do(req)
  1074  	if err != nil {
  1075  		return nil, err
  1076  	}
  1077  	var values []Drive
  1078  	for {
  1079  		if res.StatusCode != http.StatusOK {
  1080  			b, _ := ioutil.ReadAll(res.Body)
  1081  			res.Body.Close()
  1082  			errRes := &ErrorResponse{Response: res}
  1083  			err := jsonx.Unmarshal(b, errRes)
  1084  			if err != nil {
  1085  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  1086  			}
  1087  			return nil, errRes
  1088  		}
  1089  		var (
  1090  			paging Paging
  1091  			value  []Drive
  1092  		)
  1093  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  1094  		res.Body.Close()
  1095  		if err != nil {
  1096  			return nil, err
  1097  		}
  1098  		err = jsonx.Unmarshal(paging.Value, &value)
  1099  		if err != nil {
  1100  			return nil, err
  1101  		}
  1102  		values = append(values, value...)
  1103  		if n >= 0 {
  1104  			n--
  1105  		}
  1106  		if n == 0 || len(paging.NextLink) == 0 {
  1107  			return values, nil
  1108  		}
  1109  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  1110  		if ctx != nil {
  1111  			req = req.WithContext(ctx)
  1112  		}
  1113  		res, err = r.client.Do(req)
  1114  		if err != nil {
  1115  			return nil, err
  1116  		}
  1117  	}
  1118  }
  1119  
  1120  // GetN performs GET request for Drive collection, max N pages
  1121  func (r *UserDrivesCollectionRequest) GetN(ctx context.Context, n int) ([]Drive, error) {
  1122  	var query string
  1123  	if r.query != nil {
  1124  		query = "?" + r.query.Encode()
  1125  	}
  1126  	return r.Paging(ctx, "GET", query, nil, n)
  1127  }
  1128  
  1129  // Get performs GET request for Drive collection
  1130  func (r *UserDrivesCollectionRequest) Get(ctx context.Context) ([]Drive, error) {
  1131  	return r.GetN(ctx, 0)
  1132  }
  1133  
  1134  // Add performs POST request for Drive collection
  1135  func (r *UserDrivesCollectionRequest) Add(ctx context.Context, reqObj *Drive) (resObj *Drive, err error) {
  1136  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  1137  	return
  1138  }
  1139  
  1140  // Events returns request builder for Event collection
  1141  func (b *UserRequestBuilder) Events() *UserEventsCollectionRequestBuilder {
  1142  	bb := &UserEventsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1143  	bb.baseURL += "/events"
  1144  	return bb
  1145  }
  1146  
  1147  // UserEventsCollectionRequestBuilder is request builder for Event collection
  1148  type UserEventsCollectionRequestBuilder struct{ BaseRequestBuilder }
  1149  
  1150  // Request returns request for Event collection
  1151  func (b *UserEventsCollectionRequestBuilder) Request() *UserEventsCollectionRequest {
  1152  	return &UserEventsCollectionRequest{
  1153  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  1154  	}
  1155  }
  1156  
  1157  // ID returns request builder for Event item
  1158  func (b *UserEventsCollectionRequestBuilder) ID(id string) *EventRequestBuilder {
  1159  	bb := &EventRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1160  	bb.baseURL += "/" + id
  1161  	return bb
  1162  }
  1163  
  1164  // UserEventsCollectionRequest is request for Event collection
  1165  type UserEventsCollectionRequest struct{ BaseRequest }
  1166  
  1167  // Paging perfoms paging operation for Event collection
  1168  func (r *UserEventsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]Event, error) {
  1169  	req, err := r.NewJSONRequest(method, path, obj)
  1170  	if err != nil {
  1171  		return nil, err
  1172  	}
  1173  	if ctx != nil {
  1174  		req = req.WithContext(ctx)
  1175  	}
  1176  	res, err := r.client.Do(req)
  1177  	if err != nil {
  1178  		return nil, err
  1179  	}
  1180  	var values []Event
  1181  	for {
  1182  		if res.StatusCode != http.StatusOK {
  1183  			b, _ := ioutil.ReadAll(res.Body)
  1184  			res.Body.Close()
  1185  			errRes := &ErrorResponse{Response: res}
  1186  			err := jsonx.Unmarshal(b, errRes)
  1187  			if err != nil {
  1188  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  1189  			}
  1190  			return nil, errRes
  1191  		}
  1192  		var (
  1193  			paging Paging
  1194  			value  []Event
  1195  		)
  1196  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  1197  		res.Body.Close()
  1198  		if err != nil {
  1199  			return nil, err
  1200  		}
  1201  		err = jsonx.Unmarshal(paging.Value, &value)
  1202  		if err != nil {
  1203  			return nil, err
  1204  		}
  1205  		values = append(values, value...)
  1206  		if n >= 0 {
  1207  			n--
  1208  		}
  1209  		if n == 0 || len(paging.NextLink) == 0 {
  1210  			return values, nil
  1211  		}
  1212  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  1213  		if ctx != nil {
  1214  			req = req.WithContext(ctx)
  1215  		}
  1216  		res, err = r.client.Do(req)
  1217  		if err != nil {
  1218  			return nil, err
  1219  		}
  1220  	}
  1221  }
  1222  
  1223  // GetN performs GET request for Event collection, max N pages
  1224  func (r *UserEventsCollectionRequest) GetN(ctx context.Context, n int) ([]Event, error) {
  1225  	var query string
  1226  	if r.query != nil {
  1227  		query = "?" + r.query.Encode()
  1228  	}
  1229  	return r.Paging(ctx, "GET", query, nil, n)
  1230  }
  1231  
  1232  // Get performs GET request for Event collection
  1233  func (r *UserEventsCollectionRequest) Get(ctx context.Context) ([]Event, error) {
  1234  	return r.GetN(ctx, 0)
  1235  }
  1236  
  1237  // Add performs POST request for Event collection
  1238  func (r *UserEventsCollectionRequest) Add(ctx context.Context, reqObj *Event) (resObj *Event, err error) {
  1239  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  1240  	return
  1241  }
  1242  
  1243  // Extensions returns request builder for Extension collection
  1244  func (b *UserRequestBuilder) Extensions() *UserExtensionsCollectionRequestBuilder {
  1245  	bb := &UserExtensionsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1246  	bb.baseURL += "/extensions"
  1247  	return bb
  1248  }
  1249  
  1250  // UserExtensionsCollectionRequestBuilder is request builder for Extension collection
  1251  type UserExtensionsCollectionRequestBuilder struct{ BaseRequestBuilder }
  1252  
  1253  // Request returns request for Extension collection
  1254  func (b *UserExtensionsCollectionRequestBuilder) Request() *UserExtensionsCollectionRequest {
  1255  	return &UserExtensionsCollectionRequest{
  1256  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  1257  	}
  1258  }
  1259  
  1260  // ID returns request builder for Extension item
  1261  func (b *UserExtensionsCollectionRequestBuilder) ID(id string) *ExtensionRequestBuilder {
  1262  	bb := &ExtensionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1263  	bb.baseURL += "/" + id
  1264  	return bb
  1265  }
  1266  
  1267  // UserExtensionsCollectionRequest is request for Extension collection
  1268  type UserExtensionsCollectionRequest struct{ BaseRequest }
  1269  
  1270  // Paging perfoms paging operation for Extension collection
  1271  func (r *UserExtensionsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]Extension, error) {
  1272  	req, err := r.NewJSONRequest(method, path, obj)
  1273  	if err != nil {
  1274  		return nil, err
  1275  	}
  1276  	if ctx != nil {
  1277  		req = req.WithContext(ctx)
  1278  	}
  1279  	res, err := r.client.Do(req)
  1280  	if err != nil {
  1281  		return nil, err
  1282  	}
  1283  	var values []Extension
  1284  	for {
  1285  		if res.StatusCode != http.StatusOK {
  1286  			b, _ := ioutil.ReadAll(res.Body)
  1287  			res.Body.Close()
  1288  			errRes := &ErrorResponse{Response: res}
  1289  			err := jsonx.Unmarshal(b, errRes)
  1290  			if err != nil {
  1291  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  1292  			}
  1293  			return nil, errRes
  1294  		}
  1295  		var (
  1296  			paging Paging
  1297  			value  []Extension
  1298  		)
  1299  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  1300  		res.Body.Close()
  1301  		if err != nil {
  1302  			return nil, err
  1303  		}
  1304  		err = jsonx.Unmarshal(paging.Value, &value)
  1305  		if err != nil {
  1306  			return nil, err
  1307  		}
  1308  		values = append(values, value...)
  1309  		if n >= 0 {
  1310  			n--
  1311  		}
  1312  		if n == 0 || len(paging.NextLink) == 0 {
  1313  			return values, nil
  1314  		}
  1315  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  1316  		if ctx != nil {
  1317  			req = req.WithContext(ctx)
  1318  		}
  1319  		res, err = r.client.Do(req)
  1320  		if err != nil {
  1321  			return nil, err
  1322  		}
  1323  	}
  1324  }
  1325  
  1326  // GetN performs GET request for Extension collection, max N pages
  1327  func (r *UserExtensionsCollectionRequest) GetN(ctx context.Context, n int) ([]Extension, error) {
  1328  	var query string
  1329  	if r.query != nil {
  1330  		query = "?" + r.query.Encode()
  1331  	}
  1332  	return r.Paging(ctx, "GET", query, nil, n)
  1333  }
  1334  
  1335  // Get performs GET request for Extension collection
  1336  func (r *UserExtensionsCollectionRequest) Get(ctx context.Context) ([]Extension, error) {
  1337  	return r.GetN(ctx, 0)
  1338  }
  1339  
  1340  // Add performs POST request for Extension collection
  1341  func (r *UserExtensionsCollectionRequest) Add(ctx context.Context, reqObj *Extension) (resObj *Extension, err error) {
  1342  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  1343  	return
  1344  }
  1345  
  1346  // InferenceClassification is navigation property
  1347  func (b *UserRequestBuilder) InferenceClassification() *InferenceClassificationRequestBuilder {
  1348  	bb := &InferenceClassificationRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1349  	bb.baseURL += "/inferenceClassification"
  1350  	return bb
  1351  }
  1352  
  1353  // Insights is navigation property
  1354  func (b *UserRequestBuilder) Insights() *OfficeGraphInsightsRequestBuilder {
  1355  	bb := &OfficeGraphInsightsRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1356  	bb.baseURL += "/insights"
  1357  	return bb
  1358  }
  1359  
  1360  // JoinedTeams returns request builder for Group collection
  1361  func (b *UserRequestBuilder) JoinedTeams() *UserJoinedTeamsCollectionRequestBuilder {
  1362  	bb := &UserJoinedTeamsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1363  	bb.baseURL += "/joinedTeams"
  1364  	return bb
  1365  }
  1366  
  1367  // UserJoinedTeamsCollectionRequestBuilder is request builder for Group collection
  1368  type UserJoinedTeamsCollectionRequestBuilder struct{ BaseRequestBuilder }
  1369  
  1370  // Request returns request for Group collection
  1371  func (b *UserJoinedTeamsCollectionRequestBuilder) Request() *UserJoinedTeamsCollectionRequest {
  1372  	return &UserJoinedTeamsCollectionRequest{
  1373  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  1374  	}
  1375  }
  1376  
  1377  // ID returns request builder for Group item
  1378  func (b *UserJoinedTeamsCollectionRequestBuilder) ID(id string) *GroupRequestBuilder {
  1379  	bb := &GroupRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1380  	bb.baseURL += "/" + id
  1381  	return bb
  1382  }
  1383  
  1384  // UserJoinedTeamsCollectionRequest is request for Group collection
  1385  type UserJoinedTeamsCollectionRequest struct{ BaseRequest }
  1386  
  1387  // Paging perfoms paging operation for Group collection
  1388  func (r *UserJoinedTeamsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]Group, error) {
  1389  	req, err := r.NewJSONRequest(method, path, obj)
  1390  	if err != nil {
  1391  		return nil, err
  1392  	}
  1393  	if ctx != nil {
  1394  		req = req.WithContext(ctx)
  1395  	}
  1396  	res, err := r.client.Do(req)
  1397  	if err != nil {
  1398  		return nil, err
  1399  	}
  1400  	var values []Group
  1401  	for {
  1402  		if res.StatusCode != http.StatusOK {
  1403  			b, _ := ioutil.ReadAll(res.Body)
  1404  			res.Body.Close()
  1405  			errRes := &ErrorResponse{Response: res}
  1406  			err := jsonx.Unmarshal(b, errRes)
  1407  			if err != nil {
  1408  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  1409  			}
  1410  			return nil, errRes
  1411  		}
  1412  		var (
  1413  			paging Paging
  1414  			value  []Group
  1415  		)
  1416  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  1417  		res.Body.Close()
  1418  		if err != nil {
  1419  			return nil, err
  1420  		}
  1421  		err = jsonx.Unmarshal(paging.Value, &value)
  1422  		if err != nil {
  1423  			return nil, err
  1424  		}
  1425  		values = append(values, value...)
  1426  		if n >= 0 {
  1427  			n--
  1428  		}
  1429  		if n == 0 || len(paging.NextLink) == 0 {
  1430  			return values, nil
  1431  		}
  1432  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  1433  		if ctx != nil {
  1434  			req = req.WithContext(ctx)
  1435  		}
  1436  		res, err = r.client.Do(req)
  1437  		if err != nil {
  1438  			return nil, err
  1439  		}
  1440  	}
  1441  }
  1442  
  1443  // GetN performs GET request for Group collection, max N pages
  1444  func (r *UserJoinedTeamsCollectionRequest) GetN(ctx context.Context, n int) ([]Group, error) {
  1445  	var query string
  1446  	if r.query != nil {
  1447  		query = "?" + r.query.Encode()
  1448  	}
  1449  	return r.Paging(ctx, "GET", query, nil, n)
  1450  }
  1451  
  1452  // Get performs GET request for Group collection
  1453  func (r *UserJoinedTeamsCollectionRequest) Get(ctx context.Context) ([]Group, error) {
  1454  	return r.GetN(ctx, 0)
  1455  }
  1456  
  1457  // Add performs POST request for Group collection
  1458  func (r *UserJoinedTeamsCollectionRequest) Add(ctx context.Context, reqObj *Group) (resObj *Group, err error) {
  1459  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  1460  	return
  1461  }
  1462  
  1463  // LicenseDetails returns request builder for LicenseDetails collection
  1464  func (b *UserRequestBuilder) LicenseDetails() *UserLicenseDetailsCollectionRequestBuilder {
  1465  	bb := &UserLicenseDetailsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1466  	bb.baseURL += "/licenseDetails"
  1467  	return bb
  1468  }
  1469  
  1470  // UserLicenseDetailsCollectionRequestBuilder is request builder for LicenseDetails collection
  1471  type UserLicenseDetailsCollectionRequestBuilder struct{ BaseRequestBuilder }
  1472  
  1473  // Request returns request for LicenseDetails collection
  1474  func (b *UserLicenseDetailsCollectionRequestBuilder) Request() *UserLicenseDetailsCollectionRequest {
  1475  	return &UserLicenseDetailsCollectionRequest{
  1476  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  1477  	}
  1478  }
  1479  
  1480  // ID returns request builder for LicenseDetails item
  1481  func (b *UserLicenseDetailsCollectionRequestBuilder) ID(id string) *LicenseDetailsRequestBuilder {
  1482  	bb := &LicenseDetailsRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1483  	bb.baseURL += "/" + id
  1484  	return bb
  1485  }
  1486  
  1487  // UserLicenseDetailsCollectionRequest is request for LicenseDetails collection
  1488  type UserLicenseDetailsCollectionRequest struct{ BaseRequest }
  1489  
  1490  // Paging perfoms paging operation for LicenseDetails collection
  1491  func (r *UserLicenseDetailsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]LicenseDetails, error) {
  1492  	req, err := r.NewJSONRequest(method, path, obj)
  1493  	if err != nil {
  1494  		return nil, err
  1495  	}
  1496  	if ctx != nil {
  1497  		req = req.WithContext(ctx)
  1498  	}
  1499  	res, err := r.client.Do(req)
  1500  	if err != nil {
  1501  		return nil, err
  1502  	}
  1503  	var values []LicenseDetails
  1504  	for {
  1505  		if res.StatusCode != http.StatusOK {
  1506  			b, _ := ioutil.ReadAll(res.Body)
  1507  			res.Body.Close()
  1508  			errRes := &ErrorResponse{Response: res}
  1509  			err := jsonx.Unmarshal(b, errRes)
  1510  			if err != nil {
  1511  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  1512  			}
  1513  			return nil, errRes
  1514  		}
  1515  		var (
  1516  			paging Paging
  1517  			value  []LicenseDetails
  1518  		)
  1519  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  1520  		res.Body.Close()
  1521  		if err != nil {
  1522  			return nil, err
  1523  		}
  1524  		err = jsonx.Unmarshal(paging.Value, &value)
  1525  		if err != nil {
  1526  			return nil, err
  1527  		}
  1528  		values = append(values, value...)
  1529  		if n >= 0 {
  1530  			n--
  1531  		}
  1532  		if n == 0 || len(paging.NextLink) == 0 {
  1533  			return values, nil
  1534  		}
  1535  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  1536  		if ctx != nil {
  1537  			req = req.WithContext(ctx)
  1538  		}
  1539  		res, err = r.client.Do(req)
  1540  		if err != nil {
  1541  			return nil, err
  1542  		}
  1543  	}
  1544  }
  1545  
  1546  // GetN performs GET request for LicenseDetails collection, max N pages
  1547  func (r *UserLicenseDetailsCollectionRequest) GetN(ctx context.Context, n int) ([]LicenseDetails, error) {
  1548  	var query string
  1549  	if r.query != nil {
  1550  		query = "?" + r.query.Encode()
  1551  	}
  1552  	return r.Paging(ctx, "GET", query, nil, n)
  1553  }
  1554  
  1555  // Get performs GET request for LicenseDetails collection
  1556  func (r *UserLicenseDetailsCollectionRequest) Get(ctx context.Context) ([]LicenseDetails, error) {
  1557  	return r.GetN(ctx, 0)
  1558  }
  1559  
  1560  // Add performs POST request for LicenseDetails collection
  1561  func (r *UserLicenseDetailsCollectionRequest) Add(ctx context.Context, reqObj *LicenseDetails) (resObj *LicenseDetails, err error) {
  1562  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  1563  	return
  1564  }
  1565  
  1566  // MailFolders returns request builder for MailFolder collection
  1567  func (b *UserRequestBuilder) MailFolders() *UserMailFoldersCollectionRequestBuilder {
  1568  	bb := &UserMailFoldersCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1569  	bb.baseURL += "/mailFolders"
  1570  	return bb
  1571  }
  1572  
  1573  // UserMailFoldersCollectionRequestBuilder is request builder for MailFolder collection
  1574  type UserMailFoldersCollectionRequestBuilder struct{ BaseRequestBuilder }
  1575  
  1576  // Request returns request for MailFolder collection
  1577  func (b *UserMailFoldersCollectionRequestBuilder) Request() *UserMailFoldersCollectionRequest {
  1578  	return &UserMailFoldersCollectionRequest{
  1579  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  1580  	}
  1581  }
  1582  
  1583  // ID returns request builder for MailFolder item
  1584  func (b *UserMailFoldersCollectionRequestBuilder) ID(id string) *MailFolderRequestBuilder {
  1585  	bb := &MailFolderRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1586  	bb.baseURL += "/" + id
  1587  	return bb
  1588  }
  1589  
  1590  // UserMailFoldersCollectionRequest is request for MailFolder collection
  1591  type UserMailFoldersCollectionRequest struct{ BaseRequest }
  1592  
  1593  // Paging perfoms paging operation for MailFolder collection
  1594  func (r *UserMailFoldersCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]MailFolder, error) {
  1595  	req, err := r.NewJSONRequest(method, path, obj)
  1596  	if err != nil {
  1597  		return nil, err
  1598  	}
  1599  	if ctx != nil {
  1600  		req = req.WithContext(ctx)
  1601  	}
  1602  	res, err := r.client.Do(req)
  1603  	if err != nil {
  1604  		return nil, err
  1605  	}
  1606  	var values []MailFolder
  1607  	for {
  1608  		if res.StatusCode != http.StatusOK {
  1609  			b, _ := ioutil.ReadAll(res.Body)
  1610  			res.Body.Close()
  1611  			errRes := &ErrorResponse{Response: res}
  1612  			err := jsonx.Unmarshal(b, errRes)
  1613  			if err != nil {
  1614  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  1615  			}
  1616  			return nil, errRes
  1617  		}
  1618  		var (
  1619  			paging Paging
  1620  			value  []MailFolder
  1621  		)
  1622  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  1623  		res.Body.Close()
  1624  		if err != nil {
  1625  			return nil, err
  1626  		}
  1627  		err = jsonx.Unmarshal(paging.Value, &value)
  1628  		if err != nil {
  1629  			return nil, err
  1630  		}
  1631  		values = append(values, value...)
  1632  		if n >= 0 {
  1633  			n--
  1634  		}
  1635  		if n == 0 || len(paging.NextLink) == 0 {
  1636  			return values, nil
  1637  		}
  1638  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  1639  		if ctx != nil {
  1640  			req = req.WithContext(ctx)
  1641  		}
  1642  		res, err = r.client.Do(req)
  1643  		if err != nil {
  1644  			return nil, err
  1645  		}
  1646  	}
  1647  }
  1648  
  1649  // GetN performs GET request for MailFolder collection, max N pages
  1650  func (r *UserMailFoldersCollectionRequest) GetN(ctx context.Context, n int) ([]MailFolder, error) {
  1651  	var query string
  1652  	if r.query != nil {
  1653  		query = "?" + r.query.Encode()
  1654  	}
  1655  	return r.Paging(ctx, "GET", query, nil, n)
  1656  }
  1657  
  1658  // Get performs GET request for MailFolder collection
  1659  func (r *UserMailFoldersCollectionRequest) Get(ctx context.Context) ([]MailFolder, error) {
  1660  	return r.GetN(ctx, 0)
  1661  }
  1662  
  1663  // Add performs POST request for MailFolder collection
  1664  func (r *UserMailFoldersCollectionRequest) Add(ctx context.Context, reqObj *MailFolder) (resObj *MailFolder, err error) {
  1665  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  1666  	return
  1667  }
  1668  
  1669  // ManagedAppRegistrations returns request builder for ManagedAppRegistration collection
  1670  func (b *UserRequestBuilder) ManagedAppRegistrations() *UserManagedAppRegistrationsCollectionRequestBuilder {
  1671  	bb := &UserManagedAppRegistrationsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1672  	bb.baseURL += "/managedAppRegistrations"
  1673  	return bb
  1674  }
  1675  
  1676  // UserManagedAppRegistrationsCollectionRequestBuilder is request builder for ManagedAppRegistration collection
  1677  type UserManagedAppRegistrationsCollectionRequestBuilder struct{ BaseRequestBuilder }
  1678  
  1679  // Request returns request for ManagedAppRegistration collection
  1680  func (b *UserManagedAppRegistrationsCollectionRequestBuilder) Request() *UserManagedAppRegistrationsCollectionRequest {
  1681  	return &UserManagedAppRegistrationsCollectionRequest{
  1682  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  1683  	}
  1684  }
  1685  
  1686  // ID returns request builder for ManagedAppRegistration item
  1687  func (b *UserManagedAppRegistrationsCollectionRequestBuilder) ID(id string) *ManagedAppRegistrationRequestBuilder {
  1688  	bb := &ManagedAppRegistrationRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1689  	bb.baseURL += "/" + id
  1690  	return bb
  1691  }
  1692  
  1693  // UserManagedAppRegistrationsCollectionRequest is request for ManagedAppRegistration collection
  1694  type UserManagedAppRegistrationsCollectionRequest struct{ BaseRequest }
  1695  
  1696  // Paging perfoms paging operation for ManagedAppRegistration collection
  1697  func (r *UserManagedAppRegistrationsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]ManagedAppRegistration, error) {
  1698  	req, err := r.NewJSONRequest(method, path, obj)
  1699  	if err != nil {
  1700  		return nil, err
  1701  	}
  1702  	if ctx != nil {
  1703  		req = req.WithContext(ctx)
  1704  	}
  1705  	res, err := r.client.Do(req)
  1706  	if err != nil {
  1707  		return nil, err
  1708  	}
  1709  	var values []ManagedAppRegistration
  1710  	for {
  1711  		if res.StatusCode != http.StatusOK {
  1712  			b, _ := ioutil.ReadAll(res.Body)
  1713  			res.Body.Close()
  1714  			errRes := &ErrorResponse{Response: res}
  1715  			err := jsonx.Unmarshal(b, errRes)
  1716  			if err != nil {
  1717  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  1718  			}
  1719  			return nil, errRes
  1720  		}
  1721  		var (
  1722  			paging Paging
  1723  			value  []ManagedAppRegistration
  1724  		)
  1725  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  1726  		res.Body.Close()
  1727  		if err != nil {
  1728  			return nil, err
  1729  		}
  1730  		err = jsonx.Unmarshal(paging.Value, &value)
  1731  		if err != nil {
  1732  			return nil, err
  1733  		}
  1734  		values = append(values, value...)
  1735  		if n >= 0 {
  1736  			n--
  1737  		}
  1738  		if n == 0 || len(paging.NextLink) == 0 {
  1739  			return values, nil
  1740  		}
  1741  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  1742  		if ctx != nil {
  1743  			req = req.WithContext(ctx)
  1744  		}
  1745  		res, err = r.client.Do(req)
  1746  		if err != nil {
  1747  			return nil, err
  1748  		}
  1749  	}
  1750  }
  1751  
  1752  // GetN performs GET request for ManagedAppRegistration collection, max N pages
  1753  func (r *UserManagedAppRegistrationsCollectionRequest) GetN(ctx context.Context, n int) ([]ManagedAppRegistration, error) {
  1754  	var query string
  1755  	if r.query != nil {
  1756  		query = "?" + r.query.Encode()
  1757  	}
  1758  	return r.Paging(ctx, "GET", query, nil, n)
  1759  }
  1760  
  1761  // Get performs GET request for ManagedAppRegistration collection
  1762  func (r *UserManagedAppRegistrationsCollectionRequest) Get(ctx context.Context) ([]ManagedAppRegistration, error) {
  1763  	return r.GetN(ctx, 0)
  1764  }
  1765  
  1766  // Add performs POST request for ManagedAppRegistration collection
  1767  func (r *UserManagedAppRegistrationsCollectionRequest) Add(ctx context.Context, reqObj *ManagedAppRegistration) (resObj *ManagedAppRegistration, err error) {
  1768  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  1769  	return
  1770  }
  1771  
  1772  // ManagedDevices returns request builder for ManagedDevice collection
  1773  func (b *UserRequestBuilder) ManagedDevices() *UserManagedDevicesCollectionRequestBuilder {
  1774  	bb := &UserManagedDevicesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1775  	bb.baseURL += "/managedDevices"
  1776  	return bb
  1777  }
  1778  
  1779  // UserManagedDevicesCollectionRequestBuilder is request builder for ManagedDevice collection
  1780  type UserManagedDevicesCollectionRequestBuilder struct{ BaseRequestBuilder }
  1781  
  1782  // Request returns request for ManagedDevice collection
  1783  func (b *UserManagedDevicesCollectionRequestBuilder) Request() *UserManagedDevicesCollectionRequest {
  1784  	return &UserManagedDevicesCollectionRequest{
  1785  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  1786  	}
  1787  }
  1788  
  1789  // ID returns request builder for ManagedDevice item
  1790  func (b *UserManagedDevicesCollectionRequestBuilder) ID(id string) *ManagedDeviceRequestBuilder {
  1791  	bb := &ManagedDeviceRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1792  	bb.baseURL += "/" + id
  1793  	return bb
  1794  }
  1795  
  1796  // UserManagedDevicesCollectionRequest is request for ManagedDevice collection
  1797  type UserManagedDevicesCollectionRequest struct{ BaseRequest }
  1798  
  1799  // Paging perfoms paging operation for ManagedDevice collection
  1800  func (r *UserManagedDevicesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]ManagedDevice, error) {
  1801  	req, err := r.NewJSONRequest(method, path, obj)
  1802  	if err != nil {
  1803  		return nil, err
  1804  	}
  1805  	if ctx != nil {
  1806  		req = req.WithContext(ctx)
  1807  	}
  1808  	res, err := r.client.Do(req)
  1809  	if err != nil {
  1810  		return nil, err
  1811  	}
  1812  	var values []ManagedDevice
  1813  	for {
  1814  		if res.StatusCode != http.StatusOK {
  1815  			b, _ := ioutil.ReadAll(res.Body)
  1816  			res.Body.Close()
  1817  			errRes := &ErrorResponse{Response: res}
  1818  			err := jsonx.Unmarshal(b, errRes)
  1819  			if err != nil {
  1820  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  1821  			}
  1822  			return nil, errRes
  1823  		}
  1824  		var (
  1825  			paging Paging
  1826  			value  []ManagedDevice
  1827  		)
  1828  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  1829  		res.Body.Close()
  1830  		if err != nil {
  1831  			return nil, err
  1832  		}
  1833  		err = jsonx.Unmarshal(paging.Value, &value)
  1834  		if err != nil {
  1835  			return nil, err
  1836  		}
  1837  		values = append(values, value...)
  1838  		if n >= 0 {
  1839  			n--
  1840  		}
  1841  		if n == 0 || len(paging.NextLink) == 0 {
  1842  			return values, nil
  1843  		}
  1844  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  1845  		if ctx != nil {
  1846  			req = req.WithContext(ctx)
  1847  		}
  1848  		res, err = r.client.Do(req)
  1849  		if err != nil {
  1850  			return nil, err
  1851  		}
  1852  	}
  1853  }
  1854  
  1855  // GetN performs GET request for ManagedDevice collection, max N pages
  1856  func (r *UserManagedDevicesCollectionRequest) GetN(ctx context.Context, n int) ([]ManagedDevice, error) {
  1857  	var query string
  1858  	if r.query != nil {
  1859  		query = "?" + r.query.Encode()
  1860  	}
  1861  	return r.Paging(ctx, "GET", query, nil, n)
  1862  }
  1863  
  1864  // Get performs GET request for ManagedDevice collection
  1865  func (r *UserManagedDevicesCollectionRequest) Get(ctx context.Context) ([]ManagedDevice, error) {
  1866  	return r.GetN(ctx, 0)
  1867  }
  1868  
  1869  // Add performs POST request for ManagedDevice collection
  1870  func (r *UserManagedDevicesCollectionRequest) Add(ctx context.Context, reqObj *ManagedDevice) (resObj *ManagedDevice, err error) {
  1871  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  1872  	return
  1873  }
  1874  
  1875  // Manager is navigation property
  1876  func (b *UserRequestBuilder) Manager() *DirectoryObjectRequestBuilder {
  1877  	bb := &DirectoryObjectRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1878  	bb.baseURL += "/manager"
  1879  	return bb
  1880  }
  1881  
  1882  // MemberOf returns request builder for DirectoryObject collection
  1883  func (b *UserRequestBuilder) MemberOf() *UserMemberOfCollectionRequestBuilder {
  1884  	bb := &UserMemberOfCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1885  	bb.baseURL += "/memberOf"
  1886  	return bb
  1887  }
  1888  
  1889  // UserMemberOfCollectionRequestBuilder is request builder for DirectoryObject collection
  1890  type UserMemberOfCollectionRequestBuilder struct{ BaseRequestBuilder }
  1891  
  1892  // Request returns request for DirectoryObject collection
  1893  func (b *UserMemberOfCollectionRequestBuilder) Request() *UserMemberOfCollectionRequest {
  1894  	return &UserMemberOfCollectionRequest{
  1895  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  1896  	}
  1897  }
  1898  
  1899  // ID returns request builder for DirectoryObject item
  1900  func (b *UserMemberOfCollectionRequestBuilder) ID(id string) *DirectoryObjectRequestBuilder {
  1901  	bb := &DirectoryObjectRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1902  	bb.baseURL += "/" + id
  1903  	return bb
  1904  }
  1905  
  1906  // UserMemberOfCollectionRequest is request for DirectoryObject collection
  1907  type UserMemberOfCollectionRequest struct{ BaseRequest }
  1908  
  1909  // Paging perfoms paging operation for DirectoryObject collection
  1910  func (r *UserMemberOfCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]DirectoryObject, error) {
  1911  	req, err := r.NewJSONRequest(method, path, obj)
  1912  	if err != nil {
  1913  		return nil, err
  1914  	}
  1915  	if ctx != nil {
  1916  		req = req.WithContext(ctx)
  1917  	}
  1918  	res, err := r.client.Do(req)
  1919  	if err != nil {
  1920  		return nil, err
  1921  	}
  1922  	var values []DirectoryObject
  1923  	for {
  1924  		if res.StatusCode != http.StatusOK {
  1925  			b, _ := ioutil.ReadAll(res.Body)
  1926  			res.Body.Close()
  1927  			errRes := &ErrorResponse{Response: res}
  1928  			err := jsonx.Unmarshal(b, errRes)
  1929  			if err != nil {
  1930  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  1931  			}
  1932  			return nil, errRes
  1933  		}
  1934  		var (
  1935  			paging Paging
  1936  			value  []DirectoryObject
  1937  		)
  1938  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  1939  		res.Body.Close()
  1940  		if err != nil {
  1941  			return nil, err
  1942  		}
  1943  		err = jsonx.Unmarshal(paging.Value, &value)
  1944  		if err != nil {
  1945  			return nil, err
  1946  		}
  1947  		values = append(values, value...)
  1948  		if n >= 0 {
  1949  			n--
  1950  		}
  1951  		if n == 0 || len(paging.NextLink) == 0 {
  1952  			return values, nil
  1953  		}
  1954  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  1955  		if ctx != nil {
  1956  			req = req.WithContext(ctx)
  1957  		}
  1958  		res, err = r.client.Do(req)
  1959  		if err != nil {
  1960  			return nil, err
  1961  		}
  1962  	}
  1963  }
  1964  
  1965  // GetN performs GET request for DirectoryObject collection, max N pages
  1966  func (r *UserMemberOfCollectionRequest) GetN(ctx context.Context, n int) ([]DirectoryObject, error) {
  1967  	var query string
  1968  	if r.query != nil {
  1969  		query = "?" + r.query.Encode()
  1970  	}
  1971  	return r.Paging(ctx, "GET", query, nil, n)
  1972  }
  1973  
  1974  // Get performs GET request for DirectoryObject collection
  1975  func (r *UserMemberOfCollectionRequest) Get(ctx context.Context) ([]DirectoryObject, error) {
  1976  	return r.GetN(ctx, 0)
  1977  }
  1978  
  1979  // Add performs POST request for DirectoryObject collection
  1980  func (r *UserMemberOfCollectionRequest) Add(ctx context.Context, reqObj *DirectoryObject) (resObj *DirectoryObject, err error) {
  1981  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  1982  	return
  1983  }
  1984  
  1985  // Messages returns request builder for Message collection
  1986  func (b *UserRequestBuilder) Messages() *UserMessagesCollectionRequestBuilder {
  1987  	bb := &UserMessagesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1988  	bb.baseURL += "/messages"
  1989  	return bb
  1990  }
  1991  
  1992  // UserMessagesCollectionRequestBuilder is request builder for Message collection
  1993  type UserMessagesCollectionRequestBuilder struct{ BaseRequestBuilder }
  1994  
  1995  // Request returns request for Message collection
  1996  func (b *UserMessagesCollectionRequestBuilder) Request() *UserMessagesCollectionRequest {
  1997  	return &UserMessagesCollectionRequest{
  1998  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  1999  	}
  2000  }
  2001  
  2002  // ID returns request builder for Message item
  2003  func (b *UserMessagesCollectionRequestBuilder) ID(id string) *MessageRequestBuilder {
  2004  	bb := &MessageRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2005  	bb.baseURL += "/" + id
  2006  	return bb
  2007  }
  2008  
  2009  // UserMessagesCollectionRequest is request for Message collection
  2010  type UserMessagesCollectionRequest struct{ BaseRequest }
  2011  
  2012  // Paging perfoms paging operation for Message collection
  2013  func (r *UserMessagesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]Message, error) {
  2014  	req, err := r.NewJSONRequest(method, path, obj)
  2015  	if err != nil {
  2016  		return nil, err
  2017  	}
  2018  	if ctx != nil {
  2019  		req = req.WithContext(ctx)
  2020  	}
  2021  	res, err := r.client.Do(req)
  2022  	if err != nil {
  2023  		return nil, err
  2024  	}
  2025  	var values []Message
  2026  	for {
  2027  		if res.StatusCode != http.StatusOK {
  2028  			b, _ := ioutil.ReadAll(res.Body)
  2029  			res.Body.Close()
  2030  			errRes := &ErrorResponse{Response: res}
  2031  			err := jsonx.Unmarshal(b, errRes)
  2032  			if err != nil {
  2033  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  2034  			}
  2035  			return nil, errRes
  2036  		}
  2037  		var (
  2038  			paging Paging
  2039  			value  []Message
  2040  		)
  2041  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  2042  		res.Body.Close()
  2043  		if err != nil {
  2044  			return nil, err
  2045  		}
  2046  		err = jsonx.Unmarshal(paging.Value, &value)
  2047  		if err != nil {
  2048  			return nil, err
  2049  		}
  2050  		values = append(values, value...)
  2051  		if n >= 0 {
  2052  			n--
  2053  		}
  2054  		if n == 0 || len(paging.NextLink) == 0 {
  2055  			return values, nil
  2056  		}
  2057  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  2058  		if ctx != nil {
  2059  			req = req.WithContext(ctx)
  2060  		}
  2061  		res, err = r.client.Do(req)
  2062  		if err != nil {
  2063  			return nil, err
  2064  		}
  2065  	}
  2066  }
  2067  
  2068  // GetN performs GET request for Message collection, max N pages
  2069  func (r *UserMessagesCollectionRequest) GetN(ctx context.Context, n int) ([]Message, error) {
  2070  	var query string
  2071  	if r.query != nil {
  2072  		query = "?" + r.query.Encode()
  2073  	}
  2074  	return r.Paging(ctx, "GET", query, nil, n)
  2075  }
  2076  
  2077  // Get performs GET request for Message collection
  2078  func (r *UserMessagesCollectionRequest) Get(ctx context.Context) ([]Message, error) {
  2079  	return r.GetN(ctx, 0)
  2080  }
  2081  
  2082  // Add performs POST request for Message collection
  2083  func (r *UserMessagesCollectionRequest) Add(ctx context.Context, reqObj *Message) (resObj *Message, err error) {
  2084  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  2085  	return
  2086  }
  2087  
  2088  // Onenote is navigation property
  2089  func (b *UserRequestBuilder) Onenote() *OnenoteRequestBuilder {
  2090  	bb := &OnenoteRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2091  	bb.baseURL += "/onenote"
  2092  	return bb
  2093  }
  2094  
  2095  // OnlineMeetings returns request builder for OnlineMeeting collection
  2096  func (b *UserRequestBuilder) OnlineMeetings() *UserOnlineMeetingsCollectionRequestBuilder {
  2097  	bb := &UserOnlineMeetingsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2098  	bb.baseURL += "/onlineMeetings"
  2099  	return bb
  2100  }
  2101  
  2102  // UserOnlineMeetingsCollectionRequestBuilder is request builder for OnlineMeeting collection
  2103  type UserOnlineMeetingsCollectionRequestBuilder struct{ BaseRequestBuilder }
  2104  
  2105  // Request returns request for OnlineMeeting collection
  2106  func (b *UserOnlineMeetingsCollectionRequestBuilder) Request() *UserOnlineMeetingsCollectionRequest {
  2107  	return &UserOnlineMeetingsCollectionRequest{
  2108  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  2109  	}
  2110  }
  2111  
  2112  // ID returns request builder for OnlineMeeting item
  2113  func (b *UserOnlineMeetingsCollectionRequestBuilder) ID(id string) *OnlineMeetingRequestBuilder {
  2114  	bb := &OnlineMeetingRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2115  	bb.baseURL += "/" + id
  2116  	return bb
  2117  }
  2118  
  2119  // UserOnlineMeetingsCollectionRequest is request for OnlineMeeting collection
  2120  type UserOnlineMeetingsCollectionRequest struct{ BaseRequest }
  2121  
  2122  // Paging perfoms paging operation for OnlineMeeting collection
  2123  func (r *UserOnlineMeetingsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]OnlineMeeting, error) {
  2124  	req, err := r.NewJSONRequest(method, path, obj)
  2125  	if err != nil {
  2126  		return nil, err
  2127  	}
  2128  	if ctx != nil {
  2129  		req = req.WithContext(ctx)
  2130  	}
  2131  	res, err := r.client.Do(req)
  2132  	if err != nil {
  2133  		return nil, err
  2134  	}
  2135  	var values []OnlineMeeting
  2136  	for {
  2137  		if res.StatusCode != http.StatusOK {
  2138  			b, _ := ioutil.ReadAll(res.Body)
  2139  			res.Body.Close()
  2140  			errRes := &ErrorResponse{Response: res}
  2141  			err := jsonx.Unmarshal(b, errRes)
  2142  			if err != nil {
  2143  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  2144  			}
  2145  			return nil, errRes
  2146  		}
  2147  		var (
  2148  			paging Paging
  2149  			value  []OnlineMeeting
  2150  		)
  2151  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  2152  		res.Body.Close()
  2153  		if err != nil {
  2154  			return nil, err
  2155  		}
  2156  		err = jsonx.Unmarshal(paging.Value, &value)
  2157  		if err != nil {
  2158  			return nil, err
  2159  		}
  2160  		values = append(values, value...)
  2161  		if n >= 0 {
  2162  			n--
  2163  		}
  2164  		if n == 0 || len(paging.NextLink) == 0 {
  2165  			return values, nil
  2166  		}
  2167  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  2168  		if ctx != nil {
  2169  			req = req.WithContext(ctx)
  2170  		}
  2171  		res, err = r.client.Do(req)
  2172  		if err != nil {
  2173  			return nil, err
  2174  		}
  2175  	}
  2176  }
  2177  
  2178  // GetN performs GET request for OnlineMeeting collection, max N pages
  2179  func (r *UserOnlineMeetingsCollectionRequest) GetN(ctx context.Context, n int) ([]OnlineMeeting, error) {
  2180  	var query string
  2181  	if r.query != nil {
  2182  		query = "?" + r.query.Encode()
  2183  	}
  2184  	return r.Paging(ctx, "GET", query, nil, n)
  2185  }
  2186  
  2187  // Get performs GET request for OnlineMeeting collection
  2188  func (r *UserOnlineMeetingsCollectionRequest) Get(ctx context.Context) ([]OnlineMeeting, error) {
  2189  	return r.GetN(ctx, 0)
  2190  }
  2191  
  2192  // Add performs POST request for OnlineMeeting collection
  2193  func (r *UserOnlineMeetingsCollectionRequest) Add(ctx context.Context, reqObj *OnlineMeeting) (resObj *OnlineMeeting, err error) {
  2194  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  2195  	return
  2196  }
  2197  
  2198  // Outlook is navigation property
  2199  func (b *UserRequestBuilder) Outlook() *OutlookUserRequestBuilder {
  2200  	bb := &OutlookUserRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2201  	bb.baseURL += "/outlook"
  2202  	return bb
  2203  }
  2204  
  2205  // OwnedDevices returns request builder for DirectoryObject collection
  2206  func (b *UserRequestBuilder) OwnedDevices() *UserOwnedDevicesCollectionRequestBuilder {
  2207  	bb := &UserOwnedDevicesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2208  	bb.baseURL += "/ownedDevices"
  2209  	return bb
  2210  }
  2211  
  2212  // UserOwnedDevicesCollectionRequestBuilder is request builder for DirectoryObject collection
  2213  type UserOwnedDevicesCollectionRequestBuilder struct{ BaseRequestBuilder }
  2214  
  2215  // Request returns request for DirectoryObject collection
  2216  func (b *UserOwnedDevicesCollectionRequestBuilder) Request() *UserOwnedDevicesCollectionRequest {
  2217  	return &UserOwnedDevicesCollectionRequest{
  2218  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  2219  	}
  2220  }
  2221  
  2222  // ID returns request builder for DirectoryObject item
  2223  func (b *UserOwnedDevicesCollectionRequestBuilder) ID(id string) *DirectoryObjectRequestBuilder {
  2224  	bb := &DirectoryObjectRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2225  	bb.baseURL += "/" + id
  2226  	return bb
  2227  }
  2228  
  2229  // UserOwnedDevicesCollectionRequest is request for DirectoryObject collection
  2230  type UserOwnedDevicesCollectionRequest struct{ BaseRequest }
  2231  
  2232  // Paging perfoms paging operation for DirectoryObject collection
  2233  func (r *UserOwnedDevicesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]DirectoryObject, error) {
  2234  	req, err := r.NewJSONRequest(method, path, obj)
  2235  	if err != nil {
  2236  		return nil, err
  2237  	}
  2238  	if ctx != nil {
  2239  		req = req.WithContext(ctx)
  2240  	}
  2241  	res, err := r.client.Do(req)
  2242  	if err != nil {
  2243  		return nil, err
  2244  	}
  2245  	var values []DirectoryObject
  2246  	for {
  2247  		if res.StatusCode != http.StatusOK {
  2248  			b, _ := ioutil.ReadAll(res.Body)
  2249  			res.Body.Close()
  2250  			errRes := &ErrorResponse{Response: res}
  2251  			err := jsonx.Unmarshal(b, errRes)
  2252  			if err != nil {
  2253  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  2254  			}
  2255  			return nil, errRes
  2256  		}
  2257  		var (
  2258  			paging Paging
  2259  			value  []DirectoryObject
  2260  		)
  2261  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  2262  		res.Body.Close()
  2263  		if err != nil {
  2264  			return nil, err
  2265  		}
  2266  		err = jsonx.Unmarshal(paging.Value, &value)
  2267  		if err != nil {
  2268  			return nil, err
  2269  		}
  2270  		values = append(values, value...)
  2271  		if n >= 0 {
  2272  			n--
  2273  		}
  2274  		if n == 0 || len(paging.NextLink) == 0 {
  2275  			return values, nil
  2276  		}
  2277  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  2278  		if ctx != nil {
  2279  			req = req.WithContext(ctx)
  2280  		}
  2281  		res, err = r.client.Do(req)
  2282  		if err != nil {
  2283  			return nil, err
  2284  		}
  2285  	}
  2286  }
  2287  
  2288  // GetN performs GET request for DirectoryObject collection, max N pages
  2289  func (r *UserOwnedDevicesCollectionRequest) GetN(ctx context.Context, n int) ([]DirectoryObject, error) {
  2290  	var query string
  2291  	if r.query != nil {
  2292  		query = "?" + r.query.Encode()
  2293  	}
  2294  	return r.Paging(ctx, "GET", query, nil, n)
  2295  }
  2296  
  2297  // Get performs GET request for DirectoryObject collection
  2298  func (r *UserOwnedDevicesCollectionRequest) Get(ctx context.Context) ([]DirectoryObject, error) {
  2299  	return r.GetN(ctx, 0)
  2300  }
  2301  
  2302  // Add performs POST request for DirectoryObject collection
  2303  func (r *UserOwnedDevicesCollectionRequest) Add(ctx context.Context, reqObj *DirectoryObject) (resObj *DirectoryObject, err error) {
  2304  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  2305  	return
  2306  }
  2307  
  2308  // OwnedObjects returns request builder for DirectoryObject collection
  2309  func (b *UserRequestBuilder) OwnedObjects() *UserOwnedObjectsCollectionRequestBuilder {
  2310  	bb := &UserOwnedObjectsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2311  	bb.baseURL += "/ownedObjects"
  2312  	return bb
  2313  }
  2314  
  2315  // UserOwnedObjectsCollectionRequestBuilder is request builder for DirectoryObject collection
  2316  type UserOwnedObjectsCollectionRequestBuilder struct{ BaseRequestBuilder }
  2317  
  2318  // Request returns request for DirectoryObject collection
  2319  func (b *UserOwnedObjectsCollectionRequestBuilder) Request() *UserOwnedObjectsCollectionRequest {
  2320  	return &UserOwnedObjectsCollectionRequest{
  2321  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  2322  	}
  2323  }
  2324  
  2325  // ID returns request builder for DirectoryObject item
  2326  func (b *UserOwnedObjectsCollectionRequestBuilder) ID(id string) *DirectoryObjectRequestBuilder {
  2327  	bb := &DirectoryObjectRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2328  	bb.baseURL += "/" + id
  2329  	return bb
  2330  }
  2331  
  2332  // UserOwnedObjectsCollectionRequest is request for DirectoryObject collection
  2333  type UserOwnedObjectsCollectionRequest struct{ BaseRequest }
  2334  
  2335  // Paging perfoms paging operation for DirectoryObject collection
  2336  func (r *UserOwnedObjectsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]DirectoryObject, error) {
  2337  	req, err := r.NewJSONRequest(method, path, obj)
  2338  	if err != nil {
  2339  		return nil, err
  2340  	}
  2341  	if ctx != nil {
  2342  		req = req.WithContext(ctx)
  2343  	}
  2344  	res, err := r.client.Do(req)
  2345  	if err != nil {
  2346  		return nil, err
  2347  	}
  2348  	var values []DirectoryObject
  2349  	for {
  2350  		if res.StatusCode != http.StatusOK {
  2351  			b, _ := ioutil.ReadAll(res.Body)
  2352  			res.Body.Close()
  2353  			errRes := &ErrorResponse{Response: res}
  2354  			err := jsonx.Unmarshal(b, errRes)
  2355  			if err != nil {
  2356  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  2357  			}
  2358  			return nil, errRes
  2359  		}
  2360  		var (
  2361  			paging Paging
  2362  			value  []DirectoryObject
  2363  		)
  2364  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  2365  		res.Body.Close()
  2366  		if err != nil {
  2367  			return nil, err
  2368  		}
  2369  		err = jsonx.Unmarshal(paging.Value, &value)
  2370  		if err != nil {
  2371  			return nil, err
  2372  		}
  2373  		values = append(values, value...)
  2374  		if n >= 0 {
  2375  			n--
  2376  		}
  2377  		if n == 0 || len(paging.NextLink) == 0 {
  2378  			return values, nil
  2379  		}
  2380  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  2381  		if ctx != nil {
  2382  			req = req.WithContext(ctx)
  2383  		}
  2384  		res, err = r.client.Do(req)
  2385  		if err != nil {
  2386  			return nil, err
  2387  		}
  2388  	}
  2389  }
  2390  
  2391  // GetN performs GET request for DirectoryObject collection, max N pages
  2392  func (r *UserOwnedObjectsCollectionRequest) GetN(ctx context.Context, n int) ([]DirectoryObject, error) {
  2393  	var query string
  2394  	if r.query != nil {
  2395  		query = "?" + r.query.Encode()
  2396  	}
  2397  	return r.Paging(ctx, "GET", query, nil, n)
  2398  }
  2399  
  2400  // Get performs GET request for DirectoryObject collection
  2401  func (r *UserOwnedObjectsCollectionRequest) Get(ctx context.Context) ([]DirectoryObject, error) {
  2402  	return r.GetN(ctx, 0)
  2403  }
  2404  
  2405  // Add performs POST request for DirectoryObject collection
  2406  func (r *UserOwnedObjectsCollectionRequest) Add(ctx context.Context, reqObj *DirectoryObject) (resObj *DirectoryObject, err error) {
  2407  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  2408  	return
  2409  }
  2410  
  2411  // People returns request builder for Person collection
  2412  func (b *UserRequestBuilder) People() *UserPeopleCollectionRequestBuilder {
  2413  	bb := &UserPeopleCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2414  	bb.baseURL += "/people"
  2415  	return bb
  2416  }
  2417  
  2418  // UserPeopleCollectionRequestBuilder is request builder for Person collection
  2419  type UserPeopleCollectionRequestBuilder struct{ BaseRequestBuilder }
  2420  
  2421  // Request returns request for Person collection
  2422  func (b *UserPeopleCollectionRequestBuilder) Request() *UserPeopleCollectionRequest {
  2423  	return &UserPeopleCollectionRequest{
  2424  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  2425  	}
  2426  }
  2427  
  2428  // ID returns request builder for Person item
  2429  func (b *UserPeopleCollectionRequestBuilder) ID(id string) *PersonRequestBuilder {
  2430  	bb := &PersonRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2431  	bb.baseURL += "/" + id
  2432  	return bb
  2433  }
  2434  
  2435  // UserPeopleCollectionRequest is request for Person collection
  2436  type UserPeopleCollectionRequest struct{ BaseRequest }
  2437  
  2438  // Paging perfoms paging operation for Person collection
  2439  func (r *UserPeopleCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]Person, error) {
  2440  	req, err := r.NewJSONRequest(method, path, obj)
  2441  	if err != nil {
  2442  		return nil, err
  2443  	}
  2444  	if ctx != nil {
  2445  		req = req.WithContext(ctx)
  2446  	}
  2447  	res, err := r.client.Do(req)
  2448  	if err != nil {
  2449  		return nil, err
  2450  	}
  2451  	var values []Person
  2452  	for {
  2453  		if res.StatusCode != http.StatusOK {
  2454  			b, _ := ioutil.ReadAll(res.Body)
  2455  			res.Body.Close()
  2456  			errRes := &ErrorResponse{Response: res}
  2457  			err := jsonx.Unmarshal(b, errRes)
  2458  			if err != nil {
  2459  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  2460  			}
  2461  			return nil, errRes
  2462  		}
  2463  		var (
  2464  			paging Paging
  2465  			value  []Person
  2466  		)
  2467  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  2468  		res.Body.Close()
  2469  		if err != nil {
  2470  			return nil, err
  2471  		}
  2472  		err = jsonx.Unmarshal(paging.Value, &value)
  2473  		if err != nil {
  2474  			return nil, err
  2475  		}
  2476  		values = append(values, value...)
  2477  		if n >= 0 {
  2478  			n--
  2479  		}
  2480  		if n == 0 || len(paging.NextLink) == 0 {
  2481  			return values, nil
  2482  		}
  2483  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  2484  		if ctx != nil {
  2485  			req = req.WithContext(ctx)
  2486  		}
  2487  		res, err = r.client.Do(req)
  2488  		if err != nil {
  2489  			return nil, err
  2490  		}
  2491  	}
  2492  }
  2493  
  2494  // GetN performs GET request for Person collection, max N pages
  2495  func (r *UserPeopleCollectionRequest) GetN(ctx context.Context, n int) ([]Person, error) {
  2496  	var query string
  2497  	if r.query != nil {
  2498  		query = "?" + r.query.Encode()
  2499  	}
  2500  	return r.Paging(ctx, "GET", query, nil, n)
  2501  }
  2502  
  2503  // Get performs GET request for Person collection
  2504  func (r *UserPeopleCollectionRequest) Get(ctx context.Context) ([]Person, error) {
  2505  	return r.GetN(ctx, 0)
  2506  }
  2507  
  2508  // Add performs POST request for Person collection
  2509  func (r *UserPeopleCollectionRequest) Add(ctx context.Context, reqObj *Person) (resObj *Person, err error) {
  2510  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  2511  	return
  2512  }
  2513  
  2514  // Photo is navigation property
  2515  func (b *UserRequestBuilder) Photo() *ProfilePhotoRequestBuilder {
  2516  	bb := &ProfilePhotoRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2517  	bb.baseURL += "/photo"
  2518  	return bb
  2519  }
  2520  
  2521  // Photos returns request builder for ProfilePhoto collection
  2522  func (b *UserRequestBuilder) Photos() *UserPhotosCollectionRequestBuilder {
  2523  	bb := &UserPhotosCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2524  	bb.baseURL += "/photos"
  2525  	return bb
  2526  }
  2527  
  2528  // UserPhotosCollectionRequestBuilder is request builder for ProfilePhoto collection
  2529  type UserPhotosCollectionRequestBuilder struct{ BaseRequestBuilder }
  2530  
  2531  // Request returns request for ProfilePhoto collection
  2532  func (b *UserPhotosCollectionRequestBuilder) Request() *UserPhotosCollectionRequest {
  2533  	return &UserPhotosCollectionRequest{
  2534  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  2535  	}
  2536  }
  2537  
  2538  // ID returns request builder for ProfilePhoto item
  2539  func (b *UserPhotosCollectionRequestBuilder) ID(id string) *ProfilePhotoRequestBuilder {
  2540  	bb := &ProfilePhotoRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2541  	bb.baseURL += "/" + id
  2542  	return bb
  2543  }
  2544  
  2545  // UserPhotosCollectionRequest is request for ProfilePhoto collection
  2546  type UserPhotosCollectionRequest struct{ BaseRequest }
  2547  
  2548  // Paging perfoms paging operation for ProfilePhoto collection
  2549  func (r *UserPhotosCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]ProfilePhoto, error) {
  2550  	req, err := r.NewJSONRequest(method, path, obj)
  2551  	if err != nil {
  2552  		return nil, err
  2553  	}
  2554  	if ctx != nil {
  2555  		req = req.WithContext(ctx)
  2556  	}
  2557  	res, err := r.client.Do(req)
  2558  	if err != nil {
  2559  		return nil, err
  2560  	}
  2561  	var values []ProfilePhoto
  2562  	for {
  2563  		if res.StatusCode != http.StatusOK {
  2564  			b, _ := ioutil.ReadAll(res.Body)
  2565  			res.Body.Close()
  2566  			errRes := &ErrorResponse{Response: res}
  2567  			err := jsonx.Unmarshal(b, errRes)
  2568  			if err != nil {
  2569  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  2570  			}
  2571  			return nil, errRes
  2572  		}
  2573  		var (
  2574  			paging Paging
  2575  			value  []ProfilePhoto
  2576  		)
  2577  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  2578  		res.Body.Close()
  2579  		if err != nil {
  2580  			return nil, err
  2581  		}
  2582  		err = jsonx.Unmarshal(paging.Value, &value)
  2583  		if err != nil {
  2584  			return nil, err
  2585  		}
  2586  		values = append(values, value...)
  2587  		if n >= 0 {
  2588  			n--
  2589  		}
  2590  		if n == 0 || len(paging.NextLink) == 0 {
  2591  			return values, nil
  2592  		}
  2593  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  2594  		if ctx != nil {
  2595  			req = req.WithContext(ctx)
  2596  		}
  2597  		res, err = r.client.Do(req)
  2598  		if err != nil {
  2599  			return nil, err
  2600  		}
  2601  	}
  2602  }
  2603  
  2604  // GetN performs GET request for ProfilePhoto collection, max N pages
  2605  func (r *UserPhotosCollectionRequest) GetN(ctx context.Context, n int) ([]ProfilePhoto, error) {
  2606  	var query string
  2607  	if r.query != nil {
  2608  		query = "?" + r.query.Encode()
  2609  	}
  2610  	return r.Paging(ctx, "GET", query, nil, n)
  2611  }
  2612  
  2613  // Get performs GET request for ProfilePhoto collection
  2614  func (r *UserPhotosCollectionRequest) Get(ctx context.Context) ([]ProfilePhoto, error) {
  2615  	return r.GetN(ctx, 0)
  2616  }
  2617  
  2618  // Add performs POST request for ProfilePhoto collection
  2619  func (r *UserPhotosCollectionRequest) Add(ctx context.Context, reqObj *ProfilePhoto) (resObj *ProfilePhoto, err error) {
  2620  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  2621  	return
  2622  }
  2623  
  2624  // Planner is navigation property
  2625  func (b *UserRequestBuilder) Planner() *PlannerUserRequestBuilder {
  2626  	bb := &PlannerUserRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2627  	bb.baseURL += "/planner"
  2628  	return bb
  2629  }
  2630  
  2631  // RegisteredDevices returns request builder for DirectoryObject collection
  2632  func (b *UserRequestBuilder) RegisteredDevices() *UserRegisteredDevicesCollectionRequestBuilder {
  2633  	bb := &UserRegisteredDevicesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2634  	bb.baseURL += "/registeredDevices"
  2635  	return bb
  2636  }
  2637  
  2638  // UserRegisteredDevicesCollectionRequestBuilder is request builder for DirectoryObject collection
  2639  type UserRegisteredDevicesCollectionRequestBuilder struct{ BaseRequestBuilder }
  2640  
  2641  // Request returns request for DirectoryObject collection
  2642  func (b *UserRegisteredDevicesCollectionRequestBuilder) Request() *UserRegisteredDevicesCollectionRequest {
  2643  	return &UserRegisteredDevicesCollectionRequest{
  2644  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  2645  	}
  2646  }
  2647  
  2648  // ID returns request builder for DirectoryObject item
  2649  func (b *UserRegisteredDevicesCollectionRequestBuilder) ID(id string) *DirectoryObjectRequestBuilder {
  2650  	bb := &DirectoryObjectRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2651  	bb.baseURL += "/" + id
  2652  	return bb
  2653  }
  2654  
  2655  // UserRegisteredDevicesCollectionRequest is request for DirectoryObject collection
  2656  type UserRegisteredDevicesCollectionRequest struct{ BaseRequest }
  2657  
  2658  // Paging perfoms paging operation for DirectoryObject collection
  2659  func (r *UserRegisteredDevicesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]DirectoryObject, error) {
  2660  	req, err := r.NewJSONRequest(method, path, obj)
  2661  	if err != nil {
  2662  		return nil, err
  2663  	}
  2664  	if ctx != nil {
  2665  		req = req.WithContext(ctx)
  2666  	}
  2667  	res, err := r.client.Do(req)
  2668  	if err != nil {
  2669  		return nil, err
  2670  	}
  2671  	var values []DirectoryObject
  2672  	for {
  2673  		if res.StatusCode != http.StatusOK {
  2674  			b, _ := ioutil.ReadAll(res.Body)
  2675  			res.Body.Close()
  2676  			errRes := &ErrorResponse{Response: res}
  2677  			err := jsonx.Unmarshal(b, errRes)
  2678  			if err != nil {
  2679  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  2680  			}
  2681  			return nil, errRes
  2682  		}
  2683  		var (
  2684  			paging Paging
  2685  			value  []DirectoryObject
  2686  		)
  2687  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  2688  		res.Body.Close()
  2689  		if err != nil {
  2690  			return nil, err
  2691  		}
  2692  		err = jsonx.Unmarshal(paging.Value, &value)
  2693  		if err != nil {
  2694  			return nil, err
  2695  		}
  2696  		values = append(values, value...)
  2697  		if n >= 0 {
  2698  			n--
  2699  		}
  2700  		if n == 0 || len(paging.NextLink) == 0 {
  2701  			return values, nil
  2702  		}
  2703  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  2704  		if ctx != nil {
  2705  			req = req.WithContext(ctx)
  2706  		}
  2707  		res, err = r.client.Do(req)
  2708  		if err != nil {
  2709  			return nil, err
  2710  		}
  2711  	}
  2712  }
  2713  
  2714  // GetN performs GET request for DirectoryObject collection, max N pages
  2715  func (r *UserRegisteredDevicesCollectionRequest) GetN(ctx context.Context, n int) ([]DirectoryObject, error) {
  2716  	var query string
  2717  	if r.query != nil {
  2718  		query = "?" + r.query.Encode()
  2719  	}
  2720  	return r.Paging(ctx, "GET", query, nil, n)
  2721  }
  2722  
  2723  // Get performs GET request for DirectoryObject collection
  2724  func (r *UserRegisteredDevicesCollectionRequest) Get(ctx context.Context) ([]DirectoryObject, error) {
  2725  	return r.GetN(ctx, 0)
  2726  }
  2727  
  2728  // Add performs POST request for DirectoryObject collection
  2729  func (r *UserRegisteredDevicesCollectionRequest) Add(ctx context.Context, reqObj *DirectoryObject) (resObj *DirectoryObject, err error) {
  2730  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  2731  	return
  2732  }
  2733  
  2734  // Settings is navigation property
  2735  func (b *UserRequestBuilder) Settings() *UserSettingsRequestBuilder {
  2736  	bb := &UserSettingsRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2737  	bb.baseURL += "/settings"
  2738  	return bb
  2739  }
  2740  
  2741  // TransitiveMemberOf returns request builder for DirectoryObject collection
  2742  func (b *UserRequestBuilder) TransitiveMemberOf() *UserTransitiveMemberOfCollectionRequestBuilder {
  2743  	bb := &UserTransitiveMemberOfCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2744  	bb.baseURL += "/transitiveMemberOf"
  2745  	return bb
  2746  }
  2747  
  2748  // UserTransitiveMemberOfCollectionRequestBuilder is request builder for DirectoryObject collection
  2749  type UserTransitiveMemberOfCollectionRequestBuilder struct{ BaseRequestBuilder }
  2750  
  2751  // Request returns request for DirectoryObject collection
  2752  func (b *UserTransitiveMemberOfCollectionRequestBuilder) Request() *UserTransitiveMemberOfCollectionRequest {
  2753  	return &UserTransitiveMemberOfCollectionRequest{
  2754  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  2755  	}
  2756  }
  2757  
  2758  // ID returns request builder for DirectoryObject item
  2759  func (b *UserTransitiveMemberOfCollectionRequestBuilder) ID(id string) *DirectoryObjectRequestBuilder {
  2760  	bb := &DirectoryObjectRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2761  	bb.baseURL += "/" + id
  2762  	return bb
  2763  }
  2764  
  2765  // UserTransitiveMemberOfCollectionRequest is request for DirectoryObject collection
  2766  type UserTransitiveMemberOfCollectionRequest struct{ BaseRequest }
  2767  
  2768  // Paging perfoms paging operation for DirectoryObject collection
  2769  func (r *UserTransitiveMemberOfCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]DirectoryObject, error) {
  2770  	req, err := r.NewJSONRequest(method, path, obj)
  2771  	if err != nil {
  2772  		return nil, err
  2773  	}
  2774  	if ctx != nil {
  2775  		req = req.WithContext(ctx)
  2776  	}
  2777  	res, err := r.client.Do(req)
  2778  	if err != nil {
  2779  		return nil, err
  2780  	}
  2781  	var values []DirectoryObject
  2782  	for {
  2783  		if res.StatusCode != http.StatusOK {
  2784  			b, _ := ioutil.ReadAll(res.Body)
  2785  			res.Body.Close()
  2786  			errRes := &ErrorResponse{Response: res}
  2787  			err := jsonx.Unmarshal(b, errRes)
  2788  			if err != nil {
  2789  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  2790  			}
  2791  			return nil, errRes
  2792  		}
  2793  		var (
  2794  			paging Paging
  2795  			value  []DirectoryObject
  2796  		)
  2797  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  2798  		res.Body.Close()
  2799  		if err != nil {
  2800  			return nil, err
  2801  		}
  2802  		err = jsonx.Unmarshal(paging.Value, &value)
  2803  		if err != nil {
  2804  			return nil, err
  2805  		}
  2806  		values = append(values, value...)
  2807  		if n >= 0 {
  2808  			n--
  2809  		}
  2810  		if n == 0 || len(paging.NextLink) == 0 {
  2811  			return values, nil
  2812  		}
  2813  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  2814  		if ctx != nil {
  2815  			req = req.WithContext(ctx)
  2816  		}
  2817  		res, err = r.client.Do(req)
  2818  		if err != nil {
  2819  			return nil, err
  2820  		}
  2821  	}
  2822  }
  2823  
  2824  // GetN performs GET request for DirectoryObject collection, max N pages
  2825  func (r *UserTransitiveMemberOfCollectionRequest) GetN(ctx context.Context, n int) ([]DirectoryObject, error) {
  2826  	var query string
  2827  	if r.query != nil {
  2828  		query = "?" + r.query.Encode()
  2829  	}
  2830  	return r.Paging(ctx, "GET", query, nil, n)
  2831  }
  2832  
  2833  // Get performs GET request for DirectoryObject collection
  2834  func (r *UserTransitiveMemberOfCollectionRequest) Get(ctx context.Context) ([]DirectoryObject, error) {
  2835  	return r.GetN(ctx, 0)
  2836  }
  2837  
  2838  // Add performs POST request for DirectoryObject collection
  2839  func (r *UserTransitiveMemberOfCollectionRequest) Add(ctx context.Context, reqObj *DirectoryObject) (resObj *DirectoryObject, err error) {
  2840  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  2841  	return
  2842  }
  2843  
  2844  // HistoryItems returns request builder for ActivityHistoryItem collection
  2845  func (b *UserActivityRequestBuilder) HistoryItems() *UserActivityHistoryItemsCollectionRequestBuilder {
  2846  	bb := &UserActivityHistoryItemsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2847  	bb.baseURL += "/historyItems"
  2848  	return bb
  2849  }
  2850  
  2851  // UserActivityHistoryItemsCollectionRequestBuilder is request builder for ActivityHistoryItem collection
  2852  type UserActivityHistoryItemsCollectionRequestBuilder struct{ BaseRequestBuilder }
  2853  
  2854  // Request returns request for ActivityHistoryItem collection
  2855  func (b *UserActivityHistoryItemsCollectionRequestBuilder) Request() *UserActivityHistoryItemsCollectionRequest {
  2856  	return &UserActivityHistoryItemsCollectionRequest{
  2857  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  2858  	}
  2859  }
  2860  
  2861  // ID returns request builder for ActivityHistoryItem item
  2862  func (b *UserActivityHistoryItemsCollectionRequestBuilder) ID(id string) *ActivityHistoryItemRequestBuilder {
  2863  	bb := &ActivityHistoryItemRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2864  	bb.baseURL += "/" + id
  2865  	return bb
  2866  }
  2867  
  2868  // UserActivityHistoryItemsCollectionRequest is request for ActivityHistoryItem collection
  2869  type UserActivityHistoryItemsCollectionRequest struct{ BaseRequest }
  2870  
  2871  // Paging perfoms paging operation for ActivityHistoryItem collection
  2872  func (r *UserActivityHistoryItemsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]ActivityHistoryItem, error) {
  2873  	req, err := r.NewJSONRequest(method, path, obj)
  2874  	if err != nil {
  2875  		return nil, err
  2876  	}
  2877  	if ctx != nil {
  2878  		req = req.WithContext(ctx)
  2879  	}
  2880  	res, err := r.client.Do(req)
  2881  	if err != nil {
  2882  		return nil, err
  2883  	}
  2884  	var values []ActivityHistoryItem
  2885  	for {
  2886  		if res.StatusCode != http.StatusOK {
  2887  			b, _ := ioutil.ReadAll(res.Body)
  2888  			res.Body.Close()
  2889  			errRes := &ErrorResponse{Response: res}
  2890  			err := jsonx.Unmarshal(b, errRes)
  2891  			if err != nil {
  2892  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  2893  			}
  2894  			return nil, errRes
  2895  		}
  2896  		var (
  2897  			paging Paging
  2898  			value  []ActivityHistoryItem
  2899  		)
  2900  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  2901  		res.Body.Close()
  2902  		if err != nil {
  2903  			return nil, err
  2904  		}
  2905  		err = jsonx.Unmarshal(paging.Value, &value)
  2906  		if err != nil {
  2907  			return nil, err
  2908  		}
  2909  		values = append(values, value...)
  2910  		if n >= 0 {
  2911  			n--
  2912  		}
  2913  		if n == 0 || len(paging.NextLink) == 0 {
  2914  			return values, nil
  2915  		}
  2916  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  2917  		if ctx != nil {
  2918  			req = req.WithContext(ctx)
  2919  		}
  2920  		res, err = r.client.Do(req)
  2921  		if err != nil {
  2922  			return nil, err
  2923  		}
  2924  	}
  2925  }
  2926  
  2927  // GetN performs GET request for ActivityHistoryItem collection, max N pages
  2928  func (r *UserActivityHistoryItemsCollectionRequest) GetN(ctx context.Context, n int) ([]ActivityHistoryItem, error) {
  2929  	var query string
  2930  	if r.query != nil {
  2931  		query = "?" + r.query.Encode()
  2932  	}
  2933  	return r.Paging(ctx, "GET", query, nil, n)
  2934  }
  2935  
  2936  // Get performs GET request for ActivityHistoryItem collection
  2937  func (r *UserActivityHistoryItemsCollectionRequest) Get(ctx context.Context) ([]ActivityHistoryItem, error) {
  2938  	return r.GetN(ctx, 0)
  2939  }
  2940  
  2941  // Add performs POST request for ActivityHistoryItem collection
  2942  func (r *UserActivityHistoryItemsCollectionRequest) Add(ctx context.Context, reqObj *ActivityHistoryItem) (resObj *ActivityHistoryItem, err error) {
  2943  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  2944  	return
  2945  }
  2946  
  2947  // DeviceStates returns request builder for DeviceInstallState collection
  2948  func (b *UserInstallStateSummaryRequestBuilder) DeviceStates() *UserInstallStateSummaryDeviceStatesCollectionRequestBuilder {
  2949  	bb := &UserInstallStateSummaryDeviceStatesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2950  	bb.baseURL += "/deviceStates"
  2951  	return bb
  2952  }
  2953  
  2954  // UserInstallStateSummaryDeviceStatesCollectionRequestBuilder is request builder for DeviceInstallState collection
  2955  type UserInstallStateSummaryDeviceStatesCollectionRequestBuilder struct{ BaseRequestBuilder }
  2956  
  2957  // Request returns request for DeviceInstallState collection
  2958  func (b *UserInstallStateSummaryDeviceStatesCollectionRequestBuilder) Request() *UserInstallStateSummaryDeviceStatesCollectionRequest {
  2959  	return &UserInstallStateSummaryDeviceStatesCollectionRequest{
  2960  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  2961  	}
  2962  }
  2963  
  2964  // ID returns request builder for DeviceInstallState item
  2965  func (b *UserInstallStateSummaryDeviceStatesCollectionRequestBuilder) ID(id string) *DeviceInstallStateRequestBuilder {
  2966  	bb := &DeviceInstallStateRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2967  	bb.baseURL += "/" + id
  2968  	return bb
  2969  }
  2970  
  2971  // UserInstallStateSummaryDeviceStatesCollectionRequest is request for DeviceInstallState collection
  2972  type UserInstallStateSummaryDeviceStatesCollectionRequest struct{ BaseRequest }
  2973  
  2974  // Paging perfoms paging operation for DeviceInstallState collection
  2975  func (r *UserInstallStateSummaryDeviceStatesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]DeviceInstallState, error) {
  2976  	req, err := r.NewJSONRequest(method, path, obj)
  2977  	if err != nil {
  2978  		return nil, err
  2979  	}
  2980  	if ctx != nil {
  2981  		req = req.WithContext(ctx)
  2982  	}
  2983  	res, err := r.client.Do(req)
  2984  	if err != nil {
  2985  		return nil, err
  2986  	}
  2987  	var values []DeviceInstallState
  2988  	for {
  2989  		if res.StatusCode != http.StatusOK {
  2990  			b, _ := ioutil.ReadAll(res.Body)
  2991  			res.Body.Close()
  2992  			errRes := &ErrorResponse{Response: res}
  2993  			err := jsonx.Unmarshal(b, errRes)
  2994  			if err != nil {
  2995  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  2996  			}
  2997  			return nil, errRes
  2998  		}
  2999  		var (
  3000  			paging Paging
  3001  			value  []DeviceInstallState
  3002  		)
  3003  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  3004  		res.Body.Close()
  3005  		if err != nil {
  3006  			return nil, err
  3007  		}
  3008  		err = jsonx.Unmarshal(paging.Value, &value)
  3009  		if err != nil {
  3010  			return nil, err
  3011  		}
  3012  		values = append(values, value...)
  3013  		if n >= 0 {
  3014  			n--
  3015  		}
  3016  		if n == 0 || len(paging.NextLink) == 0 {
  3017  			return values, nil
  3018  		}
  3019  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  3020  		if ctx != nil {
  3021  			req = req.WithContext(ctx)
  3022  		}
  3023  		res, err = r.client.Do(req)
  3024  		if err != nil {
  3025  			return nil, err
  3026  		}
  3027  	}
  3028  }
  3029  
  3030  // GetN performs GET request for DeviceInstallState collection, max N pages
  3031  func (r *UserInstallStateSummaryDeviceStatesCollectionRequest) GetN(ctx context.Context, n int) ([]DeviceInstallState, error) {
  3032  	var query string
  3033  	if r.query != nil {
  3034  		query = "?" + r.query.Encode()
  3035  	}
  3036  	return r.Paging(ctx, "GET", query, nil, n)
  3037  }
  3038  
  3039  // Get performs GET request for DeviceInstallState collection
  3040  func (r *UserInstallStateSummaryDeviceStatesCollectionRequest) Get(ctx context.Context) ([]DeviceInstallState, error) {
  3041  	return r.GetN(ctx, 0)
  3042  }
  3043  
  3044  // Add performs POST request for DeviceInstallState collection
  3045  func (r *UserInstallStateSummaryDeviceStatesCollectionRequest) Add(ctx context.Context, reqObj *DeviceInstallState) (resObj *DeviceInstallState, err error) {
  3046  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  3047  	return
  3048  }