github.com/yaegashi/msgraph.go@v0.1.4/beta/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  // UserInvalidateAllRefreshTokensRequestParameter undocumented
    31  type UserInvalidateAllRefreshTokensRequestParameter struct {
    32  }
    33  
    34  // UserRevokeSignInSessionsRequestParameter undocumented
    35  type UserRevokeSignInSessionsRequestParameter struct {
    36  }
    37  
    38  // UserReprocessLicenseAssignmentRequestParameter undocumented
    39  type UserReprocessLicenseAssignmentRequestParameter struct {
    40  }
    41  
    42  // UserFindMeetingTimesRequestParameter undocumented
    43  type UserFindMeetingTimesRequestParameter struct {
    44  	// Attendees undocumented
    45  	Attendees []AttendeeBase `json:"attendees,omitempty"`
    46  	// LocationConstraint undocumented
    47  	LocationConstraint *LocationConstraint `json:"locationConstraint,omitempty"`
    48  	// TimeConstraint undocumented
    49  	TimeConstraint *TimeConstraint `json:"timeConstraint,omitempty"`
    50  	// MeetingDuration undocumented
    51  	MeetingDuration *Duration `json:"meetingDuration,omitempty"`
    52  	// MaxCandidates undocumented
    53  	MaxCandidates *int `json:"maxCandidates,omitempty"`
    54  	// IsOrganizerOptional undocumented
    55  	IsOrganizerOptional *bool `json:"isOrganizerOptional,omitempty"`
    56  	// ReturnSuggestionReasons undocumented
    57  	ReturnSuggestionReasons *bool `json:"returnSuggestionReasons,omitempty"`
    58  	// MinimumAttendeePercentage undocumented
    59  	MinimumAttendeePercentage *float64 `json:"minimumAttendeePercentage,omitempty"`
    60  }
    61  
    62  // UserSendMailRequestParameter undocumented
    63  type UserSendMailRequestParameter struct {
    64  	// Message undocumented
    65  	Message *Message `json:"Message,omitempty"`
    66  	// SaveToSentItems undocumented
    67  	SaveToSentItems *bool `json:"SaveToSentItems,omitempty"`
    68  }
    69  
    70  // UserGetMailTipsRequestParameter undocumented
    71  type UserGetMailTipsRequestParameter struct {
    72  	// EmailAddresses undocumented
    73  	EmailAddresses []string `json:"EmailAddresses,omitempty"`
    74  	// MailTipsOptions undocumented
    75  	MailTipsOptions *MailTipsType `json:"MailTipsOptions,omitempty"`
    76  }
    77  
    78  // UserTranslateExchangeIDsRequestParameter undocumented
    79  type UserTranslateExchangeIDsRequestParameter struct {
    80  	// InputIDs undocumented
    81  	InputIDs []string `json:"InputIds,omitempty"`
    82  	// TargetIDType undocumented
    83  	TargetIDType *ExchangeIDFormat `json:"TargetIdType,omitempty"`
    84  	// SourceIDType undocumented
    85  	SourceIDType *ExchangeIDFormat `json:"SourceIdType,omitempty"`
    86  }
    87  
    88  // UserRemoveAllDevicesFromManagementRequestParameter undocumented
    89  type UserRemoveAllDevicesFromManagementRequestParameter struct {
    90  }
    91  
    92  // UserWipeManagedAppRegistrationByDeviceTagRequestParameter undocumented
    93  type UserWipeManagedAppRegistrationByDeviceTagRequestParameter struct {
    94  	// DeviceTag undocumented
    95  	DeviceTag *string `json:"deviceTag,omitempty"`
    96  }
    97  
    98  // UserWipeManagedAppRegistrationsByDeviceTagRequestParameter undocumented
    99  type UserWipeManagedAppRegistrationsByDeviceTagRequestParameter struct {
   100  	// DeviceTag undocumented
   101  	DeviceTag *string `json:"deviceTag,omitempty"`
   102  }
   103  
   104  // UserExportPersonalDataRequestParameter undocumented
   105  type UserExportPersonalDataRequestParameter struct {
   106  	// StorageLocation undocumented
   107  	StorageLocation *string `json:"storageLocation,omitempty"`
   108  }
   109  
   110  // Activities returns request builder for UserActivity collection
   111  func (b *UserRequestBuilder) Activities() *UserActivitiesCollectionRequestBuilder {
   112  	bb := &UserActivitiesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   113  	bb.baseURL += "/activities"
   114  	return bb
   115  }
   116  
   117  // UserActivitiesCollectionRequestBuilder is request builder for UserActivity collection
   118  type UserActivitiesCollectionRequestBuilder struct{ BaseRequestBuilder }
   119  
   120  // Request returns request for UserActivity collection
   121  func (b *UserActivitiesCollectionRequestBuilder) Request() *UserActivitiesCollectionRequest {
   122  	return &UserActivitiesCollectionRequest{
   123  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   124  	}
   125  }
   126  
   127  // ID returns request builder for UserActivity item
   128  func (b *UserActivitiesCollectionRequestBuilder) ID(id string) *UserActivityRequestBuilder {
   129  	bb := &UserActivityRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   130  	bb.baseURL += "/" + id
   131  	return bb
   132  }
   133  
   134  // UserActivitiesCollectionRequest is request for UserActivity collection
   135  type UserActivitiesCollectionRequest struct{ BaseRequest }
   136  
   137  // Paging perfoms paging operation for UserActivity collection
   138  func (r *UserActivitiesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]UserActivity, error) {
   139  	req, err := r.NewJSONRequest(method, path, obj)
   140  	if err != nil {
   141  		return nil, err
   142  	}
   143  	if ctx != nil {
   144  		req = req.WithContext(ctx)
   145  	}
   146  	res, err := r.client.Do(req)
   147  	if err != nil {
   148  		return nil, err
   149  	}
   150  	var values []UserActivity
   151  	for {
   152  		if res.StatusCode != http.StatusOK {
   153  			b, _ := ioutil.ReadAll(res.Body)
   154  			res.Body.Close()
   155  			errRes := &ErrorResponse{Response: res}
   156  			err := jsonx.Unmarshal(b, errRes)
   157  			if err != nil {
   158  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
   159  			}
   160  			return nil, errRes
   161  		}
   162  		var (
   163  			paging Paging
   164  			value  []UserActivity
   165  		)
   166  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
   167  		res.Body.Close()
   168  		if err != nil {
   169  			return nil, err
   170  		}
   171  		err = jsonx.Unmarshal(paging.Value, &value)
   172  		if err != nil {
   173  			return nil, err
   174  		}
   175  		values = append(values, value...)
   176  		if n >= 0 {
   177  			n--
   178  		}
   179  		if n == 0 || len(paging.NextLink) == 0 {
   180  			return values, nil
   181  		}
   182  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   183  		if ctx != nil {
   184  			req = req.WithContext(ctx)
   185  		}
   186  		res, err = r.client.Do(req)
   187  		if err != nil {
   188  			return nil, err
   189  		}
   190  	}
   191  }
   192  
   193  // GetN performs GET request for UserActivity collection, max N pages
   194  func (r *UserActivitiesCollectionRequest) GetN(ctx context.Context, n int) ([]UserActivity, error) {
   195  	var query string
   196  	if r.query != nil {
   197  		query = "?" + r.query.Encode()
   198  	}
   199  	return r.Paging(ctx, "GET", query, nil, n)
   200  }
   201  
   202  // Get performs GET request for UserActivity collection
   203  func (r *UserActivitiesCollectionRequest) Get(ctx context.Context) ([]UserActivity, error) {
   204  	return r.GetN(ctx, 0)
   205  }
   206  
   207  // Add performs POST request for UserActivity collection
   208  func (r *UserActivitiesCollectionRequest) Add(ctx context.Context, reqObj *UserActivity) (resObj *UserActivity, err error) {
   209  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   210  	return
   211  }
   212  
   213  // AgreementAcceptances returns request builder for AgreementAcceptance collection
   214  func (b *UserRequestBuilder) AgreementAcceptances() *UserAgreementAcceptancesCollectionRequestBuilder {
   215  	bb := &UserAgreementAcceptancesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   216  	bb.baseURL += "/agreementAcceptances"
   217  	return bb
   218  }
   219  
   220  // UserAgreementAcceptancesCollectionRequestBuilder is request builder for AgreementAcceptance collection
   221  type UserAgreementAcceptancesCollectionRequestBuilder struct{ BaseRequestBuilder }
   222  
   223  // Request returns request for AgreementAcceptance collection
   224  func (b *UserAgreementAcceptancesCollectionRequestBuilder) Request() *UserAgreementAcceptancesCollectionRequest {
   225  	return &UserAgreementAcceptancesCollectionRequest{
   226  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   227  	}
   228  }
   229  
   230  // ID returns request builder for AgreementAcceptance item
   231  func (b *UserAgreementAcceptancesCollectionRequestBuilder) ID(id string) *AgreementAcceptanceRequestBuilder {
   232  	bb := &AgreementAcceptanceRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   233  	bb.baseURL += "/" + id
   234  	return bb
   235  }
   236  
   237  // UserAgreementAcceptancesCollectionRequest is request for AgreementAcceptance collection
   238  type UserAgreementAcceptancesCollectionRequest struct{ BaseRequest }
   239  
   240  // Paging perfoms paging operation for AgreementAcceptance collection
   241  func (r *UserAgreementAcceptancesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]AgreementAcceptance, error) {
   242  	req, err := r.NewJSONRequest(method, path, obj)
   243  	if err != nil {
   244  		return nil, err
   245  	}
   246  	if ctx != nil {
   247  		req = req.WithContext(ctx)
   248  	}
   249  	res, err := r.client.Do(req)
   250  	if err != nil {
   251  		return nil, err
   252  	}
   253  	var values []AgreementAcceptance
   254  	for {
   255  		if res.StatusCode != http.StatusOK {
   256  			b, _ := ioutil.ReadAll(res.Body)
   257  			res.Body.Close()
   258  			errRes := &ErrorResponse{Response: res}
   259  			err := jsonx.Unmarshal(b, errRes)
   260  			if err != nil {
   261  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
   262  			}
   263  			return nil, errRes
   264  		}
   265  		var (
   266  			paging Paging
   267  			value  []AgreementAcceptance
   268  		)
   269  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
   270  		res.Body.Close()
   271  		if err != nil {
   272  			return nil, err
   273  		}
   274  		err = jsonx.Unmarshal(paging.Value, &value)
   275  		if err != nil {
   276  			return nil, err
   277  		}
   278  		values = append(values, value...)
   279  		if n >= 0 {
   280  			n--
   281  		}
   282  		if n == 0 || len(paging.NextLink) == 0 {
   283  			return values, nil
   284  		}
   285  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   286  		if ctx != nil {
   287  			req = req.WithContext(ctx)
   288  		}
   289  		res, err = r.client.Do(req)
   290  		if err != nil {
   291  			return nil, err
   292  		}
   293  	}
   294  }
   295  
   296  // GetN performs GET request for AgreementAcceptance collection, max N pages
   297  func (r *UserAgreementAcceptancesCollectionRequest) GetN(ctx context.Context, n int) ([]AgreementAcceptance, error) {
   298  	var query string
   299  	if r.query != nil {
   300  		query = "?" + r.query.Encode()
   301  	}
   302  	return r.Paging(ctx, "GET", query, nil, n)
   303  }
   304  
   305  // Get performs GET request for AgreementAcceptance collection
   306  func (r *UserAgreementAcceptancesCollectionRequest) Get(ctx context.Context) ([]AgreementAcceptance, error) {
   307  	return r.GetN(ctx, 0)
   308  }
   309  
   310  // Add performs POST request for AgreementAcceptance collection
   311  func (r *UserAgreementAcceptancesCollectionRequest) Add(ctx context.Context, reqObj *AgreementAcceptance) (resObj *AgreementAcceptance, err error) {
   312  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   313  	return
   314  }
   315  
   316  // Analytics is navigation property
   317  func (b *UserRequestBuilder) Analytics() *UserAnalyticsRequestBuilder {
   318  	bb := &UserAnalyticsRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   319  	bb.baseURL += "/analytics"
   320  	return bb
   321  }
   322  
   323  // AppRoleAssignments returns request builder for AppRoleAssignment collection
   324  func (b *UserRequestBuilder) AppRoleAssignments() *UserAppRoleAssignmentsCollectionRequestBuilder {
   325  	bb := &UserAppRoleAssignmentsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   326  	bb.baseURL += "/appRoleAssignments"
   327  	return bb
   328  }
   329  
   330  // UserAppRoleAssignmentsCollectionRequestBuilder is request builder for AppRoleAssignment collection
   331  type UserAppRoleAssignmentsCollectionRequestBuilder struct{ BaseRequestBuilder }
   332  
   333  // Request returns request for AppRoleAssignment collection
   334  func (b *UserAppRoleAssignmentsCollectionRequestBuilder) Request() *UserAppRoleAssignmentsCollectionRequest {
   335  	return &UserAppRoleAssignmentsCollectionRequest{
   336  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   337  	}
   338  }
   339  
   340  // ID returns request builder for AppRoleAssignment item
   341  func (b *UserAppRoleAssignmentsCollectionRequestBuilder) ID(id string) *AppRoleAssignmentRequestBuilder {
   342  	bb := &AppRoleAssignmentRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   343  	bb.baseURL += "/" + id
   344  	return bb
   345  }
   346  
   347  // UserAppRoleAssignmentsCollectionRequest is request for AppRoleAssignment collection
   348  type UserAppRoleAssignmentsCollectionRequest struct{ BaseRequest }
   349  
   350  // Paging perfoms paging operation for AppRoleAssignment collection
   351  func (r *UserAppRoleAssignmentsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]AppRoleAssignment, error) {
   352  	req, err := r.NewJSONRequest(method, path, obj)
   353  	if err != nil {
   354  		return nil, err
   355  	}
   356  	if ctx != nil {
   357  		req = req.WithContext(ctx)
   358  	}
   359  	res, err := r.client.Do(req)
   360  	if err != nil {
   361  		return nil, err
   362  	}
   363  	var values []AppRoleAssignment
   364  	for {
   365  		if res.StatusCode != http.StatusOK {
   366  			b, _ := ioutil.ReadAll(res.Body)
   367  			res.Body.Close()
   368  			errRes := &ErrorResponse{Response: res}
   369  			err := jsonx.Unmarshal(b, errRes)
   370  			if err != nil {
   371  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
   372  			}
   373  			return nil, errRes
   374  		}
   375  		var (
   376  			paging Paging
   377  			value  []AppRoleAssignment
   378  		)
   379  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
   380  		res.Body.Close()
   381  		if err != nil {
   382  			return nil, err
   383  		}
   384  		err = jsonx.Unmarshal(paging.Value, &value)
   385  		if err != nil {
   386  			return nil, err
   387  		}
   388  		values = append(values, value...)
   389  		if n >= 0 {
   390  			n--
   391  		}
   392  		if n == 0 || len(paging.NextLink) == 0 {
   393  			return values, nil
   394  		}
   395  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   396  		if ctx != nil {
   397  			req = req.WithContext(ctx)
   398  		}
   399  		res, err = r.client.Do(req)
   400  		if err != nil {
   401  			return nil, err
   402  		}
   403  	}
   404  }
   405  
   406  // GetN performs GET request for AppRoleAssignment collection, max N pages
   407  func (r *UserAppRoleAssignmentsCollectionRequest) GetN(ctx context.Context, n int) ([]AppRoleAssignment, error) {
   408  	var query string
   409  	if r.query != nil {
   410  		query = "?" + r.query.Encode()
   411  	}
   412  	return r.Paging(ctx, "GET", query, nil, n)
   413  }
   414  
   415  // Get performs GET request for AppRoleAssignment collection
   416  func (r *UserAppRoleAssignmentsCollectionRequest) Get(ctx context.Context) ([]AppRoleAssignment, error) {
   417  	return r.GetN(ctx, 0)
   418  }
   419  
   420  // Add performs POST request for AppRoleAssignment collection
   421  func (r *UserAppRoleAssignmentsCollectionRequest) Add(ctx context.Context, reqObj *AppRoleAssignment) (resObj *AppRoleAssignment, err error) {
   422  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   423  	return
   424  }
   425  
   426  // Calendar is navigation property
   427  func (b *UserRequestBuilder) Calendar() *CalendarRequestBuilder {
   428  	bb := &CalendarRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   429  	bb.baseURL += "/calendar"
   430  	return bb
   431  }
   432  
   433  // CalendarGroups returns request builder for CalendarGroup collection
   434  func (b *UserRequestBuilder) CalendarGroups() *UserCalendarGroupsCollectionRequestBuilder {
   435  	bb := &UserCalendarGroupsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   436  	bb.baseURL += "/calendarGroups"
   437  	return bb
   438  }
   439  
   440  // UserCalendarGroupsCollectionRequestBuilder is request builder for CalendarGroup collection
   441  type UserCalendarGroupsCollectionRequestBuilder struct{ BaseRequestBuilder }
   442  
   443  // Request returns request for CalendarGroup collection
   444  func (b *UserCalendarGroupsCollectionRequestBuilder) Request() *UserCalendarGroupsCollectionRequest {
   445  	return &UserCalendarGroupsCollectionRequest{
   446  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   447  	}
   448  }
   449  
   450  // ID returns request builder for CalendarGroup item
   451  func (b *UserCalendarGroupsCollectionRequestBuilder) ID(id string) *CalendarGroupRequestBuilder {
   452  	bb := &CalendarGroupRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   453  	bb.baseURL += "/" + id
   454  	return bb
   455  }
   456  
   457  // UserCalendarGroupsCollectionRequest is request for CalendarGroup collection
   458  type UserCalendarGroupsCollectionRequest struct{ BaseRequest }
   459  
   460  // Paging perfoms paging operation for CalendarGroup collection
   461  func (r *UserCalendarGroupsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]CalendarGroup, error) {
   462  	req, err := r.NewJSONRequest(method, path, obj)
   463  	if err != nil {
   464  		return nil, err
   465  	}
   466  	if ctx != nil {
   467  		req = req.WithContext(ctx)
   468  	}
   469  	res, err := r.client.Do(req)
   470  	if err != nil {
   471  		return nil, err
   472  	}
   473  	var values []CalendarGroup
   474  	for {
   475  		if res.StatusCode != http.StatusOK {
   476  			b, _ := ioutil.ReadAll(res.Body)
   477  			res.Body.Close()
   478  			errRes := &ErrorResponse{Response: res}
   479  			err := jsonx.Unmarshal(b, errRes)
   480  			if err != nil {
   481  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
   482  			}
   483  			return nil, errRes
   484  		}
   485  		var (
   486  			paging Paging
   487  			value  []CalendarGroup
   488  		)
   489  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
   490  		res.Body.Close()
   491  		if err != nil {
   492  			return nil, err
   493  		}
   494  		err = jsonx.Unmarshal(paging.Value, &value)
   495  		if err != nil {
   496  			return nil, err
   497  		}
   498  		values = append(values, value...)
   499  		if n >= 0 {
   500  			n--
   501  		}
   502  		if n == 0 || len(paging.NextLink) == 0 {
   503  			return values, nil
   504  		}
   505  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   506  		if ctx != nil {
   507  			req = req.WithContext(ctx)
   508  		}
   509  		res, err = r.client.Do(req)
   510  		if err != nil {
   511  			return nil, err
   512  		}
   513  	}
   514  }
   515  
   516  // GetN performs GET request for CalendarGroup collection, max N pages
   517  func (r *UserCalendarGroupsCollectionRequest) GetN(ctx context.Context, n int) ([]CalendarGroup, error) {
   518  	var query string
   519  	if r.query != nil {
   520  		query = "?" + r.query.Encode()
   521  	}
   522  	return r.Paging(ctx, "GET", query, nil, n)
   523  }
   524  
   525  // Get performs GET request for CalendarGroup collection
   526  func (r *UserCalendarGroupsCollectionRequest) Get(ctx context.Context) ([]CalendarGroup, error) {
   527  	return r.GetN(ctx, 0)
   528  }
   529  
   530  // Add performs POST request for CalendarGroup collection
   531  func (r *UserCalendarGroupsCollectionRequest) Add(ctx context.Context, reqObj *CalendarGroup) (resObj *CalendarGroup, err error) {
   532  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   533  	return
   534  }
   535  
   536  // CalendarView returns request builder for Event collection
   537  func (b *UserRequestBuilder) CalendarView() *UserCalendarViewCollectionRequestBuilder {
   538  	bb := &UserCalendarViewCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   539  	bb.baseURL += "/calendarView"
   540  	return bb
   541  }
   542  
   543  // UserCalendarViewCollectionRequestBuilder is request builder for Event collection
   544  type UserCalendarViewCollectionRequestBuilder struct{ BaseRequestBuilder }
   545  
   546  // Request returns request for Event collection
   547  func (b *UserCalendarViewCollectionRequestBuilder) Request() *UserCalendarViewCollectionRequest {
   548  	return &UserCalendarViewCollectionRequest{
   549  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   550  	}
   551  }
   552  
   553  // ID returns request builder for Event item
   554  func (b *UserCalendarViewCollectionRequestBuilder) ID(id string) *EventRequestBuilder {
   555  	bb := &EventRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   556  	bb.baseURL += "/" + id
   557  	return bb
   558  }
   559  
   560  // UserCalendarViewCollectionRequest is request for Event collection
   561  type UserCalendarViewCollectionRequest struct{ BaseRequest }
   562  
   563  // Paging perfoms paging operation for Event collection
   564  func (r *UserCalendarViewCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]Event, error) {
   565  	req, err := r.NewJSONRequest(method, path, obj)
   566  	if err != nil {
   567  		return nil, err
   568  	}
   569  	if ctx != nil {
   570  		req = req.WithContext(ctx)
   571  	}
   572  	res, err := r.client.Do(req)
   573  	if err != nil {
   574  		return nil, err
   575  	}
   576  	var values []Event
   577  	for {
   578  		if res.StatusCode != http.StatusOK {
   579  			b, _ := ioutil.ReadAll(res.Body)
   580  			res.Body.Close()
   581  			errRes := &ErrorResponse{Response: res}
   582  			err := jsonx.Unmarshal(b, errRes)
   583  			if err != nil {
   584  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
   585  			}
   586  			return nil, errRes
   587  		}
   588  		var (
   589  			paging Paging
   590  			value  []Event
   591  		)
   592  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
   593  		res.Body.Close()
   594  		if err != nil {
   595  			return nil, err
   596  		}
   597  		err = jsonx.Unmarshal(paging.Value, &value)
   598  		if err != nil {
   599  			return nil, err
   600  		}
   601  		values = append(values, value...)
   602  		if n >= 0 {
   603  			n--
   604  		}
   605  		if n == 0 || len(paging.NextLink) == 0 {
   606  			return values, nil
   607  		}
   608  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   609  		if ctx != nil {
   610  			req = req.WithContext(ctx)
   611  		}
   612  		res, err = r.client.Do(req)
   613  		if err != nil {
   614  			return nil, err
   615  		}
   616  	}
   617  }
   618  
   619  // GetN performs GET request for Event collection, max N pages
   620  func (r *UserCalendarViewCollectionRequest) GetN(ctx context.Context, n int) ([]Event, error) {
   621  	var query string
   622  	if r.query != nil {
   623  		query = "?" + r.query.Encode()
   624  	}
   625  	return r.Paging(ctx, "GET", query, nil, n)
   626  }
   627  
   628  // Get performs GET request for Event collection
   629  func (r *UserCalendarViewCollectionRequest) Get(ctx context.Context) ([]Event, error) {
   630  	return r.GetN(ctx, 0)
   631  }
   632  
   633  // Add performs POST request for Event collection
   634  func (r *UserCalendarViewCollectionRequest) Add(ctx context.Context, reqObj *Event) (resObj *Event, err error) {
   635  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   636  	return
   637  }
   638  
   639  // Calendars returns request builder for Calendar collection
   640  func (b *UserRequestBuilder) Calendars() *UserCalendarsCollectionRequestBuilder {
   641  	bb := &UserCalendarsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   642  	bb.baseURL += "/calendars"
   643  	return bb
   644  }
   645  
   646  // UserCalendarsCollectionRequestBuilder is request builder for Calendar collection
   647  type UserCalendarsCollectionRequestBuilder struct{ BaseRequestBuilder }
   648  
   649  // Request returns request for Calendar collection
   650  func (b *UserCalendarsCollectionRequestBuilder) Request() *UserCalendarsCollectionRequest {
   651  	return &UserCalendarsCollectionRequest{
   652  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   653  	}
   654  }
   655  
   656  // ID returns request builder for Calendar item
   657  func (b *UserCalendarsCollectionRequestBuilder) ID(id string) *CalendarRequestBuilder {
   658  	bb := &CalendarRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   659  	bb.baseURL += "/" + id
   660  	return bb
   661  }
   662  
   663  // UserCalendarsCollectionRequest is request for Calendar collection
   664  type UserCalendarsCollectionRequest struct{ BaseRequest }
   665  
   666  // Paging perfoms paging operation for Calendar collection
   667  func (r *UserCalendarsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]Calendar, error) {
   668  	req, err := r.NewJSONRequest(method, path, obj)
   669  	if err != nil {
   670  		return nil, err
   671  	}
   672  	if ctx != nil {
   673  		req = req.WithContext(ctx)
   674  	}
   675  	res, err := r.client.Do(req)
   676  	if err != nil {
   677  		return nil, err
   678  	}
   679  	var values []Calendar
   680  	for {
   681  		if res.StatusCode != http.StatusOK {
   682  			b, _ := ioutil.ReadAll(res.Body)
   683  			res.Body.Close()
   684  			errRes := &ErrorResponse{Response: res}
   685  			err := jsonx.Unmarshal(b, errRes)
   686  			if err != nil {
   687  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
   688  			}
   689  			return nil, errRes
   690  		}
   691  		var (
   692  			paging Paging
   693  			value  []Calendar
   694  		)
   695  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
   696  		res.Body.Close()
   697  		if err != nil {
   698  			return nil, err
   699  		}
   700  		err = jsonx.Unmarshal(paging.Value, &value)
   701  		if err != nil {
   702  			return nil, err
   703  		}
   704  		values = append(values, value...)
   705  		if n >= 0 {
   706  			n--
   707  		}
   708  		if n == 0 || len(paging.NextLink) == 0 {
   709  			return values, nil
   710  		}
   711  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   712  		if ctx != nil {
   713  			req = req.WithContext(ctx)
   714  		}
   715  		res, err = r.client.Do(req)
   716  		if err != nil {
   717  			return nil, err
   718  		}
   719  	}
   720  }
   721  
   722  // GetN performs GET request for Calendar collection, max N pages
   723  func (r *UserCalendarsCollectionRequest) GetN(ctx context.Context, n int) ([]Calendar, error) {
   724  	var query string
   725  	if r.query != nil {
   726  		query = "?" + r.query.Encode()
   727  	}
   728  	return r.Paging(ctx, "GET", query, nil, n)
   729  }
   730  
   731  // Get performs GET request for Calendar collection
   732  func (r *UserCalendarsCollectionRequest) Get(ctx context.Context) ([]Calendar, error) {
   733  	return r.GetN(ctx, 0)
   734  }
   735  
   736  // Add performs POST request for Calendar collection
   737  func (r *UserCalendarsCollectionRequest) Add(ctx context.Context, reqObj *Calendar) (resObj *Calendar, err error) {
   738  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   739  	return
   740  }
   741  
   742  // Chats returns request builder for Chat collection
   743  func (b *UserRequestBuilder) Chats() *UserChatsCollectionRequestBuilder {
   744  	bb := &UserChatsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   745  	bb.baseURL += "/chats"
   746  	return bb
   747  }
   748  
   749  // UserChatsCollectionRequestBuilder is request builder for Chat collection
   750  type UserChatsCollectionRequestBuilder struct{ BaseRequestBuilder }
   751  
   752  // Request returns request for Chat collection
   753  func (b *UserChatsCollectionRequestBuilder) Request() *UserChatsCollectionRequest {
   754  	return &UserChatsCollectionRequest{
   755  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   756  	}
   757  }
   758  
   759  // ID returns request builder for Chat item
   760  func (b *UserChatsCollectionRequestBuilder) ID(id string) *ChatRequestBuilder {
   761  	bb := &ChatRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   762  	bb.baseURL += "/" + id
   763  	return bb
   764  }
   765  
   766  // UserChatsCollectionRequest is request for Chat collection
   767  type UserChatsCollectionRequest struct{ BaseRequest }
   768  
   769  // Paging perfoms paging operation for Chat collection
   770  func (r *UserChatsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]Chat, error) {
   771  	req, err := r.NewJSONRequest(method, path, obj)
   772  	if err != nil {
   773  		return nil, err
   774  	}
   775  	if ctx != nil {
   776  		req = req.WithContext(ctx)
   777  	}
   778  	res, err := r.client.Do(req)
   779  	if err != nil {
   780  		return nil, err
   781  	}
   782  	var values []Chat
   783  	for {
   784  		if res.StatusCode != http.StatusOK {
   785  			b, _ := ioutil.ReadAll(res.Body)
   786  			res.Body.Close()
   787  			errRes := &ErrorResponse{Response: res}
   788  			err := jsonx.Unmarshal(b, errRes)
   789  			if err != nil {
   790  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
   791  			}
   792  			return nil, errRes
   793  		}
   794  		var (
   795  			paging Paging
   796  			value  []Chat
   797  		)
   798  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
   799  		res.Body.Close()
   800  		if err != nil {
   801  			return nil, err
   802  		}
   803  		err = jsonx.Unmarshal(paging.Value, &value)
   804  		if err != nil {
   805  			return nil, err
   806  		}
   807  		values = append(values, value...)
   808  		if n >= 0 {
   809  			n--
   810  		}
   811  		if n == 0 || len(paging.NextLink) == 0 {
   812  			return values, nil
   813  		}
   814  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   815  		if ctx != nil {
   816  			req = req.WithContext(ctx)
   817  		}
   818  		res, err = r.client.Do(req)
   819  		if err != nil {
   820  			return nil, err
   821  		}
   822  	}
   823  }
   824  
   825  // GetN performs GET request for Chat collection, max N pages
   826  func (r *UserChatsCollectionRequest) GetN(ctx context.Context, n int) ([]Chat, error) {
   827  	var query string
   828  	if r.query != nil {
   829  		query = "?" + r.query.Encode()
   830  	}
   831  	return r.Paging(ctx, "GET", query, nil, n)
   832  }
   833  
   834  // Get performs GET request for Chat collection
   835  func (r *UserChatsCollectionRequest) Get(ctx context.Context) ([]Chat, error) {
   836  	return r.GetN(ctx, 0)
   837  }
   838  
   839  // Add performs POST request for Chat collection
   840  func (r *UserChatsCollectionRequest) Add(ctx context.Context, reqObj *Chat) (resObj *Chat, err error) {
   841  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   842  	return
   843  }
   844  
   845  // ContactFolders returns request builder for ContactFolder collection
   846  func (b *UserRequestBuilder) ContactFolders() *UserContactFoldersCollectionRequestBuilder {
   847  	bb := &UserContactFoldersCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   848  	bb.baseURL += "/contactFolders"
   849  	return bb
   850  }
   851  
   852  // UserContactFoldersCollectionRequestBuilder is request builder for ContactFolder collection
   853  type UserContactFoldersCollectionRequestBuilder struct{ BaseRequestBuilder }
   854  
   855  // Request returns request for ContactFolder collection
   856  func (b *UserContactFoldersCollectionRequestBuilder) Request() *UserContactFoldersCollectionRequest {
   857  	return &UserContactFoldersCollectionRequest{
   858  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   859  	}
   860  }
   861  
   862  // ID returns request builder for ContactFolder item
   863  func (b *UserContactFoldersCollectionRequestBuilder) ID(id string) *ContactFolderRequestBuilder {
   864  	bb := &ContactFolderRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   865  	bb.baseURL += "/" + id
   866  	return bb
   867  }
   868  
   869  // UserContactFoldersCollectionRequest is request for ContactFolder collection
   870  type UserContactFoldersCollectionRequest struct{ BaseRequest }
   871  
   872  // Paging perfoms paging operation for ContactFolder collection
   873  func (r *UserContactFoldersCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]ContactFolder, error) {
   874  	req, err := r.NewJSONRequest(method, path, obj)
   875  	if err != nil {
   876  		return nil, err
   877  	}
   878  	if ctx != nil {
   879  		req = req.WithContext(ctx)
   880  	}
   881  	res, err := r.client.Do(req)
   882  	if err != nil {
   883  		return nil, err
   884  	}
   885  	var values []ContactFolder
   886  	for {
   887  		if res.StatusCode != http.StatusOK {
   888  			b, _ := ioutil.ReadAll(res.Body)
   889  			res.Body.Close()
   890  			errRes := &ErrorResponse{Response: res}
   891  			err := jsonx.Unmarshal(b, errRes)
   892  			if err != nil {
   893  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
   894  			}
   895  			return nil, errRes
   896  		}
   897  		var (
   898  			paging Paging
   899  			value  []ContactFolder
   900  		)
   901  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
   902  		res.Body.Close()
   903  		if err != nil {
   904  			return nil, err
   905  		}
   906  		err = jsonx.Unmarshal(paging.Value, &value)
   907  		if err != nil {
   908  			return nil, err
   909  		}
   910  		values = append(values, value...)
   911  		if n >= 0 {
   912  			n--
   913  		}
   914  		if n == 0 || len(paging.NextLink) == 0 {
   915  			return values, nil
   916  		}
   917  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   918  		if ctx != nil {
   919  			req = req.WithContext(ctx)
   920  		}
   921  		res, err = r.client.Do(req)
   922  		if err != nil {
   923  			return nil, err
   924  		}
   925  	}
   926  }
   927  
   928  // GetN performs GET request for ContactFolder collection, max N pages
   929  func (r *UserContactFoldersCollectionRequest) GetN(ctx context.Context, n int) ([]ContactFolder, error) {
   930  	var query string
   931  	if r.query != nil {
   932  		query = "?" + r.query.Encode()
   933  	}
   934  	return r.Paging(ctx, "GET", query, nil, n)
   935  }
   936  
   937  // Get performs GET request for ContactFolder collection
   938  func (r *UserContactFoldersCollectionRequest) Get(ctx context.Context) ([]ContactFolder, error) {
   939  	return r.GetN(ctx, 0)
   940  }
   941  
   942  // Add performs POST request for ContactFolder collection
   943  func (r *UserContactFoldersCollectionRequest) Add(ctx context.Context, reqObj *ContactFolder) (resObj *ContactFolder, err error) {
   944  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   945  	return
   946  }
   947  
   948  // Contacts returns request builder for Contact collection
   949  func (b *UserRequestBuilder) Contacts() *UserContactsCollectionRequestBuilder {
   950  	bb := &UserContactsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   951  	bb.baseURL += "/contacts"
   952  	return bb
   953  }
   954  
   955  // UserContactsCollectionRequestBuilder is request builder for Contact collection
   956  type UserContactsCollectionRequestBuilder struct{ BaseRequestBuilder }
   957  
   958  // Request returns request for Contact collection
   959  func (b *UserContactsCollectionRequestBuilder) Request() *UserContactsCollectionRequest {
   960  	return &UserContactsCollectionRequest{
   961  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   962  	}
   963  }
   964  
   965  // ID returns request builder for Contact item
   966  func (b *UserContactsCollectionRequestBuilder) ID(id string) *ContactRequestBuilder {
   967  	bb := &ContactRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   968  	bb.baseURL += "/" + id
   969  	return bb
   970  }
   971  
   972  // UserContactsCollectionRequest is request for Contact collection
   973  type UserContactsCollectionRequest struct{ BaseRequest }
   974  
   975  // Paging perfoms paging operation for Contact collection
   976  func (r *UserContactsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]Contact, error) {
   977  	req, err := r.NewJSONRequest(method, path, obj)
   978  	if err != nil {
   979  		return nil, err
   980  	}
   981  	if ctx != nil {
   982  		req = req.WithContext(ctx)
   983  	}
   984  	res, err := r.client.Do(req)
   985  	if err != nil {
   986  		return nil, err
   987  	}
   988  	var values []Contact
   989  	for {
   990  		if res.StatusCode != http.StatusOK {
   991  			b, _ := ioutil.ReadAll(res.Body)
   992  			res.Body.Close()
   993  			errRes := &ErrorResponse{Response: res}
   994  			err := jsonx.Unmarshal(b, errRes)
   995  			if err != nil {
   996  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
   997  			}
   998  			return nil, errRes
   999  		}
  1000  		var (
  1001  			paging Paging
  1002  			value  []Contact
  1003  		)
  1004  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  1005  		res.Body.Close()
  1006  		if err != nil {
  1007  			return nil, err
  1008  		}
  1009  		err = jsonx.Unmarshal(paging.Value, &value)
  1010  		if err != nil {
  1011  			return nil, err
  1012  		}
  1013  		values = append(values, value...)
  1014  		if n >= 0 {
  1015  			n--
  1016  		}
  1017  		if n == 0 || len(paging.NextLink) == 0 {
  1018  			return values, nil
  1019  		}
  1020  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  1021  		if ctx != nil {
  1022  			req = req.WithContext(ctx)
  1023  		}
  1024  		res, err = r.client.Do(req)
  1025  		if err != nil {
  1026  			return nil, err
  1027  		}
  1028  	}
  1029  }
  1030  
  1031  // GetN performs GET request for Contact collection, max N pages
  1032  func (r *UserContactsCollectionRequest) GetN(ctx context.Context, n int) ([]Contact, error) {
  1033  	var query string
  1034  	if r.query != nil {
  1035  		query = "?" + r.query.Encode()
  1036  	}
  1037  	return r.Paging(ctx, "GET", query, nil, n)
  1038  }
  1039  
  1040  // Get performs GET request for Contact collection
  1041  func (r *UserContactsCollectionRequest) Get(ctx context.Context) ([]Contact, error) {
  1042  	return r.GetN(ctx, 0)
  1043  }
  1044  
  1045  // Add performs POST request for Contact collection
  1046  func (r *UserContactsCollectionRequest) Add(ctx context.Context, reqObj *Contact) (resObj *Contact, err error) {
  1047  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  1048  	return
  1049  }
  1050  
  1051  // CreatedObjects returns request builder for DirectoryObject collection
  1052  func (b *UserRequestBuilder) CreatedObjects() *UserCreatedObjectsCollectionRequestBuilder {
  1053  	bb := &UserCreatedObjectsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1054  	bb.baseURL += "/createdObjects"
  1055  	return bb
  1056  }
  1057  
  1058  // UserCreatedObjectsCollectionRequestBuilder is request builder for DirectoryObject collection
  1059  type UserCreatedObjectsCollectionRequestBuilder struct{ BaseRequestBuilder }
  1060  
  1061  // Request returns request for DirectoryObject collection
  1062  func (b *UserCreatedObjectsCollectionRequestBuilder) Request() *UserCreatedObjectsCollectionRequest {
  1063  	return &UserCreatedObjectsCollectionRequest{
  1064  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  1065  	}
  1066  }
  1067  
  1068  // ID returns request builder for DirectoryObject item
  1069  func (b *UserCreatedObjectsCollectionRequestBuilder) ID(id string) *DirectoryObjectRequestBuilder {
  1070  	bb := &DirectoryObjectRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1071  	bb.baseURL += "/" + id
  1072  	return bb
  1073  }
  1074  
  1075  // UserCreatedObjectsCollectionRequest is request for DirectoryObject collection
  1076  type UserCreatedObjectsCollectionRequest struct{ BaseRequest }
  1077  
  1078  // Paging perfoms paging operation for DirectoryObject collection
  1079  func (r *UserCreatedObjectsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]DirectoryObject, error) {
  1080  	req, err := r.NewJSONRequest(method, path, obj)
  1081  	if err != nil {
  1082  		return nil, err
  1083  	}
  1084  	if ctx != nil {
  1085  		req = req.WithContext(ctx)
  1086  	}
  1087  	res, err := r.client.Do(req)
  1088  	if err != nil {
  1089  		return nil, err
  1090  	}
  1091  	var values []DirectoryObject
  1092  	for {
  1093  		if res.StatusCode != http.StatusOK {
  1094  			b, _ := ioutil.ReadAll(res.Body)
  1095  			res.Body.Close()
  1096  			errRes := &ErrorResponse{Response: res}
  1097  			err := jsonx.Unmarshal(b, errRes)
  1098  			if err != nil {
  1099  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  1100  			}
  1101  			return nil, errRes
  1102  		}
  1103  		var (
  1104  			paging Paging
  1105  			value  []DirectoryObject
  1106  		)
  1107  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  1108  		res.Body.Close()
  1109  		if err != nil {
  1110  			return nil, err
  1111  		}
  1112  		err = jsonx.Unmarshal(paging.Value, &value)
  1113  		if err != nil {
  1114  			return nil, err
  1115  		}
  1116  		values = append(values, value...)
  1117  		if n >= 0 {
  1118  			n--
  1119  		}
  1120  		if n == 0 || len(paging.NextLink) == 0 {
  1121  			return values, nil
  1122  		}
  1123  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  1124  		if ctx != nil {
  1125  			req = req.WithContext(ctx)
  1126  		}
  1127  		res, err = r.client.Do(req)
  1128  		if err != nil {
  1129  			return nil, err
  1130  		}
  1131  	}
  1132  }
  1133  
  1134  // GetN performs GET request for DirectoryObject collection, max N pages
  1135  func (r *UserCreatedObjectsCollectionRequest) GetN(ctx context.Context, n int) ([]DirectoryObject, error) {
  1136  	var query string
  1137  	if r.query != nil {
  1138  		query = "?" + r.query.Encode()
  1139  	}
  1140  	return r.Paging(ctx, "GET", query, nil, n)
  1141  }
  1142  
  1143  // Get performs GET request for DirectoryObject collection
  1144  func (r *UserCreatedObjectsCollectionRequest) Get(ctx context.Context) ([]DirectoryObject, error) {
  1145  	return r.GetN(ctx, 0)
  1146  }
  1147  
  1148  // Add performs POST request for DirectoryObject collection
  1149  func (r *UserCreatedObjectsCollectionRequest) Add(ctx context.Context, reqObj *DirectoryObject) (resObj *DirectoryObject, err error) {
  1150  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  1151  	return
  1152  }
  1153  
  1154  // DeviceEnrollmentConfigurations returns request builder for DeviceEnrollmentConfiguration collection
  1155  func (b *UserRequestBuilder) DeviceEnrollmentConfigurations() *UserDeviceEnrollmentConfigurationsCollectionRequestBuilder {
  1156  	bb := &UserDeviceEnrollmentConfigurationsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1157  	bb.baseURL += "/deviceEnrollmentConfigurations"
  1158  	return bb
  1159  }
  1160  
  1161  // UserDeviceEnrollmentConfigurationsCollectionRequestBuilder is request builder for DeviceEnrollmentConfiguration collection
  1162  type UserDeviceEnrollmentConfigurationsCollectionRequestBuilder struct{ BaseRequestBuilder }
  1163  
  1164  // Request returns request for DeviceEnrollmentConfiguration collection
  1165  func (b *UserDeviceEnrollmentConfigurationsCollectionRequestBuilder) Request() *UserDeviceEnrollmentConfigurationsCollectionRequest {
  1166  	return &UserDeviceEnrollmentConfigurationsCollectionRequest{
  1167  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  1168  	}
  1169  }
  1170  
  1171  // ID returns request builder for DeviceEnrollmentConfiguration item
  1172  func (b *UserDeviceEnrollmentConfigurationsCollectionRequestBuilder) ID(id string) *DeviceEnrollmentConfigurationRequestBuilder {
  1173  	bb := &DeviceEnrollmentConfigurationRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1174  	bb.baseURL += "/" + id
  1175  	return bb
  1176  }
  1177  
  1178  // UserDeviceEnrollmentConfigurationsCollectionRequest is request for DeviceEnrollmentConfiguration collection
  1179  type UserDeviceEnrollmentConfigurationsCollectionRequest struct{ BaseRequest }
  1180  
  1181  // Paging perfoms paging operation for DeviceEnrollmentConfiguration collection
  1182  func (r *UserDeviceEnrollmentConfigurationsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]DeviceEnrollmentConfiguration, error) {
  1183  	req, err := r.NewJSONRequest(method, path, obj)
  1184  	if err != nil {
  1185  		return nil, err
  1186  	}
  1187  	if ctx != nil {
  1188  		req = req.WithContext(ctx)
  1189  	}
  1190  	res, err := r.client.Do(req)
  1191  	if err != nil {
  1192  		return nil, err
  1193  	}
  1194  	var values []DeviceEnrollmentConfiguration
  1195  	for {
  1196  		if res.StatusCode != http.StatusOK {
  1197  			b, _ := ioutil.ReadAll(res.Body)
  1198  			res.Body.Close()
  1199  			errRes := &ErrorResponse{Response: res}
  1200  			err := jsonx.Unmarshal(b, errRes)
  1201  			if err != nil {
  1202  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  1203  			}
  1204  			return nil, errRes
  1205  		}
  1206  		var (
  1207  			paging Paging
  1208  			value  []DeviceEnrollmentConfiguration
  1209  		)
  1210  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  1211  		res.Body.Close()
  1212  		if err != nil {
  1213  			return nil, err
  1214  		}
  1215  		err = jsonx.Unmarshal(paging.Value, &value)
  1216  		if err != nil {
  1217  			return nil, err
  1218  		}
  1219  		values = append(values, value...)
  1220  		if n >= 0 {
  1221  			n--
  1222  		}
  1223  		if n == 0 || len(paging.NextLink) == 0 {
  1224  			return values, nil
  1225  		}
  1226  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  1227  		if ctx != nil {
  1228  			req = req.WithContext(ctx)
  1229  		}
  1230  		res, err = r.client.Do(req)
  1231  		if err != nil {
  1232  			return nil, err
  1233  		}
  1234  	}
  1235  }
  1236  
  1237  // GetN performs GET request for DeviceEnrollmentConfiguration collection, max N pages
  1238  func (r *UserDeviceEnrollmentConfigurationsCollectionRequest) GetN(ctx context.Context, n int) ([]DeviceEnrollmentConfiguration, error) {
  1239  	var query string
  1240  	if r.query != nil {
  1241  		query = "?" + r.query.Encode()
  1242  	}
  1243  	return r.Paging(ctx, "GET", query, nil, n)
  1244  }
  1245  
  1246  // Get performs GET request for DeviceEnrollmentConfiguration collection
  1247  func (r *UserDeviceEnrollmentConfigurationsCollectionRequest) Get(ctx context.Context) ([]DeviceEnrollmentConfiguration, error) {
  1248  	return r.GetN(ctx, 0)
  1249  }
  1250  
  1251  // Add performs POST request for DeviceEnrollmentConfiguration collection
  1252  func (r *UserDeviceEnrollmentConfigurationsCollectionRequest) Add(ctx context.Context, reqObj *DeviceEnrollmentConfiguration) (resObj *DeviceEnrollmentConfiguration, err error) {
  1253  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  1254  	return
  1255  }
  1256  
  1257  // DeviceManagementTroubleshootingEvents returns request builder for DeviceManagementTroubleshootingEvent collection
  1258  func (b *UserRequestBuilder) DeviceManagementTroubleshootingEvents() *UserDeviceManagementTroubleshootingEventsCollectionRequestBuilder {
  1259  	bb := &UserDeviceManagementTroubleshootingEventsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1260  	bb.baseURL += "/deviceManagementTroubleshootingEvents"
  1261  	return bb
  1262  }
  1263  
  1264  // UserDeviceManagementTroubleshootingEventsCollectionRequestBuilder is request builder for DeviceManagementTroubleshootingEvent collection
  1265  type UserDeviceManagementTroubleshootingEventsCollectionRequestBuilder struct{ BaseRequestBuilder }
  1266  
  1267  // Request returns request for DeviceManagementTroubleshootingEvent collection
  1268  func (b *UserDeviceManagementTroubleshootingEventsCollectionRequestBuilder) Request() *UserDeviceManagementTroubleshootingEventsCollectionRequest {
  1269  	return &UserDeviceManagementTroubleshootingEventsCollectionRequest{
  1270  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  1271  	}
  1272  }
  1273  
  1274  // ID returns request builder for DeviceManagementTroubleshootingEvent item
  1275  func (b *UserDeviceManagementTroubleshootingEventsCollectionRequestBuilder) ID(id string) *DeviceManagementTroubleshootingEventRequestBuilder {
  1276  	bb := &DeviceManagementTroubleshootingEventRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1277  	bb.baseURL += "/" + id
  1278  	return bb
  1279  }
  1280  
  1281  // UserDeviceManagementTroubleshootingEventsCollectionRequest is request for DeviceManagementTroubleshootingEvent collection
  1282  type UserDeviceManagementTroubleshootingEventsCollectionRequest struct{ BaseRequest }
  1283  
  1284  // Paging perfoms paging operation for DeviceManagementTroubleshootingEvent collection
  1285  func (r *UserDeviceManagementTroubleshootingEventsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]DeviceManagementTroubleshootingEvent, error) {
  1286  	req, err := r.NewJSONRequest(method, path, obj)
  1287  	if err != nil {
  1288  		return nil, err
  1289  	}
  1290  	if ctx != nil {
  1291  		req = req.WithContext(ctx)
  1292  	}
  1293  	res, err := r.client.Do(req)
  1294  	if err != nil {
  1295  		return nil, err
  1296  	}
  1297  	var values []DeviceManagementTroubleshootingEvent
  1298  	for {
  1299  		if res.StatusCode != http.StatusOK {
  1300  			b, _ := ioutil.ReadAll(res.Body)
  1301  			res.Body.Close()
  1302  			errRes := &ErrorResponse{Response: res}
  1303  			err := jsonx.Unmarshal(b, errRes)
  1304  			if err != nil {
  1305  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  1306  			}
  1307  			return nil, errRes
  1308  		}
  1309  		var (
  1310  			paging Paging
  1311  			value  []DeviceManagementTroubleshootingEvent
  1312  		)
  1313  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  1314  		res.Body.Close()
  1315  		if err != nil {
  1316  			return nil, err
  1317  		}
  1318  		err = jsonx.Unmarshal(paging.Value, &value)
  1319  		if err != nil {
  1320  			return nil, err
  1321  		}
  1322  		values = append(values, value...)
  1323  		if n >= 0 {
  1324  			n--
  1325  		}
  1326  		if n == 0 || len(paging.NextLink) == 0 {
  1327  			return values, nil
  1328  		}
  1329  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  1330  		if ctx != nil {
  1331  			req = req.WithContext(ctx)
  1332  		}
  1333  		res, err = r.client.Do(req)
  1334  		if err != nil {
  1335  			return nil, err
  1336  		}
  1337  	}
  1338  }
  1339  
  1340  // GetN performs GET request for DeviceManagementTroubleshootingEvent collection, max N pages
  1341  func (r *UserDeviceManagementTroubleshootingEventsCollectionRequest) GetN(ctx context.Context, n int) ([]DeviceManagementTroubleshootingEvent, error) {
  1342  	var query string
  1343  	if r.query != nil {
  1344  		query = "?" + r.query.Encode()
  1345  	}
  1346  	return r.Paging(ctx, "GET", query, nil, n)
  1347  }
  1348  
  1349  // Get performs GET request for DeviceManagementTroubleshootingEvent collection
  1350  func (r *UserDeviceManagementTroubleshootingEventsCollectionRequest) Get(ctx context.Context) ([]DeviceManagementTroubleshootingEvent, error) {
  1351  	return r.GetN(ctx, 0)
  1352  }
  1353  
  1354  // Add performs POST request for DeviceManagementTroubleshootingEvent collection
  1355  func (r *UserDeviceManagementTroubleshootingEventsCollectionRequest) Add(ctx context.Context, reqObj *DeviceManagementTroubleshootingEvent) (resObj *DeviceManagementTroubleshootingEvent, err error) {
  1356  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  1357  	return
  1358  }
  1359  
  1360  // Devices returns request builder for Device collection
  1361  func (b *UserRequestBuilder) Devices() *UserDevicesCollectionRequestBuilder {
  1362  	bb := &UserDevicesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1363  	bb.baseURL += "/devices"
  1364  	return bb
  1365  }
  1366  
  1367  // UserDevicesCollectionRequestBuilder is request builder for Device collection
  1368  type UserDevicesCollectionRequestBuilder struct{ BaseRequestBuilder }
  1369  
  1370  // Request returns request for Device collection
  1371  func (b *UserDevicesCollectionRequestBuilder) Request() *UserDevicesCollectionRequest {
  1372  	return &UserDevicesCollectionRequest{
  1373  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  1374  	}
  1375  }
  1376  
  1377  // ID returns request builder for Device item
  1378  func (b *UserDevicesCollectionRequestBuilder) ID(id string) *DeviceRequestBuilder {
  1379  	bb := &DeviceRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1380  	bb.baseURL += "/" + id
  1381  	return bb
  1382  }
  1383  
  1384  // UserDevicesCollectionRequest is request for Device collection
  1385  type UserDevicesCollectionRequest struct{ BaseRequest }
  1386  
  1387  // Paging perfoms paging operation for Device collection
  1388  func (r *UserDevicesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]Device, 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 []Device
  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  []Device
  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 Device collection, max N pages
  1444  func (r *UserDevicesCollectionRequest) GetN(ctx context.Context, n int) ([]Device, 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 Device collection
  1453  func (r *UserDevicesCollectionRequest) Get(ctx context.Context) ([]Device, error) {
  1454  	return r.GetN(ctx, 0)
  1455  }
  1456  
  1457  // Add performs POST request for Device collection
  1458  func (r *UserDevicesCollectionRequest) Add(ctx context.Context, reqObj *Device) (resObj *Device, err error) {
  1459  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  1460  	return
  1461  }
  1462  
  1463  // DirectReports returns request builder for DirectoryObject collection
  1464  func (b *UserRequestBuilder) DirectReports() *UserDirectReportsCollectionRequestBuilder {
  1465  	bb := &UserDirectReportsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1466  	bb.baseURL += "/directReports"
  1467  	return bb
  1468  }
  1469  
  1470  // UserDirectReportsCollectionRequestBuilder is request builder for DirectoryObject collection
  1471  type UserDirectReportsCollectionRequestBuilder struct{ BaseRequestBuilder }
  1472  
  1473  // Request returns request for DirectoryObject collection
  1474  func (b *UserDirectReportsCollectionRequestBuilder) Request() *UserDirectReportsCollectionRequest {
  1475  	return &UserDirectReportsCollectionRequest{
  1476  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  1477  	}
  1478  }
  1479  
  1480  // ID returns request builder for DirectoryObject item
  1481  func (b *UserDirectReportsCollectionRequestBuilder) ID(id string) *DirectoryObjectRequestBuilder {
  1482  	bb := &DirectoryObjectRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1483  	bb.baseURL += "/" + id
  1484  	return bb
  1485  }
  1486  
  1487  // UserDirectReportsCollectionRequest is request for DirectoryObject collection
  1488  type UserDirectReportsCollectionRequest struct{ BaseRequest }
  1489  
  1490  // Paging perfoms paging operation for DirectoryObject collection
  1491  func (r *UserDirectReportsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]DirectoryObject, 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 []DirectoryObject
  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  []DirectoryObject
  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 DirectoryObject collection, max N pages
  1547  func (r *UserDirectReportsCollectionRequest) GetN(ctx context.Context, n int) ([]DirectoryObject, 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 DirectoryObject collection
  1556  func (r *UserDirectReportsCollectionRequest) Get(ctx context.Context) ([]DirectoryObject, error) {
  1557  	return r.GetN(ctx, 0)
  1558  }
  1559  
  1560  // Add performs POST request for DirectoryObject collection
  1561  func (r *UserDirectReportsCollectionRequest) Add(ctx context.Context, reqObj *DirectoryObject) (resObj *DirectoryObject, err error) {
  1562  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  1563  	return
  1564  }
  1565  
  1566  // Drive is navigation property
  1567  func (b *UserRequestBuilder) Drive() *DriveRequestBuilder {
  1568  	bb := &DriveRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1569  	bb.baseURL += "/drive"
  1570  	return bb
  1571  }
  1572  
  1573  // Drives returns request builder for Drive collection
  1574  func (b *UserRequestBuilder) Drives() *UserDrivesCollectionRequestBuilder {
  1575  	bb := &UserDrivesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1576  	bb.baseURL += "/drives"
  1577  	return bb
  1578  }
  1579  
  1580  // UserDrivesCollectionRequestBuilder is request builder for Drive collection
  1581  type UserDrivesCollectionRequestBuilder struct{ BaseRequestBuilder }
  1582  
  1583  // Request returns request for Drive collection
  1584  func (b *UserDrivesCollectionRequestBuilder) Request() *UserDrivesCollectionRequest {
  1585  	return &UserDrivesCollectionRequest{
  1586  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  1587  	}
  1588  }
  1589  
  1590  // ID returns request builder for Drive item
  1591  func (b *UserDrivesCollectionRequestBuilder) ID(id string) *DriveRequestBuilder {
  1592  	bb := &DriveRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1593  	bb.baseURL += "/" + id
  1594  	return bb
  1595  }
  1596  
  1597  // UserDrivesCollectionRequest is request for Drive collection
  1598  type UserDrivesCollectionRequest struct{ BaseRequest }
  1599  
  1600  // Paging perfoms paging operation for Drive collection
  1601  func (r *UserDrivesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]Drive, error) {
  1602  	req, err := r.NewJSONRequest(method, path, obj)
  1603  	if err != nil {
  1604  		return nil, err
  1605  	}
  1606  	if ctx != nil {
  1607  		req = req.WithContext(ctx)
  1608  	}
  1609  	res, err := r.client.Do(req)
  1610  	if err != nil {
  1611  		return nil, err
  1612  	}
  1613  	var values []Drive
  1614  	for {
  1615  		if res.StatusCode != http.StatusOK {
  1616  			b, _ := ioutil.ReadAll(res.Body)
  1617  			res.Body.Close()
  1618  			errRes := &ErrorResponse{Response: res}
  1619  			err := jsonx.Unmarshal(b, errRes)
  1620  			if err != nil {
  1621  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  1622  			}
  1623  			return nil, errRes
  1624  		}
  1625  		var (
  1626  			paging Paging
  1627  			value  []Drive
  1628  		)
  1629  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  1630  		res.Body.Close()
  1631  		if err != nil {
  1632  			return nil, err
  1633  		}
  1634  		err = jsonx.Unmarshal(paging.Value, &value)
  1635  		if err != nil {
  1636  			return nil, err
  1637  		}
  1638  		values = append(values, value...)
  1639  		if n >= 0 {
  1640  			n--
  1641  		}
  1642  		if n == 0 || len(paging.NextLink) == 0 {
  1643  			return values, nil
  1644  		}
  1645  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  1646  		if ctx != nil {
  1647  			req = req.WithContext(ctx)
  1648  		}
  1649  		res, err = r.client.Do(req)
  1650  		if err != nil {
  1651  			return nil, err
  1652  		}
  1653  	}
  1654  }
  1655  
  1656  // GetN performs GET request for Drive collection, max N pages
  1657  func (r *UserDrivesCollectionRequest) GetN(ctx context.Context, n int) ([]Drive, error) {
  1658  	var query string
  1659  	if r.query != nil {
  1660  		query = "?" + r.query.Encode()
  1661  	}
  1662  	return r.Paging(ctx, "GET", query, nil, n)
  1663  }
  1664  
  1665  // Get performs GET request for Drive collection
  1666  func (r *UserDrivesCollectionRequest) Get(ctx context.Context) ([]Drive, error) {
  1667  	return r.GetN(ctx, 0)
  1668  }
  1669  
  1670  // Add performs POST request for Drive collection
  1671  func (r *UserDrivesCollectionRequest) Add(ctx context.Context, reqObj *Drive) (resObj *Drive, err error) {
  1672  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  1673  	return
  1674  }
  1675  
  1676  // Events returns request builder for Event collection
  1677  func (b *UserRequestBuilder) Events() *UserEventsCollectionRequestBuilder {
  1678  	bb := &UserEventsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1679  	bb.baseURL += "/events"
  1680  	return bb
  1681  }
  1682  
  1683  // UserEventsCollectionRequestBuilder is request builder for Event collection
  1684  type UserEventsCollectionRequestBuilder struct{ BaseRequestBuilder }
  1685  
  1686  // Request returns request for Event collection
  1687  func (b *UserEventsCollectionRequestBuilder) Request() *UserEventsCollectionRequest {
  1688  	return &UserEventsCollectionRequest{
  1689  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  1690  	}
  1691  }
  1692  
  1693  // ID returns request builder for Event item
  1694  func (b *UserEventsCollectionRequestBuilder) ID(id string) *EventRequestBuilder {
  1695  	bb := &EventRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1696  	bb.baseURL += "/" + id
  1697  	return bb
  1698  }
  1699  
  1700  // UserEventsCollectionRequest is request for Event collection
  1701  type UserEventsCollectionRequest struct{ BaseRequest }
  1702  
  1703  // Paging perfoms paging operation for Event collection
  1704  func (r *UserEventsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]Event, error) {
  1705  	req, err := r.NewJSONRequest(method, path, obj)
  1706  	if err != nil {
  1707  		return nil, err
  1708  	}
  1709  	if ctx != nil {
  1710  		req = req.WithContext(ctx)
  1711  	}
  1712  	res, err := r.client.Do(req)
  1713  	if err != nil {
  1714  		return nil, err
  1715  	}
  1716  	var values []Event
  1717  	for {
  1718  		if res.StatusCode != http.StatusOK {
  1719  			b, _ := ioutil.ReadAll(res.Body)
  1720  			res.Body.Close()
  1721  			errRes := &ErrorResponse{Response: res}
  1722  			err := jsonx.Unmarshal(b, errRes)
  1723  			if err != nil {
  1724  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  1725  			}
  1726  			return nil, errRes
  1727  		}
  1728  		var (
  1729  			paging Paging
  1730  			value  []Event
  1731  		)
  1732  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  1733  		res.Body.Close()
  1734  		if err != nil {
  1735  			return nil, err
  1736  		}
  1737  		err = jsonx.Unmarshal(paging.Value, &value)
  1738  		if err != nil {
  1739  			return nil, err
  1740  		}
  1741  		values = append(values, value...)
  1742  		if n >= 0 {
  1743  			n--
  1744  		}
  1745  		if n == 0 || len(paging.NextLink) == 0 {
  1746  			return values, nil
  1747  		}
  1748  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  1749  		if ctx != nil {
  1750  			req = req.WithContext(ctx)
  1751  		}
  1752  		res, err = r.client.Do(req)
  1753  		if err != nil {
  1754  			return nil, err
  1755  		}
  1756  	}
  1757  }
  1758  
  1759  // GetN performs GET request for Event collection, max N pages
  1760  func (r *UserEventsCollectionRequest) GetN(ctx context.Context, n int) ([]Event, error) {
  1761  	var query string
  1762  	if r.query != nil {
  1763  		query = "?" + r.query.Encode()
  1764  	}
  1765  	return r.Paging(ctx, "GET", query, nil, n)
  1766  }
  1767  
  1768  // Get performs GET request for Event collection
  1769  func (r *UserEventsCollectionRequest) Get(ctx context.Context) ([]Event, error) {
  1770  	return r.GetN(ctx, 0)
  1771  }
  1772  
  1773  // Add performs POST request for Event collection
  1774  func (r *UserEventsCollectionRequest) Add(ctx context.Context, reqObj *Event) (resObj *Event, err error) {
  1775  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  1776  	return
  1777  }
  1778  
  1779  // Extensions returns request builder for Extension collection
  1780  func (b *UserRequestBuilder) Extensions() *UserExtensionsCollectionRequestBuilder {
  1781  	bb := &UserExtensionsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1782  	bb.baseURL += "/extensions"
  1783  	return bb
  1784  }
  1785  
  1786  // UserExtensionsCollectionRequestBuilder is request builder for Extension collection
  1787  type UserExtensionsCollectionRequestBuilder struct{ BaseRequestBuilder }
  1788  
  1789  // Request returns request for Extension collection
  1790  func (b *UserExtensionsCollectionRequestBuilder) Request() *UserExtensionsCollectionRequest {
  1791  	return &UserExtensionsCollectionRequest{
  1792  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  1793  	}
  1794  }
  1795  
  1796  // ID returns request builder for Extension item
  1797  func (b *UserExtensionsCollectionRequestBuilder) ID(id string) *ExtensionRequestBuilder {
  1798  	bb := &ExtensionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1799  	bb.baseURL += "/" + id
  1800  	return bb
  1801  }
  1802  
  1803  // UserExtensionsCollectionRequest is request for Extension collection
  1804  type UserExtensionsCollectionRequest struct{ BaseRequest }
  1805  
  1806  // Paging perfoms paging operation for Extension collection
  1807  func (r *UserExtensionsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]Extension, error) {
  1808  	req, err := r.NewJSONRequest(method, path, obj)
  1809  	if err != nil {
  1810  		return nil, err
  1811  	}
  1812  	if ctx != nil {
  1813  		req = req.WithContext(ctx)
  1814  	}
  1815  	res, err := r.client.Do(req)
  1816  	if err != nil {
  1817  		return nil, err
  1818  	}
  1819  	var values []Extension
  1820  	for {
  1821  		if res.StatusCode != http.StatusOK {
  1822  			b, _ := ioutil.ReadAll(res.Body)
  1823  			res.Body.Close()
  1824  			errRes := &ErrorResponse{Response: res}
  1825  			err := jsonx.Unmarshal(b, errRes)
  1826  			if err != nil {
  1827  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  1828  			}
  1829  			return nil, errRes
  1830  		}
  1831  		var (
  1832  			paging Paging
  1833  			value  []Extension
  1834  		)
  1835  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  1836  		res.Body.Close()
  1837  		if err != nil {
  1838  			return nil, err
  1839  		}
  1840  		err = jsonx.Unmarshal(paging.Value, &value)
  1841  		if err != nil {
  1842  			return nil, err
  1843  		}
  1844  		values = append(values, value...)
  1845  		if n >= 0 {
  1846  			n--
  1847  		}
  1848  		if n == 0 || len(paging.NextLink) == 0 {
  1849  			return values, nil
  1850  		}
  1851  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  1852  		if ctx != nil {
  1853  			req = req.WithContext(ctx)
  1854  		}
  1855  		res, err = r.client.Do(req)
  1856  		if err != nil {
  1857  			return nil, err
  1858  		}
  1859  	}
  1860  }
  1861  
  1862  // GetN performs GET request for Extension collection, max N pages
  1863  func (r *UserExtensionsCollectionRequest) GetN(ctx context.Context, n int) ([]Extension, error) {
  1864  	var query string
  1865  	if r.query != nil {
  1866  		query = "?" + r.query.Encode()
  1867  	}
  1868  	return r.Paging(ctx, "GET", query, nil, n)
  1869  }
  1870  
  1871  // Get performs GET request for Extension collection
  1872  func (r *UserExtensionsCollectionRequest) Get(ctx context.Context) ([]Extension, error) {
  1873  	return r.GetN(ctx, 0)
  1874  }
  1875  
  1876  // Add performs POST request for Extension collection
  1877  func (r *UserExtensionsCollectionRequest) Add(ctx context.Context, reqObj *Extension) (resObj *Extension, err error) {
  1878  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  1879  	return
  1880  }
  1881  
  1882  // FollowedSites returns request builder for Site collection
  1883  func (b *UserRequestBuilder) FollowedSites() *UserFollowedSitesCollectionRequestBuilder {
  1884  	bb := &UserFollowedSitesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1885  	bb.baseURL += "/followedSites"
  1886  	return bb
  1887  }
  1888  
  1889  // UserFollowedSitesCollectionRequestBuilder is request builder for Site collection
  1890  type UserFollowedSitesCollectionRequestBuilder struct{ BaseRequestBuilder }
  1891  
  1892  // Request returns request for Site collection
  1893  func (b *UserFollowedSitesCollectionRequestBuilder) Request() *UserFollowedSitesCollectionRequest {
  1894  	return &UserFollowedSitesCollectionRequest{
  1895  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  1896  	}
  1897  }
  1898  
  1899  // ID returns request builder for Site item
  1900  func (b *UserFollowedSitesCollectionRequestBuilder) ID(id string) *SiteRequestBuilder {
  1901  	bb := &SiteRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1902  	bb.baseURL += "/" + id
  1903  	return bb
  1904  }
  1905  
  1906  // UserFollowedSitesCollectionRequest is request for Site collection
  1907  type UserFollowedSitesCollectionRequest struct{ BaseRequest }
  1908  
  1909  // Paging perfoms paging operation for Site collection
  1910  func (r *UserFollowedSitesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]Site, 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 []Site
  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  []Site
  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 Site collection, max N pages
  1966  func (r *UserFollowedSitesCollectionRequest) GetN(ctx context.Context, n int) ([]Site, 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 Site collection
  1975  func (r *UserFollowedSitesCollectionRequest) Get(ctx context.Context) ([]Site, error) {
  1976  	return r.GetN(ctx, 0)
  1977  }
  1978  
  1979  // Add performs POST request for Site collection
  1980  func (r *UserFollowedSitesCollectionRequest) Add(ctx context.Context, reqObj *Site) (resObj *Site, err error) {
  1981  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  1982  	return
  1983  }
  1984  
  1985  // InferenceClassification is navigation property
  1986  func (b *UserRequestBuilder) InferenceClassification() *InferenceClassificationRequestBuilder {
  1987  	bb := &InferenceClassificationRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1988  	bb.baseURL += "/inferenceClassification"
  1989  	return bb
  1990  }
  1991  
  1992  // InformationProtection is navigation property
  1993  func (b *UserRequestBuilder) InformationProtection() *InformationProtectionRequestBuilder {
  1994  	bb := &InformationProtectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1995  	bb.baseURL += "/informationProtection"
  1996  	return bb
  1997  }
  1998  
  1999  // Insights is navigation property
  2000  func (b *UserRequestBuilder) Insights() *OfficeGraphInsightsRequestBuilder {
  2001  	bb := &OfficeGraphInsightsRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2002  	bb.baseURL += "/insights"
  2003  	return bb
  2004  }
  2005  
  2006  // JoinedGroups returns request builder for Group collection
  2007  func (b *UserRequestBuilder) JoinedGroups() *UserJoinedGroupsCollectionRequestBuilder {
  2008  	bb := &UserJoinedGroupsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2009  	bb.baseURL += "/joinedGroups"
  2010  	return bb
  2011  }
  2012  
  2013  // UserJoinedGroupsCollectionRequestBuilder is request builder for Group collection
  2014  type UserJoinedGroupsCollectionRequestBuilder struct{ BaseRequestBuilder }
  2015  
  2016  // Request returns request for Group collection
  2017  func (b *UserJoinedGroupsCollectionRequestBuilder) Request() *UserJoinedGroupsCollectionRequest {
  2018  	return &UserJoinedGroupsCollectionRequest{
  2019  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  2020  	}
  2021  }
  2022  
  2023  // ID returns request builder for Group item
  2024  func (b *UserJoinedGroupsCollectionRequestBuilder) ID(id string) *GroupRequestBuilder {
  2025  	bb := &GroupRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2026  	bb.baseURL += "/" + id
  2027  	return bb
  2028  }
  2029  
  2030  // UserJoinedGroupsCollectionRequest is request for Group collection
  2031  type UserJoinedGroupsCollectionRequest struct{ BaseRequest }
  2032  
  2033  // Paging perfoms paging operation for Group collection
  2034  func (r *UserJoinedGroupsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]Group, error) {
  2035  	req, err := r.NewJSONRequest(method, path, obj)
  2036  	if err != nil {
  2037  		return nil, err
  2038  	}
  2039  	if ctx != nil {
  2040  		req = req.WithContext(ctx)
  2041  	}
  2042  	res, err := r.client.Do(req)
  2043  	if err != nil {
  2044  		return nil, err
  2045  	}
  2046  	var values []Group
  2047  	for {
  2048  		if res.StatusCode != http.StatusOK {
  2049  			b, _ := ioutil.ReadAll(res.Body)
  2050  			res.Body.Close()
  2051  			errRes := &ErrorResponse{Response: res}
  2052  			err := jsonx.Unmarshal(b, errRes)
  2053  			if err != nil {
  2054  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  2055  			}
  2056  			return nil, errRes
  2057  		}
  2058  		var (
  2059  			paging Paging
  2060  			value  []Group
  2061  		)
  2062  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  2063  		res.Body.Close()
  2064  		if err != nil {
  2065  			return nil, err
  2066  		}
  2067  		err = jsonx.Unmarshal(paging.Value, &value)
  2068  		if err != nil {
  2069  			return nil, err
  2070  		}
  2071  		values = append(values, value...)
  2072  		if n >= 0 {
  2073  			n--
  2074  		}
  2075  		if n == 0 || len(paging.NextLink) == 0 {
  2076  			return values, nil
  2077  		}
  2078  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  2079  		if ctx != nil {
  2080  			req = req.WithContext(ctx)
  2081  		}
  2082  		res, err = r.client.Do(req)
  2083  		if err != nil {
  2084  			return nil, err
  2085  		}
  2086  	}
  2087  }
  2088  
  2089  // GetN performs GET request for Group collection, max N pages
  2090  func (r *UserJoinedGroupsCollectionRequest) GetN(ctx context.Context, n int) ([]Group, error) {
  2091  	var query string
  2092  	if r.query != nil {
  2093  		query = "?" + r.query.Encode()
  2094  	}
  2095  	return r.Paging(ctx, "GET", query, nil, n)
  2096  }
  2097  
  2098  // Get performs GET request for Group collection
  2099  func (r *UserJoinedGroupsCollectionRequest) Get(ctx context.Context) ([]Group, error) {
  2100  	return r.GetN(ctx, 0)
  2101  }
  2102  
  2103  // Add performs POST request for Group collection
  2104  func (r *UserJoinedGroupsCollectionRequest) Add(ctx context.Context, reqObj *Group) (resObj *Group, err error) {
  2105  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  2106  	return
  2107  }
  2108  
  2109  // JoinedTeams returns request builder for Team collection
  2110  func (b *UserRequestBuilder) JoinedTeams() *UserJoinedTeamsCollectionRequestBuilder {
  2111  	bb := &UserJoinedTeamsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2112  	bb.baseURL += "/joinedTeams"
  2113  	return bb
  2114  }
  2115  
  2116  // UserJoinedTeamsCollectionRequestBuilder is request builder for Team collection
  2117  type UserJoinedTeamsCollectionRequestBuilder struct{ BaseRequestBuilder }
  2118  
  2119  // Request returns request for Team collection
  2120  func (b *UserJoinedTeamsCollectionRequestBuilder) Request() *UserJoinedTeamsCollectionRequest {
  2121  	return &UserJoinedTeamsCollectionRequest{
  2122  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  2123  	}
  2124  }
  2125  
  2126  // ID returns request builder for Team item
  2127  func (b *UserJoinedTeamsCollectionRequestBuilder) ID(id string) *TeamRequestBuilder {
  2128  	bb := &TeamRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2129  	bb.baseURL += "/" + id
  2130  	return bb
  2131  }
  2132  
  2133  // UserJoinedTeamsCollectionRequest is request for Team collection
  2134  type UserJoinedTeamsCollectionRequest struct{ BaseRequest }
  2135  
  2136  // Paging perfoms paging operation for Team collection
  2137  func (r *UserJoinedTeamsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]Team, error) {
  2138  	req, err := r.NewJSONRequest(method, path, obj)
  2139  	if err != nil {
  2140  		return nil, err
  2141  	}
  2142  	if ctx != nil {
  2143  		req = req.WithContext(ctx)
  2144  	}
  2145  	res, err := r.client.Do(req)
  2146  	if err != nil {
  2147  		return nil, err
  2148  	}
  2149  	var values []Team
  2150  	for {
  2151  		if res.StatusCode != http.StatusOK {
  2152  			b, _ := ioutil.ReadAll(res.Body)
  2153  			res.Body.Close()
  2154  			errRes := &ErrorResponse{Response: res}
  2155  			err := jsonx.Unmarshal(b, errRes)
  2156  			if err != nil {
  2157  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  2158  			}
  2159  			return nil, errRes
  2160  		}
  2161  		var (
  2162  			paging Paging
  2163  			value  []Team
  2164  		)
  2165  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  2166  		res.Body.Close()
  2167  		if err != nil {
  2168  			return nil, err
  2169  		}
  2170  		err = jsonx.Unmarshal(paging.Value, &value)
  2171  		if err != nil {
  2172  			return nil, err
  2173  		}
  2174  		values = append(values, value...)
  2175  		if n >= 0 {
  2176  			n--
  2177  		}
  2178  		if n == 0 || len(paging.NextLink) == 0 {
  2179  			return values, nil
  2180  		}
  2181  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  2182  		if ctx != nil {
  2183  			req = req.WithContext(ctx)
  2184  		}
  2185  		res, err = r.client.Do(req)
  2186  		if err != nil {
  2187  			return nil, err
  2188  		}
  2189  	}
  2190  }
  2191  
  2192  // GetN performs GET request for Team collection, max N pages
  2193  func (r *UserJoinedTeamsCollectionRequest) GetN(ctx context.Context, n int) ([]Team, error) {
  2194  	var query string
  2195  	if r.query != nil {
  2196  		query = "?" + r.query.Encode()
  2197  	}
  2198  	return r.Paging(ctx, "GET", query, nil, n)
  2199  }
  2200  
  2201  // Get performs GET request for Team collection
  2202  func (r *UserJoinedTeamsCollectionRequest) Get(ctx context.Context) ([]Team, error) {
  2203  	return r.GetN(ctx, 0)
  2204  }
  2205  
  2206  // Add performs POST request for Team collection
  2207  func (r *UserJoinedTeamsCollectionRequest) Add(ctx context.Context, reqObj *Team) (resObj *Team, err error) {
  2208  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  2209  	return
  2210  }
  2211  
  2212  // LicenseDetails returns request builder for LicenseDetails collection
  2213  func (b *UserRequestBuilder) LicenseDetails() *UserLicenseDetailsCollectionRequestBuilder {
  2214  	bb := &UserLicenseDetailsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2215  	bb.baseURL += "/licenseDetails"
  2216  	return bb
  2217  }
  2218  
  2219  // UserLicenseDetailsCollectionRequestBuilder is request builder for LicenseDetails collection
  2220  type UserLicenseDetailsCollectionRequestBuilder struct{ BaseRequestBuilder }
  2221  
  2222  // Request returns request for LicenseDetails collection
  2223  func (b *UserLicenseDetailsCollectionRequestBuilder) Request() *UserLicenseDetailsCollectionRequest {
  2224  	return &UserLicenseDetailsCollectionRequest{
  2225  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  2226  	}
  2227  }
  2228  
  2229  // ID returns request builder for LicenseDetails item
  2230  func (b *UserLicenseDetailsCollectionRequestBuilder) ID(id string) *LicenseDetailsRequestBuilder {
  2231  	bb := &LicenseDetailsRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2232  	bb.baseURL += "/" + id
  2233  	return bb
  2234  }
  2235  
  2236  // UserLicenseDetailsCollectionRequest is request for LicenseDetails collection
  2237  type UserLicenseDetailsCollectionRequest struct{ BaseRequest }
  2238  
  2239  // Paging perfoms paging operation for LicenseDetails collection
  2240  func (r *UserLicenseDetailsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]LicenseDetails, error) {
  2241  	req, err := r.NewJSONRequest(method, path, obj)
  2242  	if err != nil {
  2243  		return nil, err
  2244  	}
  2245  	if ctx != nil {
  2246  		req = req.WithContext(ctx)
  2247  	}
  2248  	res, err := r.client.Do(req)
  2249  	if err != nil {
  2250  		return nil, err
  2251  	}
  2252  	var values []LicenseDetails
  2253  	for {
  2254  		if res.StatusCode != http.StatusOK {
  2255  			b, _ := ioutil.ReadAll(res.Body)
  2256  			res.Body.Close()
  2257  			errRes := &ErrorResponse{Response: res}
  2258  			err := jsonx.Unmarshal(b, errRes)
  2259  			if err != nil {
  2260  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  2261  			}
  2262  			return nil, errRes
  2263  		}
  2264  		var (
  2265  			paging Paging
  2266  			value  []LicenseDetails
  2267  		)
  2268  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  2269  		res.Body.Close()
  2270  		if err != nil {
  2271  			return nil, err
  2272  		}
  2273  		err = jsonx.Unmarshal(paging.Value, &value)
  2274  		if err != nil {
  2275  			return nil, err
  2276  		}
  2277  		values = append(values, value...)
  2278  		if n >= 0 {
  2279  			n--
  2280  		}
  2281  		if n == 0 || len(paging.NextLink) == 0 {
  2282  			return values, nil
  2283  		}
  2284  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  2285  		if ctx != nil {
  2286  			req = req.WithContext(ctx)
  2287  		}
  2288  		res, err = r.client.Do(req)
  2289  		if err != nil {
  2290  			return nil, err
  2291  		}
  2292  	}
  2293  }
  2294  
  2295  // GetN performs GET request for LicenseDetails collection, max N pages
  2296  func (r *UserLicenseDetailsCollectionRequest) GetN(ctx context.Context, n int) ([]LicenseDetails, error) {
  2297  	var query string
  2298  	if r.query != nil {
  2299  		query = "?" + r.query.Encode()
  2300  	}
  2301  	return r.Paging(ctx, "GET", query, nil, n)
  2302  }
  2303  
  2304  // Get performs GET request for LicenseDetails collection
  2305  func (r *UserLicenseDetailsCollectionRequest) Get(ctx context.Context) ([]LicenseDetails, error) {
  2306  	return r.GetN(ctx, 0)
  2307  }
  2308  
  2309  // Add performs POST request for LicenseDetails collection
  2310  func (r *UserLicenseDetailsCollectionRequest) Add(ctx context.Context, reqObj *LicenseDetails) (resObj *LicenseDetails, err error) {
  2311  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  2312  	return
  2313  }
  2314  
  2315  // MailFolders returns request builder for MailFolder collection
  2316  func (b *UserRequestBuilder) MailFolders() *UserMailFoldersCollectionRequestBuilder {
  2317  	bb := &UserMailFoldersCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2318  	bb.baseURL += "/mailFolders"
  2319  	return bb
  2320  }
  2321  
  2322  // UserMailFoldersCollectionRequestBuilder is request builder for MailFolder collection
  2323  type UserMailFoldersCollectionRequestBuilder struct{ BaseRequestBuilder }
  2324  
  2325  // Request returns request for MailFolder collection
  2326  func (b *UserMailFoldersCollectionRequestBuilder) Request() *UserMailFoldersCollectionRequest {
  2327  	return &UserMailFoldersCollectionRequest{
  2328  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  2329  	}
  2330  }
  2331  
  2332  // ID returns request builder for MailFolder item
  2333  func (b *UserMailFoldersCollectionRequestBuilder) ID(id string) *MailFolderRequestBuilder {
  2334  	bb := &MailFolderRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2335  	bb.baseURL += "/" + id
  2336  	return bb
  2337  }
  2338  
  2339  // UserMailFoldersCollectionRequest is request for MailFolder collection
  2340  type UserMailFoldersCollectionRequest struct{ BaseRequest }
  2341  
  2342  // Paging perfoms paging operation for MailFolder collection
  2343  func (r *UserMailFoldersCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]MailFolder, error) {
  2344  	req, err := r.NewJSONRequest(method, path, obj)
  2345  	if err != nil {
  2346  		return nil, err
  2347  	}
  2348  	if ctx != nil {
  2349  		req = req.WithContext(ctx)
  2350  	}
  2351  	res, err := r.client.Do(req)
  2352  	if err != nil {
  2353  		return nil, err
  2354  	}
  2355  	var values []MailFolder
  2356  	for {
  2357  		if res.StatusCode != http.StatusOK {
  2358  			b, _ := ioutil.ReadAll(res.Body)
  2359  			res.Body.Close()
  2360  			errRes := &ErrorResponse{Response: res}
  2361  			err := jsonx.Unmarshal(b, errRes)
  2362  			if err != nil {
  2363  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  2364  			}
  2365  			return nil, errRes
  2366  		}
  2367  		var (
  2368  			paging Paging
  2369  			value  []MailFolder
  2370  		)
  2371  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  2372  		res.Body.Close()
  2373  		if err != nil {
  2374  			return nil, err
  2375  		}
  2376  		err = jsonx.Unmarshal(paging.Value, &value)
  2377  		if err != nil {
  2378  			return nil, err
  2379  		}
  2380  		values = append(values, value...)
  2381  		if n >= 0 {
  2382  			n--
  2383  		}
  2384  		if n == 0 || len(paging.NextLink) == 0 {
  2385  			return values, nil
  2386  		}
  2387  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  2388  		if ctx != nil {
  2389  			req = req.WithContext(ctx)
  2390  		}
  2391  		res, err = r.client.Do(req)
  2392  		if err != nil {
  2393  			return nil, err
  2394  		}
  2395  	}
  2396  }
  2397  
  2398  // GetN performs GET request for MailFolder collection, max N pages
  2399  func (r *UserMailFoldersCollectionRequest) GetN(ctx context.Context, n int) ([]MailFolder, error) {
  2400  	var query string
  2401  	if r.query != nil {
  2402  		query = "?" + r.query.Encode()
  2403  	}
  2404  	return r.Paging(ctx, "GET", query, nil, n)
  2405  }
  2406  
  2407  // Get performs GET request for MailFolder collection
  2408  func (r *UserMailFoldersCollectionRequest) Get(ctx context.Context) ([]MailFolder, error) {
  2409  	return r.GetN(ctx, 0)
  2410  }
  2411  
  2412  // Add performs POST request for MailFolder collection
  2413  func (r *UserMailFoldersCollectionRequest) Add(ctx context.Context, reqObj *MailFolder) (resObj *MailFolder, err error) {
  2414  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  2415  	return
  2416  }
  2417  
  2418  // ManagedAppRegistrations returns request builder for ManagedAppRegistration collection
  2419  func (b *UserRequestBuilder) ManagedAppRegistrations() *UserManagedAppRegistrationsCollectionRequestBuilder {
  2420  	bb := &UserManagedAppRegistrationsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2421  	bb.baseURL += "/managedAppRegistrations"
  2422  	return bb
  2423  }
  2424  
  2425  // UserManagedAppRegistrationsCollectionRequestBuilder is request builder for ManagedAppRegistration collection
  2426  type UserManagedAppRegistrationsCollectionRequestBuilder struct{ BaseRequestBuilder }
  2427  
  2428  // Request returns request for ManagedAppRegistration collection
  2429  func (b *UserManagedAppRegistrationsCollectionRequestBuilder) Request() *UserManagedAppRegistrationsCollectionRequest {
  2430  	return &UserManagedAppRegistrationsCollectionRequest{
  2431  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  2432  	}
  2433  }
  2434  
  2435  // ID returns request builder for ManagedAppRegistration item
  2436  func (b *UserManagedAppRegistrationsCollectionRequestBuilder) ID(id string) *ManagedAppRegistrationRequestBuilder {
  2437  	bb := &ManagedAppRegistrationRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2438  	bb.baseURL += "/" + id
  2439  	return bb
  2440  }
  2441  
  2442  // UserManagedAppRegistrationsCollectionRequest is request for ManagedAppRegistration collection
  2443  type UserManagedAppRegistrationsCollectionRequest struct{ BaseRequest }
  2444  
  2445  // Paging perfoms paging operation for ManagedAppRegistration collection
  2446  func (r *UserManagedAppRegistrationsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]ManagedAppRegistration, error) {
  2447  	req, err := r.NewJSONRequest(method, path, obj)
  2448  	if err != nil {
  2449  		return nil, err
  2450  	}
  2451  	if ctx != nil {
  2452  		req = req.WithContext(ctx)
  2453  	}
  2454  	res, err := r.client.Do(req)
  2455  	if err != nil {
  2456  		return nil, err
  2457  	}
  2458  	var values []ManagedAppRegistration
  2459  	for {
  2460  		if res.StatusCode != http.StatusOK {
  2461  			b, _ := ioutil.ReadAll(res.Body)
  2462  			res.Body.Close()
  2463  			errRes := &ErrorResponse{Response: res}
  2464  			err := jsonx.Unmarshal(b, errRes)
  2465  			if err != nil {
  2466  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  2467  			}
  2468  			return nil, errRes
  2469  		}
  2470  		var (
  2471  			paging Paging
  2472  			value  []ManagedAppRegistration
  2473  		)
  2474  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  2475  		res.Body.Close()
  2476  		if err != nil {
  2477  			return nil, err
  2478  		}
  2479  		err = jsonx.Unmarshal(paging.Value, &value)
  2480  		if err != nil {
  2481  			return nil, err
  2482  		}
  2483  		values = append(values, value...)
  2484  		if n >= 0 {
  2485  			n--
  2486  		}
  2487  		if n == 0 || len(paging.NextLink) == 0 {
  2488  			return values, nil
  2489  		}
  2490  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  2491  		if ctx != nil {
  2492  			req = req.WithContext(ctx)
  2493  		}
  2494  		res, err = r.client.Do(req)
  2495  		if err != nil {
  2496  			return nil, err
  2497  		}
  2498  	}
  2499  }
  2500  
  2501  // GetN performs GET request for ManagedAppRegistration collection, max N pages
  2502  func (r *UserManagedAppRegistrationsCollectionRequest) GetN(ctx context.Context, n int) ([]ManagedAppRegistration, error) {
  2503  	var query string
  2504  	if r.query != nil {
  2505  		query = "?" + r.query.Encode()
  2506  	}
  2507  	return r.Paging(ctx, "GET", query, nil, n)
  2508  }
  2509  
  2510  // Get performs GET request for ManagedAppRegistration collection
  2511  func (r *UserManagedAppRegistrationsCollectionRequest) Get(ctx context.Context) ([]ManagedAppRegistration, error) {
  2512  	return r.GetN(ctx, 0)
  2513  }
  2514  
  2515  // Add performs POST request for ManagedAppRegistration collection
  2516  func (r *UserManagedAppRegistrationsCollectionRequest) Add(ctx context.Context, reqObj *ManagedAppRegistration) (resObj *ManagedAppRegistration, err error) {
  2517  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  2518  	return
  2519  }
  2520  
  2521  // ManagedDevices returns request builder for ManagedDevice collection
  2522  func (b *UserRequestBuilder) ManagedDevices() *UserManagedDevicesCollectionRequestBuilder {
  2523  	bb := &UserManagedDevicesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2524  	bb.baseURL += "/managedDevices"
  2525  	return bb
  2526  }
  2527  
  2528  // UserManagedDevicesCollectionRequestBuilder is request builder for ManagedDevice collection
  2529  type UserManagedDevicesCollectionRequestBuilder struct{ BaseRequestBuilder }
  2530  
  2531  // Request returns request for ManagedDevice collection
  2532  func (b *UserManagedDevicesCollectionRequestBuilder) Request() *UserManagedDevicesCollectionRequest {
  2533  	return &UserManagedDevicesCollectionRequest{
  2534  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  2535  	}
  2536  }
  2537  
  2538  // ID returns request builder for ManagedDevice item
  2539  func (b *UserManagedDevicesCollectionRequestBuilder) ID(id string) *ManagedDeviceRequestBuilder {
  2540  	bb := &ManagedDeviceRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2541  	bb.baseURL += "/" + id
  2542  	return bb
  2543  }
  2544  
  2545  // UserManagedDevicesCollectionRequest is request for ManagedDevice collection
  2546  type UserManagedDevicesCollectionRequest struct{ BaseRequest }
  2547  
  2548  // Paging perfoms paging operation for ManagedDevice collection
  2549  func (r *UserManagedDevicesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]ManagedDevice, 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 []ManagedDevice
  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  []ManagedDevice
  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 ManagedDevice collection, max N pages
  2605  func (r *UserManagedDevicesCollectionRequest) GetN(ctx context.Context, n int) ([]ManagedDevice, 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 ManagedDevice collection
  2614  func (r *UserManagedDevicesCollectionRequest) Get(ctx context.Context) ([]ManagedDevice, error) {
  2615  	return r.GetN(ctx, 0)
  2616  }
  2617  
  2618  // Add performs POST request for ManagedDevice collection
  2619  func (r *UserManagedDevicesCollectionRequest) Add(ctx context.Context, reqObj *ManagedDevice) (resObj *ManagedDevice, err error) {
  2620  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  2621  	return
  2622  }
  2623  
  2624  // Manager is navigation property
  2625  func (b *UserRequestBuilder) Manager() *DirectoryObjectRequestBuilder {
  2626  	bb := &DirectoryObjectRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2627  	bb.baseURL += "/manager"
  2628  	return bb
  2629  }
  2630  
  2631  // MemberOf returns request builder for DirectoryObject collection
  2632  func (b *UserRequestBuilder) MemberOf() *UserMemberOfCollectionRequestBuilder {
  2633  	bb := &UserMemberOfCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2634  	bb.baseURL += "/memberOf"
  2635  	return bb
  2636  }
  2637  
  2638  // UserMemberOfCollectionRequestBuilder is request builder for DirectoryObject collection
  2639  type UserMemberOfCollectionRequestBuilder struct{ BaseRequestBuilder }
  2640  
  2641  // Request returns request for DirectoryObject collection
  2642  func (b *UserMemberOfCollectionRequestBuilder) Request() *UserMemberOfCollectionRequest {
  2643  	return &UserMemberOfCollectionRequest{
  2644  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  2645  	}
  2646  }
  2647  
  2648  // ID returns request builder for DirectoryObject item
  2649  func (b *UserMemberOfCollectionRequestBuilder) ID(id string) *DirectoryObjectRequestBuilder {
  2650  	bb := &DirectoryObjectRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2651  	bb.baseURL += "/" + id
  2652  	return bb
  2653  }
  2654  
  2655  // UserMemberOfCollectionRequest is request for DirectoryObject collection
  2656  type UserMemberOfCollectionRequest struct{ BaseRequest }
  2657  
  2658  // Paging perfoms paging operation for DirectoryObject collection
  2659  func (r *UserMemberOfCollectionRequest) 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 *UserMemberOfCollectionRequest) 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 *UserMemberOfCollectionRequest) 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 *UserMemberOfCollectionRequest) Add(ctx context.Context, reqObj *DirectoryObject) (resObj *DirectoryObject, err error) {
  2730  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  2731  	return
  2732  }
  2733  
  2734  // Messages returns request builder for Message collection
  2735  func (b *UserRequestBuilder) Messages() *UserMessagesCollectionRequestBuilder {
  2736  	bb := &UserMessagesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2737  	bb.baseURL += "/messages"
  2738  	return bb
  2739  }
  2740  
  2741  // UserMessagesCollectionRequestBuilder is request builder for Message collection
  2742  type UserMessagesCollectionRequestBuilder struct{ BaseRequestBuilder }
  2743  
  2744  // Request returns request for Message collection
  2745  func (b *UserMessagesCollectionRequestBuilder) Request() *UserMessagesCollectionRequest {
  2746  	return &UserMessagesCollectionRequest{
  2747  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  2748  	}
  2749  }
  2750  
  2751  // ID returns request builder for Message item
  2752  func (b *UserMessagesCollectionRequestBuilder) ID(id string) *MessageRequestBuilder {
  2753  	bb := &MessageRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2754  	bb.baseURL += "/" + id
  2755  	return bb
  2756  }
  2757  
  2758  // UserMessagesCollectionRequest is request for Message collection
  2759  type UserMessagesCollectionRequest struct{ BaseRequest }
  2760  
  2761  // Paging perfoms paging operation for Message collection
  2762  func (r *UserMessagesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]Message, error) {
  2763  	req, err := r.NewJSONRequest(method, path, obj)
  2764  	if err != nil {
  2765  		return nil, err
  2766  	}
  2767  	if ctx != nil {
  2768  		req = req.WithContext(ctx)
  2769  	}
  2770  	res, err := r.client.Do(req)
  2771  	if err != nil {
  2772  		return nil, err
  2773  	}
  2774  	var values []Message
  2775  	for {
  2776  		if res.StatusCode != http.StatusOK {
  2777  			b, _ := ioutil.ReadAll(res.Body)
  2778  			res.Body.Close()
  2779  			errRes := &ErrorResponse{Response: res}
  2780  			err := jsonx.Unmarshal(b, errRes)
  2781  			if err != nil {
  2782  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  2783  			}
  2784  			return nil, errRes
  2785  		}
  2786  		var (
  2787  			paging Paging
  2788  			value  []Message
  2789  		)
  2790  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  2791  		res.Body.Close()
  2792  		if err != nil {
  2793  			return nil, err
  2794  		}
  2795  		err = jsonx.Unmarshal(paging.Value, &value)
  2796  		if err != nil {
  2797  			return nil, err
  2798  		}
  2799  		values = append(values, value...)
  2800  		if n >= 0 {
  2801  			n--
  2802  		}
  2803  		if n == 0 || len(paging.NextLink) == 0 {
  2804  			return values, nil
  2805  		}
  2806  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  2807  		if ctx != nil {
  2808  			req = req.WithContext(ctx)
  2809  		}
  2810  		res, err = r.client.Do(req)
  2811  		if err != nil {
  2812  			return nil, err
  2813  		}
  2814  	}
  2815  }
  2816  
  2817  // GetN performs GET request for Message collection, max N pages
  2818  func (r *UserMessagesCollectionRequest) GetN(ctx context.Context, n int) ([]Message, error) {
  2819  	var query string
  2820  	if r.query != nil {
  2821  		query = "?" + r.query.Encode()
  2822  	}
  2823  	return r.Paging(ctx, "GET", query, nil, n)
  2824  }
  2825  
  2826  // Get performs GET request for Message collection
  2827  func (r *UserMessagesCollectionRequest) Get(ctx context.Context) ([]Message, error) {
  2828  	return r.GetN(ctx, 0)
  2829  }
  2830  
  2831  // Add performs POST request for Message collection
  2832  func (r *UserMessagesCollectionRequest) Add(ctx context.Context, reqObj *Message) (resObj *Message, err error) {
  2833  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  2834  	return
  2835  }
  2836  
  2837  // MobileAppIntentAndStates returns request builder for MobileAppIntentAndState collection
  2838  func (b *UserRequestBuilder) MobileAppIntentAndStates() *UserMobileAppIntentAndStatesCollectionRequestBuilder {
  2839  	bb := &UserMobileAppIntentAndStatesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2840  	bb.baseURL += "/mobileAppIntentAndStates"
  2841  	return bb
  2842  }
  2843  
  2844  // UserMobileAppIntentAndStatesCollectionRequestBuilder is request builder for MobileAppIntentAndState collection
  2845  type UserMobileAppIntentAndStatesCollectionRequestBuilder struct{ BaseRequestBuilder }
  2846  
  2847  // Request returns request for MobileAppIntentAndState collection
  2848  func (b *UserMobileAppIntentAndStatesCollectionRequestBuilder) Request() *UserMobileAppIntentAndStatesCollectionRequest {
  2849  	return &UserMobileAppIntentAndStatesCollectionRequest{
  2850  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  2851  	}
  2852  }
  2853  
  2854  // ID returns request builder for MobileAppIntentAndState item
  2855  func (b *UserMobileAppIntentAndStatesCollectionRequestBuilder) ID(id string) *MobileAppIntentAndStateRequestBuilder {
  2856  	bb := &MobileAppIntentAndStateRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2857  	bb.baseURL += "/" + id
  2858  	return bb
  2859  }
  2860  
  2861  // UserMobileAppIntentAndStatesCollectionRequest is request for MobileAppIntentAndState collection
  2862  type UserMobileAppIntentAndStatesCollectionRequest struct{ BaseRequest }
  2863  
  2864  // Paging perfoms paging operation for MobileAppIntentAndState collection
  2865  func (r *UserMobileAppIntentAndStatesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]MobileAppIntentAndState, error) {
  2866  	req, err := r.NewJSONRequest(method, path, obj)
  2867  	if err != nil {
  2868  		return nil, err
  2869  	}
  2870  	if ctx != nil {
  2871  		req = req.WithContext(ctx)
  2872  	}
  2873  	res, err := r.client.Do(req)
  2874  	if err != nil {
  2875  		return nil, err
  2876  	}
  2877  	var values []MobileAppIntentAndState
  2878  	for {
  2879  		if res.StatusCode != http.StatusOK {
  2880  			b, _ := ioutil.ReadAll(res.Body)
  2881  			res.Body.Close()
  2882  			errRes := &ErrorResponse{Response: res}
  2883  			err := jsonx.Unmarshal(b, errRes)
  2884  			if err != nil {
  2885  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  2886  			}
  2887  			return nil, errRes
  2888  		}
  2889  		var (
  2890  			paging Paging
  2891  			value  []MobileAppIntentAndState
  2892  		)
  2893  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  2894  		res.Body.Close()
  2895  		if err != nil {
  2896  			return nil, err
  2897  		}
  2898  		err = jsonx.Unmarshal(paging.Value, &value)
  2899  		if err != nil {
  2900  			return nil, err
  2901  		}
  2902  		values = append(values, value...)
  2903  		if n >= 0 {
  2904  			n--
  2905  		}
  2906  		if n == 0 || len(paging.NextLink) == 0 {
  2907  			return values, nil
  2908  		}
  2909  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  2910  		if ctx != nil {
  2911  			req = req.WithContext(ctx)
  2912  		}
  2913  		res, err = r.client.Do(req)
  2914  		if err != nil {
  2915  			return nil, err
  2916  		}
  2917  	}
  2918  }
  2919  
  2920  // GetN performs GET request for MobileAppIntentAndState collection, max N pages
  2921  func (r *UserMobileAppIntentAndStatesCollectionRequest) GetN(ctx context.Context, n int) ([]MobileAppIntentAndState, error) {
  2922  	var query string
  2923  	if r.query != nil {
  2924  		query = "?" + r.query.Encode()
  2925  	}
  2926  	return r.Paging(ctx, "GET", query, nil, n)
  2927  }
  2928  
  2929  // Get performs GET request for MobileAppIntentAndState collection
  2930  func (r *UserMobileAppIntentAndStatesCollectionRequest) Get(ctx context.Context) ([]MobileAppIntentAndState, error) {
  2931  	return r.GetN(ctx, 0)
  2932  }
  2933  
  2934  // Add performs POST request for MobileAppIntentAndState collection
  2935  func (r *UserMobileAppIntentAndStatesCollectionRequest) Add(ctx context.Context, reqObj *MobileAppIntentAndState) (resObj *MobileAppIntentAndState, err error) {
  2936  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  2937  	return
  2938  }
  2939  
  2940  // MobileAppTroubleshootingEvents returns request builder for MobileAppTroubleshootingEvent collection
  2941  func (b *UserRequestBuilder) MobileAppTroubleshootingEvents() *UserMobileAppTroubleshootingEventsCollectionRequestBuilder {
  2942  	bb := &UserMobileAppTroubleshootingEventsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2943  	bb.baseURL += "/mobileAppTroubleshootingEvents"
  2944  	return bb
  2945  }
  2946  
  2947  // UserMobileAppTroubleshootingEventsCollectionRequestBuilder is request builder for MobileAppTroubleshootingEvent collection
  2948  type UserMobileAppTroubleshootingEventsCollectionRequestBuilder struct{ BaseRequestBuilder }
  2949  
  2950  // Request returns request for MobileAppTroubleshootingEvent collection
  2951  func (b *UserMobileAppTroubleshootingEventsCollectionRequestBuilder) Request() *UserMobileAppTroubleshootingEventsCollectionRequest {
  2952  	return &UserMobileAppTroubleshootingEventsCollectionRequest{
  2953  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  2954  	}
  2955  }
  2956  
  2957  // ID returns request builder for MobileAppTroubleshootingEvent item
  2958  func (b *UserMobileAppTroubleshootingEventsCollectionRequestBuilder) ID(id string) *MobileAppTroubleshootingEventRequestBuilder {
  2959  	bb := &MobileAppTroubleshootingEventRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2960  	bb.baseURL += "/" + id
  2961  	return bb
  2962  }
  2963  
  2964  // UserMobileAppTroubleshootingEventsCollectionRequest is request for MobileAppTroubleshootingEvent collection
  2965  type UserMobileAppTroubleshootingEventsCollectionRequest struct{ BaseRequest }
  2966  
  2967  // Paging perfoms paging operation for MobileAppTroubleshootingEvent collection
  2968  func (r *UserMobileAppTroubleshootingEventsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]MobileAppTroubleshootingEvent, error) {
  2969  	req, err := r.NewJSONRequest(method, path, obj)
  2970  	if err != nil {
  2971  		return nil, err
  2972  	}
  2973  	if ctx != nil {
  2974  		req = req.WithContext(ctx)
  2975  	}
  2976  	res, err := r.client.Do(req)
  2977  	if err != nil {
  2978  		return nil, err
  2979  	}
  2980  	var values []MobileAppTroubleshootingEvent
  2981  	for {
  2982  		if res.StatusCode != http.StatusOK {
  2983  			b, _ := ioutil.ReadAll(res.Body)
  2984  			res.Body.Close()
  2985  			errRes := &ErrorResponse{Response: res}
  2986  			err := jsonx.Unmarshal(b, errRes)
  2987  			if err != nil {
  2988  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  2989  			}
  2990  			return nil, errRes
  2991  		}
  2992  		var (
  2993  			paging Paging
  2994  			value  []MobileAppTroubleshootingEvent
  2995  		)
  2996  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  2997  		res.Body.Close()
  2998  		if err != nil {
  2999  			return nil, err
  3000  		}
  3001  		err = jsonx.Unmarshal(paging.Value, &value)
  3002  		if err != nil {
  3003  			return nil, err
  3004  		}
  3005  		values = append(values, value...)
  3006  		if n >= 0 {
  3007  			n--
  3008  		}
  3009  		if n == 0 || len(paging.NextLink) == 0 {
  3010  			return values, nil
  3011  		}
  3012  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  3013  		if ctx != nil {
  3014  			req = req.WithContext(ctx)
  3015  		}
  3016  		res, err = r.client.Do(req)
  3017  		if err != nil {
  3018  			return nil, err
  3019  		}
  3020  	}
  3021  }
  3022  
  3023  // GetN performs GET request for MobileAppTroubleshootingEvent collection, max N pages
  3024  func (r *UserMobileAppTroubleshootingEventsCollectionRequest) GetN(ctx context.Context, n int) ([]MobileAppTroubleshootingEvent, error) {
  3025  	var query string
  3026  	if r.query != nil {
  3027  		query = "?" + r.query.Encode()
  3028  	}
  3029  	return r.Paging(ctx, "GET", query, nil, n)
  3030  }
  3031  
  3032  // Get performs GET request for MobileAppTroubleshootingEvent collection
  3033  func (r *UserMobileAppTroubleshootingEventsCollectionRequest) Get(ctx context.Context) ([]MobileAppTroubleshootingEvent, error) {
  3034  	return r.GetN(ctx, 0)
  3035  }
  3036  
  3037  // Add performs POST request for MobileAppTroubleshootingEvent collection
  3038  func (r *UserMobileAppTroubleshootingEventsCollectionRequest) Add(ctx context.Context, reqObj *MobileAppTroubleshootingEvent) (resObj *MobileAppTroubleshootingEvent, err error) {
  3039  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  3040  	return
  3041  }
  3042  
  3043  // Notifications returns request builder for Notification collection
  3044  func (b *UserRequestBuilder) Notifications() *UserNotificationsCollectionRequestBuilder {
  3045  	bb := &UserNotificationsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  3046  	bb.baseURL += "/notifications"
  3047  	return bb
  3048  }
  3049  
  3050  // UserNotificationsCollectionRequestBuilder is request builder for Notification collection
  3051  type UserNotificationsCollectionRequestBuilder struct{ BaseRequestBuilder }
  3052  
  3053  // Request returns request for Notification collection
  3054  func (b *UserNotificationsCollectionRequestBuilder) Request() *UserNotificationsCollectionRequest {
  3055  	return &UserNotificationsCollectionRequest{
  3056  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  3057  	}
  3058  }
  3059  
  3060  // ID returns request builder for Notification item
  3061  func (b *UserNotificationsCollectionRequestBuilder) ID(id string) *NotificationRequestBuilder {
  3062  	bb := &NotificationRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  3063  	bb.baseURL += "/" + id
  3064  	return bb
  3065  }
  3066  
  3067  // UserNotificationsCollectionRequest is request for Notification collection
  3068  type UserNotificationsCollectionRequest struct{ BaseRequest }
  3069  
  3070  // Paging perfoms paging operation for Notification collection
  3071  func (r *UserNotificationsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]Notification, error) {
  3072  	req, err := r.NewJSONRequest(method, path, obj)
  3073  	if err != nil {
  3074  		return nil, err
  3075  	}
  3076  	if ctx != nil {
  3077  		req = req.WithContext(ctx)
  3078  	}
  3079  	res, err := r.client.Do(req)
  3080  	if err != nil {
  3081  		return nil, err
  3082  	}
  3083  	var values []Notification
  3084  	for {
  3085  		if res.StatusCode != http.StatusOK {
  3086  			b, _ := ioutil.ReadAll(res.Body)
  3087  			res.Body.Close()
  3088  			errRes := &ErrorResponse{Response: res}
  3089  			err := jsonx.Unmarshal(b, errRes)
  3090  			if err != nil {
  3091  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  3092  			}
  3093  			return nil, errRes
  3094  		}
  3095  		var (
  3096  			paging Paging
  3097  			value  []Notification
  3098  		)
  3099  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  3100  		res.Body.Close()
  3101  		if err != nil {
  3102  			return nil, err
  3103  		}
  3104  		err = jsonx.Unmarshal(paging.Value, &value)
  3105  		if err != nil {
  3106  			return nil, err
  3107  		}
  3108  		values = append(values, value...)
  3109  		if n >= 0 {
  3110  			n--
  3111  		}
  3112  		if n == 0 || len(paging.NextLink) == 0 {
  3113  			return values, nil
  3114  		}
  3115  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  3116  		if ctx != nil {
  3117  			req = req.WithContext(ctx)
  3118  		}
  3119  		res, err = r.client.Do(req)
  3120  		if err != nil {
  3121  			return nil, err
  3122  		}
  3123  	}
  3124  }
  3125  
  3126  // GetN performs GET request for Notification collection, max N pages
  3127  func (r *UserNotificationsCollectionRequest) GetN(ctx context.Context, n int) ([]Notification, error) {
  3128  	var query string
  3129  	if r.query != nil {
  3130  		query = "?" + r.query.Encode()
  3131  	}
  3132  	return r.Paging(ctx, "GET", query, nil, n)
  3133  }
  3134  
  3135  // Get performs GET request for Notification collection
  3136  func (r *UserNotificationsCollectionRequest) Get(ctx context.Context) ([]Notification, error) {
  3137  	return r.GetN(ctx, 0)
  3138  }
  3139  
  3140  // Add performs POST request for Notification collection
  3141  func (r *UserNotificationsCollectionRequest) Add(ctx context.Context, reqObj *Notification) (resObj *Notification, err error) {
  3142  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  3143  	return
  3144  }
  3145  
  3146  // Onenote is navigation property
  3147  func (b *UserRequestBuilder) Onenote() *OnenoteRequestBuilder {
  3148  	bb := &OnenoteRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  3149  	bb.baseURL += "/onenote"
  3150  	return bb
  3151  }
  3152  
  3153  // OnlineMeetings returns request builder for OnlineMeeting collection
  3154  func (b *UserRequestBuilder) OnlineMeetings() *UserOnlineMeetingsCollectionRequestBuilder {
  3155  	bb := &UserOnlineMeetingsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  3156  	bb.baseURL += "/onlineMeetings"
  3157  	return bb
  3158  }
  3159  
  3160  // UserOnlineMeetingsCollectionRequestBuilder is request builder for OnlineMeeting collection
  3161  type UserOnlineMeetingsCollectionRequestBuilder struct{ BaseRequestBuilder }
  3162  
  3163  // Request returns request for OnlineMeeting collection
  3164  func (b *UserOnlineMeetingsCollectionRequestBuilder) Request() *UserOnlineMeetingsCollectionRequest {
  3165  	return &UserOnlineMeetingsCollectionRequest{
  3166  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  3167  	}
  3168  }
  3169  
  3170  // ID returns request builder for OnlineMeeting item
  3171  func (b *UserOnlineMeetingsCollectionRequestBuilder) ID(id string) *OnlineMeetingRequestBuilder {
  3172  	bb := &OnlineMeetingRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  3173  	bb.baseURL += "/" + id
  3174  	return bb
  3175  }
  3176  
  3177  // UserOnlineMeetingsCollectionRequest is request for OnlineMeeting collection
  3178  type UserOnlineMeetingsCollectionRequest struct{ BaseRequest }
  3179  
  3180  // Paging perfoms paging operation for OnlineMeeting collection
  3181  func (r *UserOnlineMeetingsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]OnlineMeeting, error) {
  3182  	req, err := r.NewJSONRequest(method, path, obj)
  3183  	if err != nil {
  3184  		return nil, err
  3185  	}
  3186  	if ctx != nil {
  3187  		req = req.WithContext(ctx)
  3188  	}
  3189  	res, err := r.client.Do(req)
  3190  	if err != nil {
  3191  		return nil, err
  3192  	}
  3193  	var values []OnlineMeeting
  3194  	for {
  3195  		if res.StatusCode != http.StatusOK {
  3196  			b, _ := ioutil.ReadAll(res.Body)
  3197  			res.Body.Close()
  3198  			errRes := &ErrorResponse{Response: res}
  3199  			err := jsonx.Unmarshal(b, errRes)
  3200  			if err != nil {
  3201  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  3202  			}
  3203  			return nil, errRes
  3204  		}
  3205  		var (
  3206  			paging Paging
  3207  			value  []OnlineMeeting
  3208  		)
  3209  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  3210  		res.Body.Close()
  3211  		if err != nil {
  3212  			return nil, err
  3213  		}
  3214  		err = jsonx.Unmarshal(paging.Value, &value)
  3215  		if err != nil {
  3216  			return nil, err
  3217  		}
  3218  		values = append(values, value...)
  3219  		if n >= 0 {
  3220  			n--
  3221  		}
  3222  		if n == 0 || len(paging.NextLink) == 0 {
  3223  			return values, nil
  3224  		}
  3225  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  3226  		if ctx != nil {
  3227  			req = req.WithContext(ctx)
  3228  		}
  3229  		res, err = r.client.Do(req)
  3230  		if err != nil {
  3231  			return nil, err
  3232  		}
  3233  	}
  3234  }
  3235  
  3236  // GetN performs GET request for OnlineMeeting collection, max N pages
  3237  func (r *UserOnlineMeetingsCollectionRequest) GetN(ctx context.Context, n int) ([]OnlineMeeting, error) {
  3238  	var query string
  3239  	if r.query != nil {
  3240  		query = "?" + r.query.Encode()
  3241  	}
  3242  	return r.Paging(ctx, "GET", query, nil, n)
  3243  }
  3244  
  3245  // Get performs GET request for OnlineMeeting collection
  3246  func (r *UserOnlineMeetingsCollectionRequest) Get(ctx context.Context) ([]OnlineMeeting, error) {
  3247  	return r.GetN(ctx, 0)
  3248  }
  3249  
  3250  // Add performs POST request for OnlineMeeting collection
  3251  func (r *UserOnlineMeetingsCollectionRequest) Add(ctx context.Context, reqObj *OnlineMeeting) (resObj *OnlineMeeting, err error) {
  3252  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  3253  	return
  3254  }
  3255  
  3256  // Outlook is navigation property
  3257  func (b *UserRequestBuilder) Outlook() *OutlookUserRequestBuilder {
  3258  	bb := &OutlookUserRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  3259  	bb.baseURL += "/outlook"
  3260  	return bb
  3261  }
  3262  
  3263  // OwnedDevices returns request builder for DirectoryObject collection
  3264  func (b *UserRequestBuilder) OwnedDevices() *UserOwnedDevicesCollectionRequestBuilder {
  3265  	bb := &UserOwnedDevicesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  3266  	bb.baseURL += "/ownedDevices"
  3267  	return bb
  3268  }
  3269  
  3270  // UserOwnedDevicesCollectionRequestBuilder is request builder for DirectoryObject collection
  3271  type UserOwnedDevicesCollectionRequestBuilder struct{ BaseRequestBuilder }
  3272  
  3273  // Request returns request for DirectoryObject collection
  3274  func (b *UserOwnedDevicesCollectionRequestBuilder) Request() *UserOwnedDevicesCollectionRequest {
  3275  	return &UserOwnedDevicesCollectionRequest{
  3276  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  3277  	}
  3278  }
  3279  
  3280  // ID returns request builder for DirectoryObject item
  3281  func (b *UserOwnedDevicesCollectionRequestBuilder) ID(id string) *DirectoryObjectRequestBuilder {
  3282  	bb := &DirectoryObjectRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  3283  	bb.baseURL += "/" + id
  3284  	return bb
  3285  }
  3286  
  3287  // UserOwnedDevicesCollectionRequest is request for DirectoryObject collection
  3288  type UserOwnedDevicesCollectionRequest struct{ BaseRequest }
  3289  
  3290  // Paging perfoms paging operation for DirectoryObject collection
  3291  func (r *UserOwnedDevicesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]DirectoryObject, error) {
  3292  	req, err := r.NewJSONRequest(method, path, obj)
  3293  	if err != nil {
  3294  		return nil, err
  3295  	}
  3296  	if ctx != nil {
  3297  		req = req.WithContext(ctx)
  3298  	}
  3299  	res, err := r.client.Do(req)
  3300  	if err != nil {
  3301  		return nil, err
  3302  	}
  3303  	var values []DirectoryObject
  3304  	for {
  3305  		if res.StatusCode != http.StatusOK {
  3306  			b, _ := ioutil.ReadAll(res.Body)
  3307  			res.Body.Close()
  3308  			errRes := &ErrorResponse{Response: res}
  3309  			err := jsonx.Unmarshal(b, errRes)
  3310  			if err != nil {
  3311  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  3312  			}
  3313  			return nil, errRes
  3314  		}
  3315  		var (
  3316  			paging Paging
  3317  			value  []DirectoryObject
  3318  		)
  3319  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  3320  		res.Body.Close()
  3321  		if err != nil {
  3322  			return nil, err
  3323  		}
  3324  		err = jsonx.Unmarshal(paging.Value, &value)
  3325  		if err != nil {
  3326  			return nil, err
  3327  		}
  3328  		values = append(values, value...)
  3329  		if n >= 0 {
  3330  			n--
  3331  		}
  3332  		if n == 0 || len(paging.NextLink) == 0 {
  3333  			return values, nil
  3334  		}
  3335  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  3336  		if ctx != nil {
  3337  			req = req.WithContext(ctx)
  3338  		}
  3339  		res, err = r.client.Do(req)
  3340  		if err != nil {
  3341  			return nil, err
  3342  		}
  3343  	}
  3344  }
  3345  
  3346  // GetN performs GET request for DirectoryObject collection, max N pages
  3347  func (r *UserOwnedDevicesCollectionRequest) GetN(ctx context.Context, n int) ([]DirectoryObject, error) {
  3348  	var query string
  3349  	if r.query != nil {
  3350  		query = "?" + r.query.Encode()
  3351  	}
  3352  	return r.Paging(ctx, "GET", query, nil, n)
  3353  }
  3354  
  3355  // Get performs GET request for DirectoryObject collection
  3356  func (r *UserOwnedDevicesCollectionRequest) Get(ctx context.Context) ([]DirectoryObject, error) {
  3357  	return r.GetN(ctx, 0)
  3358  }
  3359  
  3360  // Add performs POST request for DirectoryObject collection
  3361  func (r *UserOwnedDevicesCollectionRequest) Add(ctx context.Context, reqObj *DirectoryObject) (resObj *DirectoryObject, err error) {
  3362  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  3363  	return
  3364  }
  3365  
  3366  // OwnedObjects returns request builder for DirectoryObject collection
  3367  func (b *UserRequestBuilder) OwnedObjects() *UserOwnedObjectsCollectionRequestBuilder {
  3368  	bb := &UserOwnedObjectsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  3369  	bb.baseURL += "/ownedObjects"
  3370  	return bb
  3371  }
  3372  
  3373  // UserOwnedObjectsCollectionRequestBuilder is request builder for DirectoryObject collection
  3374  type UserOwnedObjectsCollectionRequestBuilder struct{ BaseRequestBuilder }
  3375  
  3376  // Request returns request for DirectoryObject collection
  3377  func (b *UserOwnedObjectsCollectionRequestBuilder) Request() *UserOwnedObjectsCollectionRequest {
  3378  	return &UserOwnedObjectsCollectionRequest{
  3379  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  3380  	}
  3381  }
  3382  
  3383  // ID returns request builder for DirectoryObject item
  3384  func (b *UserOwnedObjectsCollectionRequestBuilder) ID(id string) *DirectoryObjectRequestBuilder {
  3385  	bb := &DirectoryObjectRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  3386  	bb.baseURL += "/" + id
  3387  	return bb
  3388  }
  3389  
  3390  // UserOwnedObjectsCollectionRequest is request for DirectoryObject collection
  3391  type UserOwnedObjectsCollectionRequest struct{ BaseRequest }
  3392  
  3393  // Paging perfoms paging operation for DirectoryObject collection
  3394  func (r *UserOwnedObjectsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]DirectoryObject, error) {
  3395  	req, err := r.NewJSONRequest(method, path, obj)
  3396  	if err != nil {
  3397  		return nil, err
  3398  	}
  3399  	if ctx != nil {
  3400  		req = req.WithContext(ctx)
  3401  	}
  3402  	res, err := r.client.Do(req)
  3403  	if err != nil {
  3404  		return nil, err
  3405  	}
  3406  	var values []DirectoryObject
  3407  	for {
  3408  		if res.StatusCode != http.StatusOK {
  3409  			b, _ := ioutil.ReadAll(res.Body)
  3410  			res.Body.Close()
  3411  			errRes := &ErrorResponse{Response: res}
  3412  			err := jsonx.Unmarshal(b, errRes)
  3413  			if err != nil {
  3414  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  3415  			}
  3416  			return nil, errRes
  3417  		}
  3418  		var (
  3419  			paging Paging
  3420  			value  []DirectoryObject
  3421  		)
  3422  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  3423  		res.Body.Close()
  3424  		if err != nil {
  3425  			return nil, err
  3426  		}
  3427  		err = jsonx.Unmarshal(paging.Value, &value)
  3428  		if err != nil {
  3429  			return nil, err
  3430  		}
  3431  		values = append(values, value...)
  3432  		if n >= 0 {
  3433  			n--
  3434  		}
  3435  		if n == 0 || len(paging.NextLink) == 0 {
  3436  			return values, nil
  3437  		}
  3438  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  3439  		if ctx != nil {
  3440  			req = req.WithContext(ctx)
  3441  		}
  3442  		res, err = r.client.Do(req)
  3443  		if err != nil {
  3444  			return nil, err
  3445  		}
  3446  	}
  3447  }
  3448  
  3449  // GetN performs GET request for DirectoryObject collection, max N pages
  3450  func (r *UserOwnedObjectsCollectionRequest) GetN(ctx context.Context, n int) ([]DirectoryObject, error) {
  3451  	var query string
  3452  	if r.query != nil {
  3453  		query = "?" + r.query.Encode()
  3454  	}
  3455  	return r.Paging(ctx, "GET", query, nil, n)
  3456  }
  3457  
  3458  // Get performs GET request for DirectoryObject collection
  3459  func (r *UserOwnedObjectsCollectionRequest) Get(ctx context.Context) ([]DirectoryObject, error) {
  3460  	return r.GetN(ctx, 0)
  3461  }
  3462  
  3463  // Add performs POST request for DirectoryObject collection
  3464  func (r *UserOwnedObjectsCollectionRequest) Add(ctx context.Context, reqObj *DirectoryObject) (resObj *DirectoryObject, err error) {
  3465  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  3466  	return
  3467  }
  3468  
  3469  // People returns request builder for Person collection
  3470  func (b *UserRequestBuilder) People() *UserPeopleCollectionRequestBuilder {
  3471  	bb := &UserPeopleCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  3472  	bb.baseURL += "/people"
  3473  	return bb
  3474  }
  3475  
  3476  // UserPeopleCollectionRequestBuilder is request builder for Person collection
  3477  type UserPeopleCollectionRequestBuilder struct{ BaseRequestBuilder }
  3478  
  3479  // Request returns request for Person collection
  3480  func (b *UserPeopleCollectionRequestBuilder) Request() *UserPeopleCollectionRequest {
  3481  	return &UserPeopleCollectionRequest{
  3482  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  3483  	}
  3484  }
  3485  
  3486  // ID returns request builder for Person item
  3487  func (b *UserPeopleCollectionRequestBuilder) ID(id string) *PersonRequestBuilder {
  3488  	bb := &PersonRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  3489  	bb.baseURL += "/" + id
  3490  	return bb
  3491  }
  3492  
  3493  // UserPeopleCollectionRequest is request for Person collection
  3494  type UserPeopleCollectionRequest struct{ BaseRequest }
  3495  
  3496  // Paging perfoms paging operation for Person collection
  3497  func (r *UserPeopleCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]Person, error) {
  3498  	req, err := r.NewJSONRequest(method, path, obj)
  3499  	if err != nil {
  3500  		return nil, err
  3501  	}
  3502  	if ctx != nil {
  3503  		req = req.WithContext(ctx)
  3504  	}
  3505  	res, err := r.client.Do(req)
  3506  	if err != nil {
  3507  		return nil, err
  3508  	}
  3509  	var values []Person
  3510  	for {
  3511  		if res.StatusCode != http.StatusOK {
  3512  			b, _ := ioutil.ReadAll(res.Body)
  3513  			res.Body.Close()
  3514  			errRes := &ErrorResponse{Response: res}
  3515  			err := jsonx.Unmarshal(b, errRes)
  3516  			if err != nil {
  3517  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  3518  			}
  3519  			return nil, errRes
  3520  		}
  3521  		var (
  3522  			paging Paging
  3523  			value  []Person
  3524  		)
  3525  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  3526  		res.Body.Close()
  3527  		if err != nil {
  3528  			return nil, err
  3529  		}
  3530  		err = jsonx.Unmarshal(paging.Value, &value)
  3531  		if err != nil {
  3532  			return nil, err
  3533  		}
  3534  		values = append(values, value...)
  3535  		if n >= 0 {
  3536  			n--
  3537  		}
  3538  		if n == 0 || len(paging.NextLink) == 0 {
  3539  			return values, nil
  3540  		}
  3541  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  3542  		if ctx != nil {
  3543  			req = req.WithContext(ctx)
  3544  		}
  3545  		res, err = r.client.Do(req)
  3546  		if err != nil {
  3547  			return nil, err
  3548  		}
  3549  	}
  3550  }
  3551  
  3552  // GetN performs GET request for Person collection, max N pages
  3553  func (r *UserPeopleCollectionRequest) GetN(ctx context.Context, n int) ([]Person, error) {
  3554  	var query string
  3555  	if r.query != nil {
  3556  		query = "?" + r.query.Encode()
  3557  	}
  3558  	return r.Paging(ctx, "GET", query, nil, n)
  3559  }
  3560  
  3561  // Get performs GET request for Person collection
  3562  func (r *UserPeopleCollectionRequest) Get(ctx context.Context) ([]Person, error) {
  3563  	return r.GetN(ctx, 0)
  3564  }
  3565  
  3566  // Add performs POST request for Person collection
  3567  func (r *UserPeopleCollectionRequest) Add(ctx context.Context, reqObj *Person) (resObj *Person, err error) {
  3568  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  3569  	return
  3570  }
  3571  
  3572  // Photo is navigation property
  3573  func (b *UserRequestBuilder) Photo() *ProfilePhotoRequestBuilder {
  3574  	bb := &ProfilePhotoRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  3575  	bb.baseURL += "/photo"
  3576  	return bb
  3577  }
  3578  
  3579  // Photos returns request builder for ProfilePhoto collection
  3580  func (b *UserRequestBuilder) Photos() *UserPhotosCollectionRequestBuilder {
  3581  	bb := &UserPhotosCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  3582  	bb.baseURL += "/photos"
  3583  	return bb
  3584  }
  3585  
  3586  // UserPhotosCollectionRequestBuilder is request builder for ProfilePhoto collection
  3587  type UserPhotosCollectionRequestBuilder struct{ BaseRequestBuilder }
  3588  
  3589  // Request returns request for ProfilePhoto collection
  3590  func (b *UserPhotosCollectionRequestBuilder) Request() *UserPhotosCollectionRequest {
  3591  	return &UserPhotosCollectionRequest{
  3592  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  3593  	}
  3594  }
  3595  
  3596  // ID returns request builder for ProfilePhoto item
  3597  func (b *UserPhotosCollectionRequestBuilder) ID(id string) *ProfilePhotoRequestBuilder {
  3598  	bb := &ProfilePhotoRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  3599  	bb.baseURL += "/" + id
  3600  	return bb
  3601  }
  3602  
  3603  // UserPhotosCollectionRequest is request for ProfilePhoto collection
  3604  type UserPhotosCollectionRequest struct{ BaseRequest }
  3605  
  3606  // Paging perfoms paging operation for ProfilePhoto collection
  3607  func (r *UserPhotosCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]ProfilePhoto, error) {
  3608  	req, err := r.NewJSONRequest(method, path, obj)
  3609  	if err != nil {
  3610  		return nil, err
  3611  	}
  3612  	if ctx != nil {
  3613  		req = req.WithContext(ctx)
  3614  	}
  3615  	res, err := r.client.Do(req)
  3616  	if err != nil {
  3617  		return nil, err
  3618  	}
  3619  	var values []ProfilePhoto
  3620  	for {
  3621  		if res.StatusCode != http.StatusOK {
  3622  			b, _ := ioutil.ReadAll(res.Body)
  3623  			res.Body.Close()
  3624  			errRes := &ErrorResponse{Response: res}
  3625  			err := jsonx.Unmarshal(b, errRes)
  3626  			if err != nil {
  3627  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  3628  			}
  3629  			return nil, errRes
  3630  		}
  3631  		var (
  3632  			paging Paging
  3633  			value  []ProfilePhoto
  3634  		)
  3635  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  3636  		res.Body.Close()
  3637  		if err != nil {
  3638  			return nil, err
  3639  		}
  3640  		err = jsonx.Unmarshal(paging.Value, &value)
  3641  		if err != nil {
  3642  			return nil, err
  3643  		}
  3644  		values = append(values, value...)
  3645  		if n >= 0 {
  3646  			n--
  3647  		}
  3648  		if n == 0 || len(paging.NextLink) == 0 {
  3649  			return values, nil
  3650  		}
  3651  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  3652  		if ctx != nil {
  3653  			req = req.WithContext(ctx)
  3654  		}
  3655  		res, err = r.client.Do(req)
  3656  		if err != nil {
  3657  			return nil, err
  3658  		}
  3659  	}
  3660  }
  3661  
  3662  // GetN performs GET request for ProfilePhoto collection, max N pages
  3663  func (r *UserPhotosCollectionRequest) GetN(ctx context.Context, n int) ([]ProfilePhoto, error) {
  3664  	var query string
  3665  	if r.query != nil {
  3666  		query = "?" + r.query.Encode()
  3667  	}
  3668  	return r.Paging(ctx, "GET", query, nil, n)
  3669  }
  3670  
  3671  // Get performs GET request for ProfilePhoto collection
  3672  func (r *UserPhotosCollectionRequest) Get(ctx context.Context) ([]ProfilePhoto, error) {
  3673  	return r.GetN(ctx, 0)
  3674  }
  3675  
  3676  // Add performs POST request for ProfilePhoto collection
  3677  func (r *UserPhotosCollectionRequest) Add(ctx context.Context, reqObj *ProfilePhoto) (resObj *ProfilePhoto, err error) {
  3678  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  3679  	return
  3680  }
  3681  
  3682  // Planner is navigation property
  3683  func (b *UserRequestBuilder) Planner() *PlannerUserRequestBuilder {
  3684  	bb := &PlannerUserRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  3685  	bb.baseURL += "/planner"
  3686  	return bb
  3687  }
  3688  
  3689  // Presence is navigation property
  3690  func (b *UserRequestBuilder) Presence() *PresenceRequestBuilder {
  3691  	bb := &PresenceRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  3692  	bb.baseURL += "/presence"
  3693  	return bb
  3694  }
  3695  
  3696  // Profile is navigation property
  3697  func (b *UserRequestBuilder) Profile() *ProfileRequestBuilder {
  3698  	bb := &ProfileRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  3699  	bb.baseURL += "/profile"
  3700  	return bb
  3701  }
  3702  
  3703  // RegisteredDevices returns request builder for DirectoryObject collection
  3704  func (b *UserRequestBuilder) RegisteredDevices() *UserRegisteredDevicesCollectionRequestBuilder {
  3705  	bb := &UserRegisteredDevicesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  3706  	bb.baseURL += "/registeredDevices"
  3707  	return bb
  3708  }
  3709  
  3710  // UserRegisteredDevicesCollectionRequestBuilder is request builder for DirectoryObject collection
  3711  type UserRegisteredDevicesCollectionRequestBuilder struct{ BaseRequestBuilder }
  3712  
  3713  // Request returns request for DirectoryObject collection
  3714  func (b *UserRegisteredDevicesCollectionRequestBuilder) Request() *UserRegisteredDevicesCollectionRequest {
  3715  	return &UserRegisteredDevicesCollectionRequest{
  3716  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  3717  	}
  3718  }
  3719  
  3720  // ID returns request builder for DirectoryObject item
  3721  func (b *UserRegisteredDevicesCollectionRequestBuilder) ID(id string) *DirectoryObjectRequestBuilder {
  3722  	bb := &DirectoryObjectRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  3723  	bb.baseURL += "/" + id
  3724  	return bb
  3725  }
  3726  
  3727  // UserRegisteredDevicesCollectionRequest is request for DirectoryObject collection
  3728  type UserRegisteredDevicesCollectionRequest struct{ BaseRequest }
  3729  
  3730  // Paging perfoms paging operation for DirectoryObject collection
  3731  func (r *UserRegisteredDevicesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]DirectoryObject, error) {
  3732  	req, err := r.NewJSONRequest(method, path, obj)
  3733  	if err != nil {
  3734  		return nil, err
  3735  	}
  3736  	if ctx != nil {
  3737  		req = req.WithContext(ctx)
  3738  	}
  3739  	res, err := r.client.Do(req)
  3740  	if err != nil {
  3741  		return nil, err
  3742  	}
  3743  	var values []DirectoryObject
  3744  	for {
  3745  		if res.StatusCode != http.StatusOK {
  3746  			b, _ := ioutil.ReadAll(res.Body)
  3747  			res.Body.Close()
  3748  			errRes := &ErrorResponse{Response: res}
  3749  			err := jsonx.Unmarshal(b, errRes)
  3750  			if err != nil {
  3751  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  3752  			}
  3753  			return nil, errRes
  3754  		}
  3755  		var (
  3756  			paging Paging
  3757  			value  []DirectoryObject
  3758  		)
  3759  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  3760  		res.Body.Close()
  3761  		if err != nil {
  3762  			return nil, err
  3763  		}
  3764  		err = jsonx.Unmarshal(paging.Value, &value)
  3765  		if err != nil {
  3766  			return nil, err
  3767  		}
  3768  		values = append(values, value...)
  3769  		if n >= 0 {
  3770  			n--
  3771  		}
  3772  		if n == 0 || len(paging.NextLink) == 0 {
  3773  			return values, nil
  3774  		}
  3775  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  3776  		if ctx != nil {
  3777  			req = req.WithContext(ctx)
  3778  		}
  3779  		res, err = r.client.Do(req)
  3780  		if err != nil {
  3781  			return nil, err
  3782  		}
  3783  	}
  3784  }
  3785  
  3786  // GetN performs GET request for DirectoryObject collection, max N pages
  3787  func (r *UserRegisteredDevicesCollectionRequest) GetN(ctx context.Context, n int) ([]DirectoryObject, error) {
  3788  	var query string
  3789  	if r.query != nil {
  3790  		query = "?" + r.query.Encode()
  3791  	}
  3792  	return r.Paging(ctx, "GET", query, nil, n)
  3793  }
  3794  
  3795  // Get performs GET request for DirectoryObject collection
  3796  func (r *UserRegisteredDevicesCollectionRequest) Get(ctx context.Context) ([]DirectoryObject, error) {
  3797  	return r.GetN(ctx, 0)
  3798  }
  3799  
  3800  // Add performs POST request for DirectoryObject collection
  3801  func (r *UserRegisteredDevicesCollectionRequest) Add(ctx context.Context, reqObj *DirectoryObject) (resObj *DirectoryObject, err error) {
  3802  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  3803  	return
  3804  }
  3805  
  3806  // ScopedRoleMemberOf returns request builder for ScopedRoleMembership collection
  3807  func (b *UserRequestBuilder) ScopedRoleMemberOf() *UserScopedRoleMemberOfCollectionRequestBuilder {
  3808  	bb := &UserScopedRoleMemberOfCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  3809  	bb.baseURL += "/scopedRoleMemberOf"
  3810  	return bb
  3811  }
  3812  
  3813  // UserScopedRoleMemberOfCollectionRequestBuilder is request builder for ScopedRoleMembership collection
  3814  type UserScopedRoleMemberOfCollectionRequestBuilder struct{ BaseRequestBuilder }
  3815  
  3816  // Request returns request for ScopedRoleMembership collection
  3817  func (b *UserScopedRoleMemberOfCollectionRequestBuilder) Request() *UserScopedRoleMemberOfCollectionRequest {
  3818  	return &UserScopedRoleMemberOfCollectionRequest{
  3819  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  3820  	}
  3821  }
  3822  
  3823  // ID returns request builder for ScopedRoleMembership item
  3824  func (b *UserScopedRoleMemberOfCollectionRequestBuilder) ID(id string) *ScopedRoleMembershipRequestBuilder {
  3825  	bb := &ScopedRoleMembershipRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  3826  	bb.baseURL += "/" + id
  3827  	return bb
  3828  }
  3829  
  3830  // UserScopedRoleMemberOfCollectionRequest is request for ScopedRoleMembership collection
  3831  type UserScopedRoleMemberOfCollectionRequest struct{ BaseRequest }
  3832  
  3833  // Paging perfoms paging operation for ScopedRoleMembership collection
  3834  func (r *UserScopedRoleMemberOfCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]ScopedRoleMembership, error) {
  3835  	req, err := r.NewJSONRequest(method, path, obj)
  3836  	if err != nil {
  3837  		return nil, err
  3838  	}
  3839  	if ctx != nil {
  3840  		req = req.WithContext(ctx)
  3841  	}
  3842  	res, err := r.client.Do(req)
  3843  	if err != nil {
  3844  		return nil, err
  3845  	}
  3846  	var values []ScopedRoleMembership
  3847  	for {
  3848  		if res.StatusCode != http.StatusOK {
  3849  			b, _ := ioutil.ReadAll(res.Body)
  3850  			res.Body.Close()
  3851  			errRes := &ErrorResponse{Response: res}
  3852  			err := jsonx.Unmarshal(b, errRes)
  3853  			if err != nil {
  3854  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  3855  			}
  3856  			return nil, errRes
  3857  		}
  3858  		var (
  3859  			paging Paging
  3860  			value  []ScopedRoleMembership
  3861  		)
  3862  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  3863  		res.Body.Close()
  3864  		if err != nil {
  3865  			return nil, err
  3866  		}
  3867  		err = jsonx.Unmarshal(paging.Value, &value)
  3868  		if err != nil {
  3869  			return nil, err
  3870  		}
  3871  		values = append(values, value...)
  3872  		if n >= 0 {
  3873  			n--
  3874  		}
  3875  		if n == 0 || len(paging.NextLink) == 0 {
  3876  			return values, nil
  3877  		}
  3878  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  3879  		if ctx != nil {
  3880  			req = req.WithContext(ctx)
  3881  		}
  3882  		res, err = r.client.Do(req)
  3883  		if err != nil {
  3884  			return nil, err
  3885  		}
  3886  	}
  3887  }
  3888  
  3889  // GetN performs GET request for ScopedRoleMembership collection, max N pages
  3890  func (r *UserScopedRoleMemberOfCollectionRequest) GetN(ctx context.Context, n int) ([]ScopedRoleMembership, error) {
  3891  	var query string
  3892  	if r.query != nil {
  3893  		query = "?" + r.query.Encode()
  3894  	}
  3895  	return r.Paging(ctx, "GET", query, nil, n)
  3896  }
  3897  
  3898  // Get performs GET request for ScopedRoleMembership collection
  3899  func (r *UserScopedRoleMemberOfCollectionRequest) Get(ctx context.Context) ([]ScopedRoleMembership, error) {
  3900  	return r.GetN(ctx, 0)
  3901  }
  3902  
  3903  // Add performs POST request for ScopedRoleMembership collection
  3904  func (r *UserScopedRoleMemberOfCollectionRequest) Add(ctx context.Context, reqObj *ScopedRoleMembership) (resObj *ScopedRoleMembership, err error) {
  3905  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  3906  	return
  3907  }
  3908  
  3909  // Settings is navigation property
  3910  func (b *UserRequestBuilder) Settings() *UserSettingsRequestBuilder {
  3911  	bb := &UserSettingsRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  3912  	bb.baseURL += "/settings"
  3913  	return bb
  3914  }
  3915  
  3916  // Teamwork is navigation property
  3917  func (b *UserRequestBuilder) Teamwork() *UserTeamworkRequestBuilder {
  3918  	bb := &UserTeamworkRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  3919  	bb.baseURL += "/teamwork"
  3920  	return bb
  3921  }
  3922  
  3923  // TransitiveMemberOf returns request builder for DirectoryObject collection
  3924  func (b *UserRequestBuilder) TransitiveMemberOf() *UserTransitiveMemberOfCollectionRequestBuilder {
  3925  	bb := &UserTransitiveMemberOfCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  3926  	bb.baseURL += "/transitiveMemberOf"
  3927  	return bb
  3928  }
  3929  
  3930  // UserTransitiveMemberOfCollectionRequestBuilder is request builder for DirectoryObject collection
  3931  type UserTransitiveMemberOfCollectionRequestBuilder struct{ BaseRequestBuilder }
  3932  
  3933  // Request returns request for DirectoryObject collection
  3934  func (b *UserTransitiveMemberOfCollectionRequestBuilder) Request() *UserTransitiveMemberOfCollectionRequest {
  3935  	return &UserTransitiveMemberOfCollectionRequest{
  3936  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  3937  	}
  3938  }
  3939  
  3940  // ID returns request builder for DirectoryObject item
  3941  func (b *UserTransitiveMemberOfCollectionRequestBuilder) ID(id string) *DirectoryObjectRequestBuilder {
  3942  	bb := &DirectoryObjectRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  3943  	bb.baseURL += "/" + id
  3944  	return bb
  3945  }
  3946  
  3947  // UserTransitiveMemberOfCollectionRequest is request for DirectoryObject collection
  3948  type UserTransitiveMemberOfCollectionRequest struct{ BaseRequest }
  3949  
  3950  // Paging perfoms paging operation for DirectoryObject collection
  3951  func (r *UserTransitiveMemberOfCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]DirectoryObject, error) {
  3952  	req, err := r.NewJSONRequest(method, path, obj)
  3953  	if err != nil {
  3954  		return nil, err
  3955  	}
  3956  	if ctx != nil {
  3957  		req = req.WithContext(ctx)
  3958  	}
  3959  	res, err := r.client.Do(req)
  3960  	if err != nil {
  3961  		return nil, err
  3962  	}
  3963  	var values []DirectoryObject
  3964  	for {
  3965  		if res.StatusCode != http.StatusOK {
  3966  			b, _ := ioutil.ReadAll(res.Body)
  3967  			res.Body.Close()
  3968  			errRes := &ErrorResponse{Response: res}
  3969  			err := jsonx.Unmarshal(b, errRes)
  3970  			if err != nil {
  3971  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  3972  			}
  3973  			return nil, errRes
  3974  		}
  3975  		var (
  3976  			paging Paging
  3977  			value  []DirectoryObject
  3978  		)
  3979  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  3980  		res.Body.Close()
  3981  		if err != nil {
  3982  			return nil, err
  3983  		}
  3984  		err = jsonx.Unmarshal(paging.Value, &value)
  3985  		if err != nil {
  3986  			return nil, err
  3987  		}
  3988  		values = append(values, value...)
  3989  		if n >= 0 {
  3990  			n--
  3991  		}
  3992  		if n == 0 || len(paging.NextLink) == 0 {
  3993  			return values, nil
  3994  		}
  3995  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  3996  		if ctx != nil {
  3997  			req = req.WithContext(ctx)
  3998  		}
  3999  		res, err = r.client.Do(req)
  4000  		if err != nil {
  4001  			return nil, err
  4002  		}
  4003  	}
  4004  }
  4005  
  4006  // GetN performs GET request for DirectoryObject collection, max N pages
  4007  func (r *UserTransitiveMemberOfCollectionRequest) GetN(ctx context.Context, n int) ([]DirectoryObject, error) {
  4008  	var query string
  4009  	if r.query != nil {
  4010  		query = "?" + r.query.Encode()
  4011  	}
  4012  	return r.Paging(ctx, "GET", query, nil, n)
  4013  }
  4014  
  4015  // Get performs GET request for DirectoryObject collection
  4016  func (r *UserTransitiveMemberOfCollectionRequest) Get(ctx context.Context) ([]DirectoryObject, error) {
  4017  	return r.GetN(ctx, 0)
  4018  }
  4019  
  4020  // Add performs POST request for DirectoryObject collection
  4021  func (r *UserTransitiveMemberOfCollectionRequest) Add(ctx context.Context, reqObj *DirectoryObject) (resObj *DirectoryObject, err error) {
  4022  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  4023  	return
  4024  }
  4025  
  4026  // WindowsInformationProtectionDeviceRegistrations returns request builder for WindowsInformationProtectionDeviceRegistration collection
  4027  func (b *UserRequestBuilder) WindowsInformationProtectionDeviceRegistrations() *UserWindowsInformationProtectionDeviceRegistrationsCollectionRequestBuilder {
  4028  	bb := &UserWindowsInformationProtectionDeviceRegistrationsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  4029  	bb.baseURL += "/windowsInformationProtectionDeviceRegistrations"
  4030  	return bb
  4031  }
  4032  
  4033  // UserWindowsInformationProtectionDeviceRegistrationsCollectionRequestBuilder is request builder for WindowsInformationProtectionDeviceRegistration collection
  4034  type UserWindowsInformationProtectionDeviceRegistrationsCollectionRequestBuilder struct{ BaseRequestBuilder }
  4035  
  4036  // Request returns request for WindowsInformationProtectionDeviceRegistration collection
  4037  func (b *UserWindowsInformationProtectionDeviceRegistrationsCollectionRequestBuilder) Request() *UserWindowsInformationProtectionDeviceRegistrationsCollectionRequest {
  4038  	return &UserWindowsInformationProtectionDeviceRegistrationsCollectionRequest{
  4039  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  4040  	}
  4041  }
  4042  
  4043  // ID returns request builder for WindowsInformationProtectionDeviceRegistration item
  4044  func (b *UserWindowsInformationProtectionDeviceRegistrationsCollectionRequestBuilder) ID(id string) *WindowsInformationProtectionDeviceRegistrationRequestBuilder {
  4045  	bb := &WindowsInformationProtectionDeviceRegistrationRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  4046  	bb.baseURL += "/" + id
  4047  	return bb
  4048  }
  4049  
  4050  // UserWindowsInformationProtectionDeviceRegistrationsCollectionRequest is request for WindowsInformationProtectionDeviceRegistration collection
  4051  type UserWindowsInformationProtectionDeviceRegistrationsCollectionRequest struct{ BaseRequest }
  4052  
  4053  // Paging perfoms paging operation for WindowsInformationProtectionDeviceRegistration collection
  4054  func (r *UserWindowsInformationProtectionDeviceRegistrationsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]WindowsInformationProtectionDeviceRegistration, error) {
  4055  	req, err := r.NewJSONRequest(method, path, obj)
  4056  	if err != nil {
  4057  		return nil, err
  4058  	}
  4059  	if ctx != nil {
  4060  		req = req.WithContext(ctx)
  4061  	}
  4062  	res, err := r.client.Do(req)
  4063  	if err != nil {
  4064  		return nil, err
  4065  	}
  4066  	var values []WindowsInformationProtectionDeviceRegistration
  4067  	for {
  4068  		if res.StatusCode != http.StatusOK {
  4069  			b, _ := ioutil.ReadAll(res.Body)
  4070  			res.Body.Close()
  4071  			errRes := &ErrorResponse{Response: res}
  4072  			err := jsonx.Unmarshal(b, errRes)
  4073  			if err != nil {
  4074  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  4075  			}
  4076  			return nil, errRes
  4077  		}
  4078  		var (
  4079  			paging Paging
  4080  			value  []WindowsInformationProtectionDeviceRegistration
  4081  		)
  4082  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  4083  		res.Body.Close()
  4084  		if err != nil {
  4085  			return nil, err
  4086  		}
  4087  		err = jsonx.Unmarshal(paging.Value, &value)
  4088  		if err != nil {
  4089  			return nil, err
  4090  		}
  4091  		values = append(values, value...)
  4092  		if n >= 0 {
  4093  			n--
  4094  		}
  4095  		if n == 0 || len(paging.NextLink) == 0 {
  4096  			return values, nil
  4097  		}
  4098  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  4099  		if ctx != nil {
  4100  			req = req.WithContext(ctx)
  4101  		}
  4102  		res, err = r.client.Do(req)
  4103  		if err != nil {
  4104  			return nil, err
  4105  		}
  4106  	}
  4107  }
  4108  
  4109  // GetN performs GET request for WindowsInformationProtectionDeviceRegistration collection, max N pages
  4110  func (r *UserWindowsInformationProtectionDeviceRegistrationsCollectionRequest) GetN(ctx context.Context, n int) ([]WindowsInformationProtectionDeviceRegistration, error) {
  4111  	var query string
  4112  	if r.query != nil {
  4113  		query = "?" + r.query.Encode()
  4114  	}
  4115  	return r.Paging(ctx, "GET", query, nil, n)
  4116  }
  4117  
  4118  // Get performs GET request for WindowsInformationProtectionDeviceRegistration collection
  4119  func (r *UserWindowsInformationProtectionDeviceRegistrationsCollectionRequest) Get(ctx context.Context) ([]WindowsInformationProtectionDeviceRegistration, error) {
  4120  	return r.GetN(ctx, 0)
  4121  }
  4122  
  4123  // Add performs POST request for WindowsInformationProtectionDeviceRegistration collection
  4124  func (r *UserWindowsInformationProtectionDeviceRegistrationsCollectionRequest) Add(ctx context.Context, reqObj *WindowsInformationProtectionDeviceRegistration) (resObj *WindowsInformationProtectionDeviceRegistration, err error) {
  4125  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  4126  	return
  4127  }
  4128  
  4129  // HistoryItems returns request builder for ActivityHistoryItem collection
  4130  func (b *UserActivityRequestBuilder) HistoryItems() *UserActivityHistoryItemsCollectionRequestBuilder {
  4131  	bb := &UserActivityHistoryItemsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  4132  	bb.baseURL += "/historyItems"
  4133  	return bb
  4134  }
  4135  
  4136  // UserActivityHistoryItemsCollectionRequestBuilder is request builder for ActivityHistoryItem collection
  4137  type UserActivityHistoryItemsCollectionRequestBuilder struct{ BaseRequestBuilder }
  4138  
  4139  // Request returns request for ActivityHistoryItem collection
  4140  func (b *UserActivityHistoryItemsCollectionRequestBuilder) Request() *UserActivityHistoryItemsCollectionRequest {
  4141  	return &UserActivityHistoryItemsCollectionRequest{
  4142  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  4143  	}
  4144  }
  4145  
  4146  // ID returns request builder for ActivityHistoryItem item
  4147  func (b *UserActivityHistoryItemsCollectionRequestBuilder) ID(id string) *ActivityHistoryItemRequestBuilder {
  4148  	bb := &ActivityHistoryItemRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  4149  	bb.baseURL += "/" + id
  4150  	return bb
  4151  }
  4152  
  4153  // UserActivityHistoryItemsCollectionRequest is request for ActivityHistoryItem collection
  4154  type UserActivityHistoryItemsCollectionRequest struct{ BaseRequest }
  4155  
  4156  // Paging perfoms paging operation for ActivityHistoryItem collection
  4157  func (r *UserActivityHistoryItemsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]ActivityHistoryItem, error) {
  4158  	req, err := r.NewJSONRequest(method, path, obj)
  4159  	if err != nil {
  4160  		return nil, err
  4161  	}
  4162  	if ctx != nil {
  4163  		req = req.WithContext(ctx)
  4164  	}
  4165  	res, err := r.client.Do(req)
  4166  	if err != nil {
  4167  		return nil, err
  4168  	}
  4169  	var values []ActivityHistoryItem
  4170  	for {
  4171  		if res.StatusCode != http.StatusOK {
  4172  			b, _ := ioutil.ReadAll(res.Body)
  4173  			res.Body.Close()
  4174  			errRes := &ErrorResponse{Response: res}
  4175  			err := jsonx.Unmarshal(b, errRes)
  4176  			if err != nil {
  4177  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  4178  			}
  4179  			return nil, errRes
  4180  		}
  4181  		var (
  4182  			paging Paging
  4183  			value  []ActivityHistoryItem
  4184  		)
  4185  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  4186  		res.Body.Close()
  4187  		if err != nil {
  4188  			return nil, err
  4189  		}
  4190  		err = jsonx.Unmarshal(paging.Value, &value)
  4191  		if err != nil {
  4192  			return nil, err
  4193  		}
  4194  		values = append(values, value...)
  4195  		if n >= 0 {
  4196  			n--
  4197  		}
  4198  		if n == 0 || len(paging.NextLink) == 0 {
  4199  			return values, nil
  4200  		}
  4201  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  4202  		if ctx != nil {
  4203  			req = req.WithContext(ctx)
  4204  		}
  4205  		res, err = r.client.Do(req)
  4206  		if err != nil {
  4207  			return nil, err
  4208  		}
  4209  	}
  4210  }
  4211  
  4212  // GetN performs GET request for ActivityHistoryItem collection, max N pages
  4213  func (r *UserActivityHistoryItemsCollectionRequest) GetN(ctx context.Context, n int) ([]ActivityHistoryItem, error) {
  4214  	var query string
  4215  	if r.query != nil {
  4216  		query = "?" + r.query.Encode()
  4217  	}
  4218  	return r.Paging(ctx, "GET", query, nil, n)
  4219  }
  4220  
  4221  // Get performs GET request for ActivityHistoryItem collection
  4222  func (r *UserActivityHistoryItemsCollectionRequest) Get(ctx context.Context) ([]ActivityHistoryItem, error) {
  4223  	return r.GetN(ctx, 0)
  4224  }
  4225  
  4226  // Add performs POST request for ActivityHistoryItem collection
  4227  func (r *UserActivityHistoryItemsCollectionRequest) Add(ctx context.Context, reqObj *ActivityHistoryItem) (resObj *ActivityHistoryItem, err error) {
  4228  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  4229  	return
  4230  }
  4231  
  4232  // ActivityStatistics returns request builder for ActivityStatistics collection
  4233  func (b *UserAnalyticsRequestBuilder) ActivityStatistics() *UserAnalyticsActivityStatisticsCollectionRequestBuilder {
  4234  	bb := &UserAnalyticsActivityStatisticsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  4235  	bb.baseURL += "/activityStatistics"
  4236  	return bb
  4237  }
  4238  
  4239  // UserAnalyticsActivityStatisticsCollectionRequestBuilder is request builder for ActivityStatistics collection
  4240  type UserAnalyticsActivityStatisticsCollectionRequestBuilder struct{ BaseRequestBuilder }
  4241  
  4242  // Request returns request for ActivityStatistics collection
  4243  func (b *UserAnalyticsActivityStatisticsCollectionRequestBuilder) Request() *UserAnalyticsActivityStatisticsCollectionRequest {
  4244  	return &UserAnalyticsActivityStatisticsCollectionRequest{
  4245  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  4246  	}
  4247  }
  4248  
  4249  // ID returns request builder for ActivityStatistics item
  4250  func (b *UserAnalyticsActivityStatisticsCollectionRequestBuilder) ID(id string) *ActivityStatisticsRequestBuilder {
  4251  	bb := &ActivityStatisticsRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  4252  	bb.baseURL += "/" + id
  4253  	return bb
  4254  }
  4255  
  4256  // UserAnalyticsActivityStatisticsCollectionRequest is request for ActivityStatistics collection
  4257  type UserAnalyticsActivityStatisticsCollectionRequest struct{ BaseRequest }
  4258  
  4259  // Paging perfoms paging operation for ActivityStatistics collection
  4260  func (r *UserAnalyticsActivityStatisticsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]ActivityStatistics, error) {
  4261  	req, err := r.NewJSONRequest(method, path, obj)
  4262  	if err != nil {
  4263  		return nil, err
  4264  	}
  4265  	if ctx != nil {
  4266  		req = req.WithContext(ctx)
  4267  	}
  4268  	res, err := r.client.Do(req)
  4269  	if err != nil {
  4270  		return nil, err
  4271  	}
  4272  	var values []ActivityStatistics
  4273  	for {
  4274  		if res.StatusCode != http.StatusOK {
  4275  			b, _ := ioutil.ReadAll(res.Body)
  4276  			res.Body.Close()
  4277  			errRes := &ErrorResponse{Response: res}
  4278  			err := jsonx.Unmarshal(b, errRes)
  4279  			if err != nil {
  4280  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  4281  			}
  4282  			return nil, errRes
  4283  		}
  4284  		var (
  4285  			paging Paging
  4286  			value  []ActivityStatistics
  4287  		)
  4288  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  4289  		res.Body.Close()
  4290  		if err != nil {
  4291  			return nil, err
  4292  		}
  4293  		err = jsonx.Unmarshal(paging.Value, &value)
  4294  		if err != nil {
  4295  			return nil, err
  4296  		}
  4297  		values = append(values, value...)
  4298  		if n >= 0 {
  4299  			n--
  4300  		}
  4301  		if n == 0 || len(paging.NextLink) == 0 {
  4302  			return values, nil
  4303  		}
  4304  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  4305  		if ctx != nil {
  4306  			req = req.WithContext(ctx)
  4307  		}
  4308  		res, err = r.client.Do(req)
  4309  		if err != nil {
  4310  			return nil, err
  4311  		}
  4312  	}
  4313  }
  4314  
  4315  // GetN performs GET request for ActivityStatistics collection, max N pages
  4316  func (r *UserAnalyticsActivityStatisticsCollectionRequest) GetN(ctx context.Context, n int) ([]ActivityStatistics, error) {
  4317  	var query string
  4318  	if r.query != nil {
  4319  		query = "?" + r.query.Encode()
  4320  	}
  4321  	return r.Paging(ctx, "GET", query, nil, n)
  4322  }
  4323  
  4324  // Get performs GET request for ActivityStatistics collection
  4325  func (r *UserAnalyticsActivityStatisticsCollectionRequest) Get(ctx context.Context) ([]ActivityStatistics, error) {
  4326  	return r.GetN(ctx, 0)
  4327  }
  4328  
  4329  // Add performs POST request for ActivityStatistics collection
  4330  func (r *UserAnalyticsActivityStatisticsCollectionRequest) Add(ctx context.Context, reqObj *ActivityStatistics) (resObj *ActivityStatistics, err error) {
  4331  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  4332  	return
  4333  }
  4334  
  4335  // App is navigation property
  4336  func (b *UserAppInstallStatusRequestBuilder) App() *MobileAppRequestBuilder {
  4337  	bb := &MobileAppRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  4338  	bb.baseURL += "/app"
  4339  	return bb
  4340  }
  4341  
  4342  // DeviceStatuses returns request builder for MobileAppInstallStatus collection
  4343  func (b *UserAppInstallStatusRequestBuilder) DeviceStatuses() *UserAppInstallStatusDeviceStatusesCollectionRequestBuilder {
  4344  	bb := &UserAppInstallStatusDeviceStatusesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  4345  	bb.baseURL += "/deviceStatuses"
  4346  	return bb
  4347  }
  4348  
  4349  // UserAppInstallStatusDeviceStatusesCollectionRequestBuilder is request builder for MobileAppInstallStatus collection
  4350  type UserAppInstallStatusDeviceStatusesCollectionRequestBuilder struct{ BaseRequestBuilder }
  4351  
  4352  // Request returns request for MobileAppInstallStatus collection
  4353  func (b *UserAppInstallStatusDeviceStatusesCollectionRequestBuilder) Request() *UserAppInstallStatusDeviceStatusesCollectionRequest {
  4354  	return &UserAppInstallStatusDeviceStatusesCollectionRequest{
  4355  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  4356  	}
  4357  }
  4358  
  4359  // ID returns request builder for MobileAppInstallStatus item
  4360  func (b *UserAppInstallStatusDeviceStatusesCollectionRequestBuilder) ID(id string) *MobileAppInstallStatusRequestBuilder {
  4361  	bb := &MobileAppInstallStatusRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  4362  	bb.baseURL += "/" + id
  4363  	return bb
  4364  }
  4365  
  4366  // UserAppInstallStatusDeviceStatusesCollectionRequest is request for MobileAppInstallStatus collection
  4367  type UserAppInstallStatusDeviceStatusesCollectionRequest struct{ BaseRequest }
  4368  
  4369  // Paging perfoms paging operation for MobileAppInstallStatus collection
  4370  func (r *UserAppInstallStatusDeviceStatusesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]MobileAppInstallStatus, error) {
  4371  	req, err := r.NewJSONRequest(method, path, obj)
  4372  	if err != nil {
  4373  		return nil, err
  4374  	}
  4375  	if ctx != nil {
  4376  		req = req.WithContext(ctx)
  4377  	}
  4378  	res, err := r.client.Do(req)
  4379  	if err != nil {
  4380  		return nil, err
  4381  	}
  4382  	var values []MobileAppInstallStatus
  4383  	for {
  4384  		if res.StatusCode != http.StatusOK {
  4385  			b, _ := ioutil.ReadAll(res.Body)
  4386  			res.Body.Close()
  4387  			errRes := &ErrorResponse{Response: res}
  4388  			err := jsonx.Unmarshal(b, errRes)
  4389  			if err != nil {
  4390  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  4391  			}
  4392  			return nil, errRes
  4393  		}
  4394  		var (
  4395  			paging Paging
  4396  			value  []MobileAppInstallStatus
  4397  		)
  4398  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  4399  		res.Body.Close()
  4400  		if err != nil {
  4401  			return nil, err
  4402  		}
  4403  		err = jsonx.Unmarshal(paging.Value, &value)
  4404  		if err != nil {
  4405  			return nil, err
  4406  		}
  4407  		values = append(values, value...)
  4408  		if n >= 0 {
  4409  			n--
  4410  		}
  4411  		if n == 0 || len(paging.NextLink) == 0 {
  4412  			return values, nil
  4413  		}
  4414  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  4415  		if ctx != nil {
  4416  			req = req.WithContext(ctx)
  4417  		}
  4418  		res, err = r.client.Do(req)
  4419  		if err != nil {
  4420  			return nil, err
  4421  		}
  4422  	}
  4423  }
  4424  
  4425  // GetN performs GET request for MobileAppInstallStatus collection, max N pages
  4426  func (r *UserAppInstallStatusDeviceStatusesCollectionRequest) GetN(ctx context.Context, n int) ([]MobileAppInstallStatus, error) {
  4427  	var query string
  4428  	if r.query != nil {
  4429  		query = "?" + r.query.Encode()
  4430  	}
  4431  	return r.Paging(ctx, "GET", query, nil, n)
  4432  }
  4433  
  4434  // Get performs GET request for MobileAppInstallStatus collection
  4435  func (r *UserAppInstallStatusDeviceStatusesCollectionRequest) Get(ctx context.Context) ([]MobileAppInstallStatus, error) {
  4436  	return r.GetN(ctx, 0)
  4437  }
  4438  
  4439  // Add performs POST request for MobileAppInstallStatus collection
  4440  func (r *UserAppInstallStatusDeviceStatusesCollectionRequest) Add(ctx context.Context, reqObj *MobileAppInstallStatus) (resObj *MobileAppInstallStatus, err error) {
  4441  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  4442  	return
  4443  }
  4444  
  4445  // BestPracticesMetrics is navigation property
  4446  func (b *UserExperienceAnalyticsBaselineRequestBuilder) BestPracticesMetrics() *UserExperienceAnalyticsCategoryRequestBuilder {
  4447  	bb := &UserExperienceAnalyticsCategoryRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  4448  	bb.baseURL += "/bestPracticesMetrics"
  4449  	return bb
  4450  }
  4451  
  4452  // DeviceBootPerformanceMetrics is navigation property
  4453  func (b *UserExperienceAnalyticsBaselineRequestBuilder) DeviceBootPerformanceMetrics() *UserExperienceAnalyticsCategoryRequestBuilder {
  4454  	bb := &UserExperienceAnalyticsCategoryRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  4455  	bb.baseURL += "/deviceBootPerformanceMetrics"
  4456  	return bb
  4457  }
  4458  
  4459  // MetricValues returns request builder for UserExperienceAnalyticsMetric collection
  4460  func (b *UserExperienceAnalyticsCategoryRequestBuilder) MetricValues() *UserExperienceAnalyticsCategoryMetricValuesCollectionRequestBuilder {
  4461  	bb := &UserExperienceAnalyticsCategoryMetricValuesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  4462  	bb.baseURL += "/metricValues"
  4463  	return bb
  4464  }
  4465  
  4466  // UserExperienceAnalyticsCategoryMetricValuesCollectionRequestBuilder is request builder for UserExperienceAnalyticsMetric collection
  4467  type UserExperienceAnalyticsCategoryMetricValuesCollectionRequestBuilder struct{ BaseRequestBuilder }
  4468  
  4469  // Request returns request for UserExperienceAnalyticsMetric collection
  4470  func (b *UserExperienceAnalyticsCategoryMetricValuesCollectionRequestBuilder) Request() *UserExperienceAnalyticsCategoryMetricValuesCollectionRequest {
  4471  	return &UserExperienceAnalyticsCategoryMetricValuesCollectionRequest{
  4472  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  4473  	}
  4474  }
  4475  
  4476  // ID returns request builder for UserExperienceAnalyticsMetric item
  4477  func (b *UserExperienceAnalyticsCategoryMetricValuesCollectionRequestBuilder) ID(id string) *UserExperienceAnalyticsMetricRequestBuilder {
  4478  	bb := &UserExperienceAnalyticsMetricRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  4479  	bb.baseURL += "/" + id
  4480  	return bb
  4481  }
  4482  
  4483  // UserExperienceAnalyticsCategoryMetricValuesCollectionRequest is request for UserExperienceAnalyticsMetric collection
  4484  type UserExperienceAnalyticsCategoryMetricValuesCollectionRequest struct{ BaseRequest }
  4485  
  4486  // Paging perfoms paging operation for UserExperienceAnalyticsMetric collection
  4487  func (r *UserExperienceAnalyticsCategoryMetricValuesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]UserExperienceAnalyticsMetric, error) {
  4488  	req, err := r.NewJSONRequest(method, path, obj)
  4489  	if err != nil {
  4490  		return nil, err
  4491  	}
  4492  	if ctx != nil {
  4493  		req = req.WithContext(ctx)
  4494  	}
  4495  	res, err := r.client.Do(req)
  4496  	if err != nil {
  4497  		return nil, err
  4498  	}
  4499  	var values []UserExperienceAnalyticsMetric
  4500  	for {
  4501  		if res.StatusCode != http.StatusOK {
  4502  			b, _ := ioutil.ReadAll(res.Body)
  4503  			res.Body.Close()
  4504  			errRes := &ErrorResponse{Response: res}
  4505  			err := jsonx.Unmarshal(b, errRes)
  4506  			if err != nil {
  4507  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  4508  			}
  4509  			return nil, errRes
  4510  		}
  4511  		var (
  4512  			paging Paging
  4513  			value  []UserExperienceAnalyticsMetric
  4514  		)
  4515  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  4516  		res.Body.Close()
  4517  		if err != nil {
  4518  			return nil, err
  4519  		}
  4520  		err = jsonx.Unmarshal(paging.Value, &value)
  4521  		if err != nil {
  4522  			return nil, err
  4523  		}
  4524  		values = append(values, value...)
  4525  		if n >= 0 {
  4526  			n--
  4527  		}
  4528  		if n == 0 || len(paging.NextLink) == 0 {
  4529  			return values, nil
  4530  		}
  4531  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  4532  		if ctx != nil {
  4533  			req = req.WithContext(ctx)
  4534  		}
  4535  		res, err = r.client.Do(req)
  4536  		if err != nil {
  4537  			return nil, err
  4538  		}
  4539  	}
  4540  }
  4541  
  4542  // GetN performs GET request for UserExperienceAnalyticsMetric collection, max N pages
  4543  func (r *UserExperienceAnalyticsCategoryMetricValuesCollectionRequest) GetN(ctx context.Context, n int) ([]UserExperienceAnalyticsMetric, error) {
  4544  	var query string
  4545  	if r.query != nil {
  4546  		query = "?" + r.query.Encode()
  4547  	}
  4548  	return r.Paging(ctx, "GET", query, nil, n)
  4549  }
  4550  
  4551  // Get performs GET request for UserExperienceAnalyticsMetric collection
  4552  func (r *UserExperienceAnalyticsCategoryMetricValuesCollectionRequest) Get(ctx context.Context) ([]UserExperienceAnalyticsMetric, error) {
  4553  	return r.GetN(ctx, 0)
  4554  }
  4555  
  4556  // Add performs POST request for UserExperienceAnalyticsMetric collection
  4557  func (r *UserExperienceAnalyticsCategoryMetricValuesCollectionRequest) Add(ctx context.Context, reqObj *UserExperienceAnalyticsMetric) (resObj *UserExperienceAnalyticsMetric, err error) {
  4558  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  4559  	return
  4560  }
  4561  
  4562  // ManufacturerRegression returns request builder for UserExperienceAnalyticsMetric collection
  4563  func (b *UserExperienceAnalyticsRegressionSummaryRequestBuilder) ManufacturerRegression() *UserExperienceAnalyticsRegressionSummaryManufacturerRegressionCollectionRequestBuilder {
  4564  	bb := &UserExperienceAnalyticsRegressionSummaryManufacturerRegressionCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  4565  	bb.baseURL += "/manufacturerRegression"
  4566  	return bb
  4567  }
  4568  
  4569  // UserExperienceAnalyticsRegressionSummaryManufacturerRegressionCollectionRequestBuilder is request builder for UserExperienceAnalyticsMetric collection
  4570  type UserExperienceAnalyticsRegressionSummaryManufacturerRegressionCollectionRequestBuilder struct{ BaseRequestBuilder }
  4571  
  4572  // Request returns request for UserExperienceAnalyticsMetric collection
  4573  func (b *UserExperienceAnalyticsRegressionSummaryManufacturerRegressionCollectionRequestBuilder) Request() *UserExperienceAnalyticsRegressionSummaryManufacturerRegressionCollectionRequest {
  4574  	return &UserExperienceAnalyticsRegressionSummaryManufacturerRegressionCollectionRequest{
  4575  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  4576  	}
  4577  }
  4578  
  4579  // ID returns request builder for UserExperienceAnalyticsMetric item
  4580  func (b *UserExperienceAnalyticsRegressionSummaryManufacturerRegressionCollectionRequestBuilder) ID(id string) *UserExperienceAnalyticsMetricRequestBuilder {
  4581  	bb := &UserExperienceAnalyticsMetricRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  4582  	bb.baseURL += "/" + id
  4583  	return bb
  4584  }
  4585  
  4586  // UserExperienceAnalyticsRegressionSummaryManufacturerRegressionCollectionRequest is request for UserExperienceAnalyticsMetric collection
  4587  type UserExperienceAnalyticsRegressionSummaryManufacturerRegressionCollectionRequest struct{ BaseRequest }
  4588  
  4589  // Paging perfoms paging operation for UserExperienceAnalyticsMetric collection
  4590  func (r *UserExperienceAnalyticsRegressionSummaryManufacturerRegressionCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]UserExperienceAnalyticsMetric, error) {
  4591  	req, err := r.NewJSONRequest(method, path, obj)
  4592  	if err != nil {
  4593  		return nil, err
  4594  	}
  4595  	if ctx != nil {
  4596  		req = req.WithContext(ctx)
  4597  	}
  4598  	res, err := r.client.Do(req)
  4599  	if err != nil {
  4600  		return nil, err
  4601  	}
  4602  	var values []UserExperienceAnalyticsMetric
  4603  	for {
  4604  		if res.StatusCode != http.StatusOK {
  4605  			b, _ := ioutil.ReadAll(res.Body)
  4606  			res.Body.Close()
  4607  			errRes := &ErrorResponse{Response: res}
  4608  			err := jsonx.Unmarshal(b, errRes)
  4609  			if err != nil {
  4610  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  4611  			}
  4612  			return nil, errRes
  4613  		}
  4614  		var (
  4615  			paging Paging
  4616  			value  []UserExperienceAnalyticsMetric
  4617  		)
  4618  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  4619  		res.Body.Close()
  4620  		if err != nil {
  4621  			return nil, err
  4622  		}
  4623  		err = jsonx.Unmarshal(paging.Value, &value)
  4624  		if err != nil {
  4625  			return nil, err
  4626  		}
  4627  		values = append(values, value...)
  4628  		if n >= 0 {
  4629  			n--
  4630  		}
  4631  		if n == 0 || len(paging.NextLink) == 0 {
  4632  			return values, nil
  4633  		}
  4634  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  4635  		if ctx != nil {
  4636  			req = req.WithContext(ctx)
  4637  		}
  4638  		res, err = r.client.Do(req)
  4639  		if err != nil {
  4640  			return nil, err
  4641  		}
  4642  	}
  4643  }
  4644  
  4645  // GetN performs GET request for UserExperienceAnalyticsMetric collection, max N pages
  4646  func (r *UserExperienceAnalyticsRegressionSummaryManufacturerRegressionCollectionRequest) GetN(ctx context.Context, n int) ([]UserExperienceAnalyticsMetric, error) {
  4647  	var query string
  4648  	if r.query != nil {
  4649  		query = "?" + r.query.Encode()
  4650  	}
  4651  	return r.Paging(ctx, "GET", query, nil, n)
  4652  }
  4653  
  4654  // Get performs GET request for UserExperienceAnalyticsMetric collection
  4655  func (r *UserExperienceAnalyticsRegressionSummaryManufacturerRegressionCollectionRequest) Get(ctx context.Context) ([]UserExperienceAnalyticsMetric, error) {
  4656  	return r.GetN(ctx, 0)
  4657  }
  4658  
  4659  // Add performs POST request for UserExperienceAnalyticsMetric collection
  4660  func (r *UserExperienceAnalyticsRegressionSummaryManufacturerRegressionCollectionRequest) Add(ctx context.Context, reqObj *UserExperienceAnalyticsMetric) (resObj *UserExperienceAnalyticsMetric, err error) {
  4661  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  4662  	return
  4663  }
  4664  
  4665  // ModelRegression returns request builder for UserExperienceAnalyticsMetric collection
  4666  func (b *UserExperienceAnalyticsRegressionSummaryRequestBuilder) ModelRegression() *UserExperienceAnalyticsRegressionSummaryModelRegressionCollectionRequestBuilder {
  4667  	bb := &UserExperienceAnalyticsRegressionSummaryModelRegressionCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  4668  	bb.baseURL += "/modelRegression"
  4669  	return bb
  4670  }
  4671  
  4672  // UserExperienceAnalyticsRegressionSummaryModelRegressionCollectionRequestBuilder is request builder for UserExperienceAnalyticsMetric collection
  4673  type UserExperienceAnalyticsRegressionSummaryModelRegressionCollectionRequestBuilder struct{ BaseRequestBuilder }
  4674  
  4675  // Request returns request for UserExperienceAnalyticsMetric collection
  4676  func (b *UserExperienceAnalyticsRegressionSummaryModelRegressionCollectionRequestBuilder) Request() *UserExperienceAnalyticsRegressionSummaryModelRegressionCollectionRequest {
  4677  	return &UserExperienceAnalyticsRegressionSummaryModelRegressionCollectionRequest{
  4678  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  4679  	}
  4680  }
  4681  
  4682  // ID returns request builder for UserExperienceAnalyticsMetric item
  4683  func (b *UserExperienceAnalyticsRegressionSummaryModelRegressionCollectionRequestBuilder) ID(id string) *UserExperienceAnalyticsMetricRequestBuilder {
  4684  	bb := &UserExperienceAnalyticsMetricRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  4685  	bb.baseURL += "/" + id
  4686  	return bb
  4687  }
  4688  
  4689  // UserExperienceAnalyticsRegressionSummaryModelRegressionCollectionRequest is request for UserExperienceAnalyticsMetric collection
  4690  type UserExperienceAnalyticsRegressionSummaryModelRegressionCollectionRequest struct{ BaseRequest }
  4691  
  4692  // Paging perfoms paging operation for UserExperienceAnalyticsMetric collection
  4693  func (r *UserExperienceAnalyticsRegressionSummaryModelRegressionCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]UserExperienceAnalyticsMetric, error) {
  4694  	req, err := r.NewJSONRequest(method, path, obj)
  4695  	if err != nil {
  4696  		return nil, err
  4697  	}
  4698  	if ctx != nil {
  4699  		req = req.WithContext(ctx)
  4700  	}
  4701  	res, err := r.client.Do(req)
  4702  	if err != nil {
  4703  		return nil, err
  4704  	}
  4705  	var values []UserExperienceAnalyticsMetric
  4706  	for {
  4707  		if res.StatusCode != http.StatusOK {
  4708  			b, _ := ioutil.ReadAll(res.Body)
  4709  			res.Body.Close()
  4710  			errRes := &ErrorResponse{Response: res}
  4711  			err := jsonx.Unmarshal(b, errRes)
  4712  			if err != nil {
  4713  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  4714  			}
  4715  			return nil, errRes
  4716  		}
  4717  		var (
  4718  			paging Paging
  4719  			value  []UserExperienceAnalyticsMetric
  4720  		)
  4721  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  4722  		res.Body.Close()
  4723  		if err != nil {
  4724  			return nil, err
  4725  		}
  4726  		err = jsonx.Unmarshal(paging.Value, &value)
  4727  		if err != nil {
  4728  			return nil, err
  4729  		}
  4730  		values = append(values, value...)
  4731  		if n >= 0 {
  4732  			n--
  4733  		}
  4734  		if n == 0 || len(paging.NextLink) == 0 {
  4735  			return values, nil
  4736  		}
  4737  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  4738  		if ctx != nil {
  4739  			req = req.WithContext(ctx)
  4740  		}
  4741  		res, err = r.client.Do(req)
  4742  		if err != nil {
  4743  			return nil, err
  4744  		}
  4745  	}
  4746  }
  4747  
  4748  // GetN performs GET request for UserExperienceAnalyticsMetric collection, max N pages
  4749  func (r *UserExperienceAnalyticsRegressionSummaryModelRegressionCollectionRequest) GetN(ctx context.Context, n int) ([]UserExperienceAnalyticsMetric, error) {
  4750  	var query string
  4751  	if r.query != nil {
  4752  		query = "?" + r.query.Encode()
  4753  	}
  4754  	return r.Paging(ctx, "GET", query, nil, n)
  4755  }
  4756  
  4757  // Get performs GET request for UserExperienceAnalyticsMetric collection
  4758  func (r *UserExperienceAnalyticsRegressionSummaryModelRegressionCollectionRequest) Get(ctx context.Context) ([]UserExperienceAnalyticsMetric, error) {
  4759  	return r.GetN(ctx, 0)
  4760  }
  4761  
  4762  // Add performs POST request for UserExperienceAnalyticsMetric collection
  4763  func (r *UserExperienceAnalyticsRegressionSummaryModelRegressionCollectionRequest) Add(ctx context.Context, reqObj *UserExperienceAnalyticsMetric) (resObj *UserExperienceAnalyticsMetric, err error) {
  4764  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  4765  	return
  4766  }
  4767  
  4768  // OperatingSystemRegression returns request builder for UserExperienceAnalyticsMetric collection
  4769  func (b *UserExperienceAnalyticsRegressionSummaryRequestBuilder) OperatingSystemRegression() *UserExperienceAnalyticsRegressionSummaryOperatingSystemRegressionCollectionRequestBuilder {
  4770  	bb := &UserExperienceAnalyticsRegressionSummaryOperatingSystemRegressionCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  4771  	bb.baseURL += "/operatingSystemRegression"
  4772  	return bb
  4773  }
  4774  
  4775  // UserExperienceAnalyticsRegressionSummaryOperatingSystemRegressionCollectionRequestBuilder is request builder for UserExperienceAnalyticsMetric collection
  4776  type UserExperienceAnalyticsRegressionSummaryOperatingSystemRegressionCollectionRequestBuilder struct{ BaseRequestBuilder }
  4777  
  4778  // Request returns request for UserExperienceAnalyticsMetric collection
  4779  func (b *UserExperienceAnalyticsRegressionSummaryOperatingSystemRegressionCollectionRequestBuilder) Request() *UserExperienceAnalyticsRegressionSummaryOperatingSystemRegressionCollectionRequest {
  4780  	return &UserExperienceAnalyticsRegressionSummaryOperatingSystemRegressionCollectionRequest{
  4781  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  4782  	}
  4783  }
  4784  
  4785  // ID returns request builder for UserExperienceAnalyticsMetric item
  4786  func (b *UserExperienceAnalyticsRegressionSummaryOperatingSystemRegressionCollectionRequestBuilder) ID(id string) *UserExperienceAnalyticsMetricRequestBuilder {
  4787  	bb := &UserExperienceAnalyticsMetricRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  4788  	bb.baseURL += "/" + id
  4789  	return bb
  4790  }
  4791  
  4792  // UserExperienceAnalyticsRegressionSummaryOperatingSystemRegressionCollectionRequest is request for UserExperienceAnalyticsMetric collection
  4793  type UserExperienceAnalyticsRegressionSummaryOperatingSystemRegressionCollectionRequest struct{ BaseRequest }
  4794  
  4795  // Paging perfoms paging operation for UserExperienceAnalyticsMetric collection
  4796  func (r *UserExperienceAnalyticsRegressionSummaryOperatingSystemRegressionCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]UserExperienceAnalyticsMetric, error) {
  4797  	req, err := r.NewJSONRequest(method, path, obj)
  4798  	if err != nil {
  4799  		return nil, err
  4800  	}
  4801  	if ctx != nil {
  4802  		req = req.WithContext(ctx)
  4803  	}
  4804  	res, err := r.client.Do(req)
  4805  	if err != nil {
  4806  		return nil, err
  4807  	}
  4808  	var values []UserExperienceAnalyticsMetric
  4809  	for {
  4810  		if res.StatusCode != http.StatusOK {
  4811  			b, _ := ioutil.ReadAll(res.Body)
  4812  			res.Body.Close()
  4813  			errRes := &ErrorResponse{Response: res}
  4814  			err := jsonx.Unmarshal(b, errRes)
  4815  			if err != nil {
  4816  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  4817  			}
  4818  			return nil, errRes
  4819  		}
  4820  		var (
  4821  			paging Paging
  4822  			value  []UserExperienceAnalyticsMetric
  4823  		)
  4824  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  4825  		res.Body.Close()
  4826  		if err != nil {
  4827  			return nil, err
  4828  		}
  4829  		err = jsonx.Unmarshal(paging.Value, &value)
  4830  		if err != nil {
  4831  			return nil, err
  4832  		}
  4833  		values = append(values, value...)
  4834  		if n >= 0 {
  4835  			n--
  4836  		}
  4837  		if n == 0 || len(paging.NextLink) == 0 {
  4838  			return values, nil
  4839  		}
  4840  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  4841  		if ctx != nil {
  4842  			req = req.WithContext(ctx)
  4843  		}
  4844  		res, err = r.client.Do(req)
  4845  		if err != nil {
  4846  			return nil, err
  4847  		}
  4848  	}
  4849  }
  4850  
  4851  // GetN performs GET request for UserExperienceAnalyticsMetric collection, max N pages
  4852  func (r *UserExperienceAnalyticsRegressionSummaryOperatingSystemRegressionCollectionRequest) GetN(ctx context.Context, n int) ([]UserExperienceAnalyticsMetric, error) {
  4853  	var query string
  4854  	if r.query != nil {
  4855  		query = "?" + r.query.Encode()
  4856  	}
  4857  	return r.Paging(ctx, "GET", query, nil, n)
  4858  }
  4859  
  4860  // Get performs GET request for UserExperienceAnalyticsMetric collection
  4861  func (r *UserExperienceAnalyticsRegressionSummaryOperatingSystemRegressionCollectionRequest) Get(ctx context.Context) ([]UserExperienceAnalyticsMetric, error) {
  4862  	return r.GetN(ctx, 0)
  4863  }
  4864  
  4865  // Add performs POST request for UserExperienceAnalyticsMetric collection
  4866  func (r *UserExperienceAnalyticsRegressionSummaryOperatingSystemRegressionCollectionRequest) Add(ctx context.Context, reqObj *UserExperienceAnalyticsMetric) (resObj *UserExperienceAnalyticsMetric, err error) {
  4867  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  4868  	return
  4869  }
  4870  
  4871  // DeviceStates returns request builder for DeviceInstallState collection
  4872  func (b *UserInstallStateSummaryRequestBuilder) DeviceStates() *UserInstallStateSummaryDeviceStatesCollectionRequestBuilder {
  4873  	bb := &UserInstallStateSummaryDeviceStatesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  4874  	bb.baseURL += "/deviceStates"
  4875  	return bb
  4876  }
  4877  
  4878  // UserInstallStateSummaryDeviceStatesCollectionRequestBuilder is request builder for DeviceInstallState collection
  4879  type UserInstallStateSummaryDeviceStatesCollectionRequestBuilder struct{ BaseRequestBuilder }
  4880  
  4881  // Request returns request for DeviceInstallState collection
  4882  func (b *UserInstallStateSummaryDeviceStatesCollectionRequestBuilder) Request() *UserInstallStateSummaryDeviceStatesCollectionRequest {
  4883  	return &UserInstallStateSummaryDeviceStatesCollectionRequest{
  4884  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  4885  	}
  4886  }
  4887  
  4888  // ID returns request builder for DeviceInstallState item
  4889  func (b *UserInstallStateSummaryDeviceStatesCollectionRequestBuilder) ID(id string) *DeviceInstallStateRequestBuilder {
  4890  	bb := &DeviceInstallStateRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  4891  	bb.baseURL += "/" + id
  4892  	return bb
  4893  }
  4894  
  4895  // UserInstallStateSummaryDeviceStatesCollectionRequest is request for DeviceInstallState collection
  4896  type UserInstallStateSummaryDeviceStatesCollectionRequest struct{ BaseRequest }
  4897  
  4898  // Paging perfoms paging operation for DeviceInstallState collection
  4899  func (r *UserInstallStateSummaryDeviceStatesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]DeviceInstallState, error) {
  4900  	req, err := r.NewJSONRequest(method, path, obj)
  4901  	if err != nil {
  4902  		return nil, err
  4903  	}
  4904  	if ctx != nil {
  4905  		req = req.WithContext(ctx)
  4906  	}
  4907  	res, err := r.client.Do(req)
  4908  	if err != nil {
  4909  		return nil, err
  4910  	}
  4911  	var values []DeviceInstallState
  4912  	for {
  4913  		if res.StatusCode != http.StatusOK {
  4914  			b, _ := ioutil.ReadAll(res.Body)
  4915  			res.Body.Close()
  4916  			errRes := &ErrorResponse{Response: res}
  4917  			err := jsonx.Unmarshal(b, errRes)
  4918  			if err != nil {
  4919  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  4920  			}
  4921  			return nil, errRes
  4922  		}
  4923  		var (
  4924  			paging Paging
  4925  			value  []DeviceInstallState
  4926  		)
  4927  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  4928  		res.Body.Close()
  4929  		if err != nil {
  4930  			return nil, err
  4931  		}
  4932  		err = jsonx.Unmarshal(paging.Value, &value)
  4933  		if err != nil {
  4934  			return nil, err
  4935  		}
  4936  		values = append(values, value...)
  4937  		if n >= 0 {
  4938  			n--
  4939  		}
  4940  		if n == 0 || len(paging.NextLink) == 0 {
  4941  			return values, nil
  4942  		}
  4943  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  4944  		if ctx != nil {
  4945  			req = req.WithContext(ctx)
  4946  		}
  4947  		res, err = r.client.Do(req)
  4948  		if err != nil {
  4949  			return nil, err
  4950  		}
  4951  	}
  4952  }
  4953  
  4954  // GetN performs GET request for DeviceInstallState collection, max N pages
  4955  func (r *UserInstallStateSummaryDeviceStatesCollectionRequest) GetN(ctx context.Context, n int) ([]DeviceInstallState, error) {
  4956  	var query string
  4957  	if r.query != nil {
  4958  		query = "?" + r.query.Encode()
  4959  	}
  4960  	return r.Paging(ctx, "GET", query, nil, n)
  4961  }
  4962  
  4963  // Get performs GET request for DeviceInstallState collection
  4964  func (r *UserInstallStateSummaryDeviceStatesCollectionRequest) Get(ctx context.Context) ([]DeviceInstallState, error) {
  4965  	return r.GetN(ctx, 0)
  4966  }
  4967  
  4968  // Add performs POST request for DeviceInstallState collection
  4969  func (r *UserInstallStateSummaryDeviceStatesCollectionRequest) Add(ctx context.Context, reqObj *DeviceInstallState) (resObj *DeviceInstallState, err error) {
  4970  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  4971  	return
  4972  }
  4973  
  4974  // InstalledApps returns request builder for TeamsAppInstallation collection
  4975  func (b *UserTeamworkRequestBuilder) InstalledApps() *UserTeamworkInstalledAppsCollectionRequestBuilder {
  4976  	bb := &UserTeamworkInstalledAppsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  4977  	bb.baseURL += "/installedApps"
  4978  	return bb
  4979  }
  4980  
  4981  // UserTeamworkInstalledAppsCollectionRequestBuilder is request builder for TeamsAppInstallation collection
  4982  type UserTeamworkInstalledAppsCollectionRequestBuilder struct{ BaseRequestBuilder }
  4983  
  4984  // Request returns request for TeamsAppInstallation collection
  4985  func (b *UserTeamworkInstalledAppsCollectionRequestBuilder) Request() *UserTeamworkInstalledAppsCollectionRequest {
  4986  	return &UserTeamworkInstalledAppsCollectionRequest{
  4987  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  4988  	}
  4989  }
  4990  
  4991  // ID returns request builder for TeamsAppInstallation item
  4992  func (b *UserTeamworkInstalledAppsCollectionRequestBuilder) ID(id string) *TeamsAppInstallationRequestBuilder {
  4993  	bb := &TeamsAppInstallationRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  4994  	bb.baseURL += "/" + id
  4995  	return bb
  4996  }
  4997  
  4998  // UserTeamworkInstalledAppsCollectionRequest is request for TeamsAppInstallation collection
  4999  type UserTeamworkInstalledAppsCollectionRequest struct{ BaseRequest }
  5000  
  5001  // Paging perfoms paging operation for TeamsAppInstallation collection
  5002  func (r *UserTeamworkInstalledAppsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]TeamsAppInstallation, error) {
  5003  	req, err := r.NewJSONRequest(method, path, obj)
  5004  	if err != nil {
  5005  		return nil, err
  5006  	}
  5007  	if ctx != nil {
  5008  		req = req.WithContext(ctx)
  5009  	}
  5010  	res, err := r.client.Do(req)
  5011  	if err != nil {
  5012  		return nil, err
  5013  	}
  5014  	var values []TeamsAppInstallation
  5015  	for {
  5016  		if res.StatusCode != http.StatusOK {
  5017  			b, _ := ioutil.ReadAll(res.Body)
  5018  			res.Body.Close()
  5019  			errRes := &ErrorResponse{Response: res}
  5020  			err := jsonx.Unmarshal(b, errRes)
  5021  			if err != nil {
  5022  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  5023  			}
  5024  			return nil, errRes
  5025  		}
  5026  		var (
  5027  			paging Paging
  5028  			value  []TeamsAppInstallation
  5029  		)
  5030  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  5031  		res.Body.Close()
  5032  		if err != nil {
  5033  			return nil, err
  5034  		}
  5035  		err = jsonx.Unmarshal(paging.Value, &value)
  5036  		if err != nil {
  5037  			return nil, err
  5038  		}
  5039  		values = append(values, value...)
  5040  		if n >= 0 {
  5041  			n--
  5042  		}
  5043  		if n == 0 || len(paging.NextLink) == 0 {
  5044  			return values, nil
  5045  		}
  5046  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  5047  		if ctx != nil {
  5048  			req = req.WithContext(ctx)
  5049  		}
  5050  		res, err = r.client.Do(req)
  5051  		if err != nil {
  5052  			return nil, err
  5053  		}
  5054  	}
  5055  }
  5056  
  5057  // GetN performs GET request for TeamsAppInstallation collection, max N pages
  5058  func (r *UserTeamworkInstalledAppsCollectionRequest) GetN(ctx context.Context, n int) ([]TeamsAppInstallation, error) {
  5059  	var query string
  5060  	if r.query != nil {
  5061  		query = "?" + r.query.Encode()
  5062  	}
  5063  	return r.Paging(ctx, "GET", query, nil, n)
  5064  }
  5065  
  5066  // Get performs GET request for TeamsAppInstallation collection
  5067  func (r *UserTeamworkInstalledAppsCollectionRequest) Get(ctx context.Context) ([]TeamsAppInstallation, error) {
  5068  	return r.GetN(ctx, 0)
  5069  }
  5070  
  5071  // Add performs POST request for TeamsAppInstallation collection
  5072  func (r *UserTeamworkInstalledAppsCollectionRequest) Add(ctx context.Context, reqObj *TeamsAppInstallation) (resObj *TeamsAppInstallation, err error) {
  5073  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  5074  	return
  5075  }