github.com/yaegashi/msgraph.go@v0.1.4/beta/ActionEducation.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  // EducationAssignmentPublishRequestParameter undocumented
    15  type EducationAssignmentPublishRequestParameter struct {
    16  }
    17  
    18  // EducationSubmissionReturnRequestParameter undocumented
    19  type EducationSubmissionReturnRequestParameter struct {
    20  }
    21  
    22  // EducationSubmissionSubmitRequestParameter undocumented
    23  type EducationSubmissionSubmitRequestParameter struct {
    24  }
    25  
    26  // EducationSubmissionUnsubmitRequestParameter undocumented
    27  type EducationSubmissionUnsubmitRequestParameter struct {
    28  }
    29  
    30  // EducationSynchronizationProfileResumeRequestParameter undocumented
    31  type EducationSynchronizationProfileResumeRequestParameter struct {
    32  }
    33  
    34  // EducationSynchronizationProfilePauseRequestParameter undocumented
    35  type EducationSynchronizationProfilePauseRequestParameter struct {
    36  }
    37  
    38  // EducationSynchronizationProfileResetRequestParameter undocumented
    39  type EducationSynchronizationProfileResetRequestParameter struct {
    40  }
    41  
    42  // EducationSynchronizationProfileStartRequestParameter undocumented
    43  type EducationSynchronizationProfileStartRequestParameter struct {
    44  }
    45  
    46  // Categories returns request builder for EducationCategory collection
    47  func (b *EducationAssignmentRequestBuilder) Categories() *EducationAssignmentCategoriesCollectionRequestBuilder {
    48  	bb := &EducationAssignmentCategoriesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
    49  	bb.baseURL += "/categories"
    50  	return bb
    51  }
    52  
    53  // EducationAssignmentCategoriesCollectionRequestBuilder is request builder for EducationCategory collection
    54  type EducationAssignmentCategoriesCollectionRequestBuilder struct{ BaseRequestBuilder }
    55  
    56  // Request returns request for EducationCategory collection
    57  func (b *EducationAssignmentCategoriesCollectionRequestBuilder) Request() *EducationAssignmentCategoriesCollectionRequest {
    58  	return &EducationAssignmentCategoriesCollectionRequest{
    59  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
    60  	}
    61  }
    62  
    63  // ID returns request builder for EducationCategory item
    64  func (b *EducationAssignmentCategoriesCollectionRequestBuilder) ID(id string) *EducationCategoryRequestBuilder {
    65  	bb := &EducationCategoryRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
    66  	bb.baseURL += "/" + id
    67  	return bb
    68  }
    69  
    70  // EducationAssignmentCategoriesCollectionRequest is request for EducationCategory collection
    71  type EducationAssignmentCategoriesCollectionRequest struct{ BaseRequest }
    72  
    73  // Paging perfoms paging operation for EducationCategory collection
    74  func (r *EducationAssignmentCategoriesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]EducationCategory, error) {
    75  	req, err := r.NewJSONRequest(method, path, obj)
    76  	if err != nil {
    77  		return nil, err
    78  	}
    79  	if ctx != nil {
    80  		req = req.WithContext(ctx)
    81  	}
    82  	res, err := r.client.Do(req)
    83  	if err != nil {
    84  		return nil, err
    85  	}
    86  	var values []EducationCategory
    87  	for {
    88  		if res.StatusCode != http.StatusOK {
    89  			b, _ := ioutil.ReadAll(res.Body)
    90  			res.Body.Close()
    91  			errRes := &ErrorResponse{Response: res}
    92  			err := jsonx.Unmarshal(b, errRes)
    93  			if err != nil {
    94  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
    95  			}
    96  			return nil, errRes
    97  		}
    98  		var (
    99  			paging Paging
   100  			value  []EducationCategory
   101  		)
   102  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
   103  		res.Body.Close()
   104  		if err != nil {
   105  			return nil, err
   106  		}
   107  		err = jsonx.Unmarshal(paging.Value, &value)
   108  		if err != nil {
   109  			return nil, err
   110  		}
   111  		values = append(values, value...)
   112  		if n >= 0 {
   113  			n--
   114  		}
   115  		if n == 0 || len(paging.NextLink) == 0 {
   116  			return values, nil
   117  		}
   118  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   119  		if ctx != nil {
   120  			req = req.WithContext(ctx)
   121  		}
   122  		res, err = r.client.Do(req)
   123  		if err != nil {
   124  			return nil, err
   125  		}
   126  	}
   127  }
   128  
   129  // GetN performs GET request for EducationCategory collection, max N pages
   130  func (r *EducationAssignmentCategoriesCollectionRequest) GetN(ctx context.Context, n int) ([]EducationCategory, error) {
   131  	var query string
   132  	if r.query != nil {
   133  		query = "?" + r.query.Encode()
   134  	}
   135  	return r.Paging(ctx, "GET", query, nil, n)
   136  }
   137  
   138  // Get performs GET request for EducationCategory collection
   139  func (r *EducationAssignmentCategoriesCollectionRequest) Get(ctx context.Context) ([]EducationCategory, error) {
   140  	return r.GetN(ctx, 0)
   141  }
   142  
   143  // Add performs POST request for EducationCategory collection
   144  func (r *EducationAssignmentCategoriesCollectionRequest) Add(ctx context.Context, reqObj *EducationCategory) (resObj *EducationCategory, err error) {
   145  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   146  	return
   147  }
   148  
   149  // Resources returns request builder for EducationAssignmentResource collection
   150  func (b *EducationAssignmentRequestBuilder) Resources() *EducationAssignmentResourcesCollectionRequestBuilder {
   151  	bb := &EducationAssignmentResourcesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   152  	bb.baseURL += "/resources"
   153  	return bb
   154  }
   155  
   156  // EducationAssignmentResourcesCollectionRequestBuilder is request builder for EducationAssignmentResource collection
   157  type EducationAssignmentResourcesCollectionRequestBuilder struct{ BaseRequestBuilder }
   158  
   159  // Request returns request for EducationAssignmentResource collection
   160  func (b *EducationAssignmentResourcesCollectionRequestBuilder) Request() *EducationAssignmentResourcesCollectionRequest {
   161  	return &EducationAssignmentResourcesCollectionRequest{
   162  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   163  	}
   164  }
   165  
   166  // ID returns request builder for EducationAssignmentResource item
   167  func (b *EducationAssignmentResourcesCollectionRequestBuilder) ID(id string) *EducationAssignmentResourceRequestBuilder {
   168  	bb := &EducationAssignmentResourceRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   169  	bb.baseURL += "/" + id
   170  	return bb
   171  }
   172  
   173  // EducationAssignmentResourcesCollectionRequest is request for EducationAssignmentResource collection
   174  type EducationAssignmentResourcesCollectionRequest struct{ BaseRequest }
   175  
   176  // Paging perfoms paging operation for EducationAssignmentResource collection
   177  func (r *EducationAssignmentResourcesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]EducationAssignmentResource, error) {
   178  	req, err := r.NewJSONRequest(method, path, obj)
   179  	if err != nil {
   180  		return nil, err
   181  	}
   182  	if ctx != nil {
   183  		req = req.WithContext(ctx)
   184  	}
   185  	res, err := r.client.Do(req)
   186  	if err != nil {
   187  		return nil, err
   188  	}
   189  	var values []EducationAssignmentResource
   190  	for {
   191  		if res.StatusCode != http.StatusOK {
   192  			b, _ := ioutil.ReadAll(res.Body)
   193  			res.Body.Close()
   194  			errRes := &ErrorResponse{Response: res}
   195  			err := jsonx.Unmarshal(b, errRes)
   196  			if err != nil {
   197  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
   198  			}
   199  			return nil, errRes
   200  		}
   201  		var (
   202  			paging Paging
   203  			value  []EducationAssignmentResource
   204  		)
   205  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
   206  		res.Body.Close()
   207  		if err != nil {
   208  			return nil, err
   209  		}
   210  		err = jsonx.Unmarshal(paging.Value, &value)
   211  		if err != nil {
   212  			return nil, err
   213  		}
   214  		values = append(values, value...)
   215  		if n >= 0 {
   216  			n--
   217  		}
   218  		if n == 0 || len(paging.NextLink) == 0 {
   219  			return values, nil
   220  		}
   221  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   222  		if ctx != nil {
   223  			req = req.WithContext(ctx)
   224  		}
   225  		res, err = r.client.Do(req)
   226  		if err != nil {
   227  			return nil, err
   228  		}
   229  	}
   230  }
   231  
   232  // GetN performs GET request for EducationAssignmentResource collection, max N pages
   233  func (r *EducationAssignmentResourcesCollectionRequest) GetN(ctx context.Context, n int) ([]EducationAssignmentResource, error) {
   234  	var query string
   235  	if r.query != nil {
   236  		query = "?" + r.query.Encode()
   237  	}
   238  	return r.Paging(ctx, "GET", query, nil, n)
   239  }
   240  
   241  // Get performs GET request for EducationAssignmentResource collection
   242  func (r *EducationAssignmentResourcesCollectionRequest) Get(ctx context.Context) ([]EducationAssignmentResource, error) {
   243  	return r.GetN(ctx, 0)
   244  }
   245  
   246  // Add performs POST request for EducationAssignmentResource collection
   247  func (r *EducationAssignmentResourcesCollectionRequest) Add(ctx context.Context, reqObj *EducationAssignmentResource) (resObj *EducationAssignmentResource, err error) {
   248  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   249  	return
   250  }
   251  
   252  // Rubric is navigation property
   253  func (b *EducationAssignmentRequestBuilder) Rubric() *EducationRubricRequestBuilder {
   254  	bb := &EducationRubricRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   255  	bb.baseURL += "/rubric"
   256  	return bb
   257  }
   258  
   259  // Submissions returns request builder for EducationSubmission collection
   260  func (b *EducationAssignmentRequestBuilder) Submissions() *EducationAssignmentSubmissionsCollectionRequestBuilder {
   261  	bb := &EducationAssignmentSubmissionsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   262  	bb.baseURL += "/submissions"
   263  	return bb
   264  }
   265  
   266  // EducationAssignmentSubmissionsCollectionRequestBuilder is request builder for EducationSubmission collection
   267  type EducationAssignmentSubmissionsCollectionRequestBuilder struct{ BaseRequestBuilder }
   268  
   269  // Request returns request for EducationSubmission collection
   270  func (b *EducationAssignmentSubmissionsCollectionRequestBuilder) Request() *EducationAssignmentSubmissionsCollectionRequest {
   271  	return &EducationAssignmentSubmissionsCollectionRequest{
   272  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   273  	}
   274  }
   275  
   276  // ID returns request builder for EducationSubmission item
   277  func (b *EducationAssignmentSubmissionsCollectionRequestBuilder) ID(id string) *EducationSubmissionRequestBuilder {
   278  	bb := &EducationSubmissionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   279  	bb.baseURL += "/" + id
   280  	return bb
   281  }
   282  
   283  // EducationAssignmentSubmissionsCollectionRequest is request for EducationSubmission collection
   284  type EducationAssignmentSubmissionsCollectionRequest struct{ BaseRequest }
   285  
   286  // Paging perfoms paging operation for EducationSubmission collection
   287  func (r *EducationAssignmentSubmissionsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]EducationSubmission, error) {
   288  	req, err := r.NewJSONRequest(method, path, obj)
   289  	if err != nil {
   290  		return nil, err
   291  	}
   292  	if ctx != nil {
   293  		req = req.WithContext(ctx)
   294  	}
   295  	res, err := r.client.Do(req)
   296  	if err != nil {
   297  		return nil, err
   298  	}
   299  	var values []EducationSubmission
   300  	for {
   301  		if res.StatusCode != http.StatusOK {
   302  			b, _ := ioutil.ReadAll(res.Body)
   303  			res.Body.Close()
   304  			errRes := &ErrorResponse{Response: res}
   305  			err := jsonx.Unmarshal(b, errRes)
   306  			if err != nil {
   307  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
   308  			}
   309  			return nil, errRes
   310  		}
   311  		var (
   312  			paging Paging
   313  			value  []EducationSubmission
   314  		)
   315  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
   316  		res.Body.Close()
   317  		if err != nil {
   318  			return nil, err
   319  		}
   320  		err = jsonx.Unmarshal(paging.Value, &value)
   321  		if err != nil {
   322  			return nil, err
   323  		}
   324  		values = append(values, value...)
   325  		if n >= 0 {
   326  			n--
   327  		}
   328  		if n == 0 || len(paging.NextLink) == 0 {
   329  			return values, nil
   330  		}
   331  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   332  		if ctx != nil {
   333  			req = req.WithContext(ctx)
   334  		}
   335  		res, err = r.client.Do(req)
   336  		if err != nil {
   337  			return nil, err
   338  		}
   339  	}
   340  }
   341  
   342  // GetN performs GET request for EducationSubmission collection, max N pages
   343  func (r *EducationAssignmentSubmissionsCollectionRequest) GetN(ctx context.Context, n int) ([]EducationSubmission, error) {
   344  	var query string
   345  	if r.query != nil {
   346  		query = "?" + r.query.Encode()
   347  	}
   348  	return r.Paging(ctx, "GET", query, nil, n)
   349  }
   350  
   351  // Get performs GET request for EducationSubmission collection
   352  func (r *EducationAssignmentSubmissionsCollectionRequest) Get(ctx context.Context) ([]EducationSubmission, error) {
   353  	return r.GetN(ctx, 0)
   354  }
   355  
   356  // Add performs POST request for EducationSubmission collection
   357  func (r *EducationAssignmentSubmissionsCollectionRequest) Add(ctx context.Context, reqObj *EducationSubmission) (resObj *EducationSubmission, err error) {
   358  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   359  	return
   360  }
   361  
   362  // AssignmentCategories returns request builder for EducationCategory collection
   363  func (b *EducationClassRequestBuilder) AssignmentCategories() *EducationClassAssignmentCategoriesCollectionRequestBuilder {
   364  	bb := &EducationClassAssignmentCategoriesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   365  	bb.baseURL += "/assignmentCategories"
   366  	return bb
   367  }
   368  
   369  // EducationClassAssignmentCategoriesCollectionRequestBuilder is request builder for EducationCategory collection
   370  type EducationClassAssignmentCategoriesCollectionRequestBuilder struct{ BaseRequestBuilder }
   371  
   372  // Request returns request for EducationCategory collection
   373  func (b *EducationClassAssignmentCategoriesCollectionRequestBuilder) Request() *EducationClassAssignmentCategoriesCollectionRequest {
   374  	return &EducationClassAssignmentCategoriesCollectionRequest{
   375  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   376  	}
   377  }
   378  
   379  // ID returns request builder for EducationCategory item
   380  func (b *EducationClassAssignmentCategoriesCollectionRequestBuilder) ID(id string) *EducationCategoryRequestBuilder {
   381  	bb := &EducationCategoryRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   382  	bb.baseURL += "/" + id
   383  	return bb
   384  }
   385  
   386  // EducationClassAssignmentCategoriesCollectionRequest is request for EducationCategory collection
   387  type EducationClassAssignmentCategoriesCollectionRequest struct{ BaseRequest }
   388  
   389  // Paging perfoms paging operation for EducationCategory collection
   390  func (r *EducationClassAssignmentCategoriesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]EducationCategory, error) {
   391  	req, err := r.NewJSONRequest(method, path, obj)
   392  	if err != nil {
   393  		return nil, err
   394  	}
   395  	if ctx != nil {
   396  		req = req.WithContext(ctx)
   397  	}
   398  	res, err := r.client.Do(req)
   399  	if err != nil {
   400  		return nil, err
   401  	}
   402  	var values []EducationCategory
   403  	for {
   404  		if res.StatusCode != http.StatusOK {
   405  			b, _ := ioutil.ReadAll(res.Body)
   406  			res.Body.Close()
   407  			errRes := &ErrorResponse{Response: res}
   408  			err := jsonx.Unmarshal(b, errRes)
   409  			if err != nil {
   410  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
   411  			}
   412  			return nil, errRes
   413  		}
   414  		var (
   415  			paging Paging
   416  			value  []EducationCategory
   417  		)
   418  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
   419  		res.Body.Close()
   420  		if err != nil {
   421  			return nil, err
   422  		}
   423  		err = jsonx.Unmarshal(paging.Value, &value)
   424  		if err != nil {
   425  			return nil, err
   426  		}
   427  		values = append(values, value...)
   428  		if n >= 0 {
   429  			n--
   430  		}
   431  		if n == 0 || len(paging.NextLink) == 0 {
   432  			return values, nil
   433  		}
   434  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   435  		if ctx != nil {
   436  			req = req.WithContext(ctx)
   437  		}
   438  		res, err = r.client.Do(req)
   439  		if err != nil {
   440  			return nil, err
   441  		}
   442  	}
   443  }
   444  
   445  // GetN performs GET request for EducationCategory collection, max N pages
   446  func (r *EducationClassAssignmentCategoriesCollectionRequest) GetN(ctx context.Context, n int) ([]EducationCategory, error) {
   447  	var query string
   448  	if r.query != nil {
   449  		query = "?" + r.query.Encode()
   450  	}
   451  	return r.Paging(ctx, "GET", query, nil, n)
   452  }
   453  
   454  // Get performs GET request for EducationCategory collection
   455  func (r *EducationClassAssignmentCategoriesCollectionRequest) Get(ctx context.Context) ([]EducationCategory, error) {
   456  	return r.GetN(ctx, 0)
   457  }
   458  
   459  // Add performs POST request for EducationCategory collection
   460  func (r *EducationClassAssignmentCategoriesCollectionRequest) Add(ctx context.Context, reqObj *EducationCategory) (resObj *EducationCategory, err error) {
   461  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   462  	return
   463  }
   464  
   465  // Assignments returns request builder for EducationAssignment collection
   466  func (b *EducationClassRequestBuilder) Assignments() *EducationClassAssignmentsCollectionRequestBuilder {
   467  	bb := &EducationClassAssignmentsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   468  	bb.baseURL += "/assignments"
   469  	return bb
   470  }
   471  
   472  // EducationClassAssignmentsCollectionRequestBuilder is request builder for EducationAssignment collection
   473  type EducationClassAssignmentsCollectionRequestBuilder struct{ BaseRequestBuilder }
   474  
   475  // Request returns request for EducationAssignment collection
   476  func (b *EducationClassAssignmentsCollectionRequestBuilder) Request() *EducationClassAssignmentsCollectionRequest {
   477  	return &EducationClassAssignmentsCollectionRequest{
   478  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   479  	}
   480  }
   481  
   482  // ID returns request builder for EducationAssignment item
   483  func (b *EducationClassAssignmentsCollectionRequestBuilder) ID(id string) *EducationAssignmentRequestBuilder {
   484  	bb := &EducationAssignmentRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   485  	bb.baseURL += "/" + id
   486  	return bb
   487  }
   488  
   489  // EducationClassAssignmentsCollectionRequest is request for EducationAssignment collection
   490  type EducationClassAssignmentsCollectionRequest struct{ BaseRequest }
   491  
   492  // Paging perfoms paging operation for EducationAssignment collection
   493  func (r *EducationClassAssignmentsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]EducationAssignment, error) {
   494  	req, err := r.NewJSONRequest(method, path, obj)
   495  	if err != nil {
   496  		return nil, err
   497  	}
   498  	if ctx != nil {
   499  		req = req.WithContext(ctx)
   500  	}
   501  	res, err := r.client.Do(req)
   502  	if err != nil {
   503  		return nil, err
   504  	}
   505  	var values []EducationAssignment
   506  	for {
   507  		if res.StatusCode != http.StatusOK {
   508  			b, _ := ioutil.ReadAll(res.Body)
   509  			res.Body.Close()
   510  			errRes := &ErrorResponse{Response: res}
   511  			err := jsonx.Unmarshal(b, errRes)
   512  			if err != nil {
   513  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
   514  			}
   515  			return nil, errRes
   516  		}
   517  		var (
   518  			paging Paging
   519  			value  []EducationAssignment
   520  		)
   521  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
   522  		res.Body.Close()
   523  		if err != nil {
   524  			return nil, err
   525  		}
   526  		err = jsonx.Unmarshal(paging.Value, &value)
   527  		if err != nil {
   528  			return nil, err
   529  		}
   530  		values = append(values, value...)
   531  		if n >= 0 {
   532  			n--
   533  		}
   534  		if n == 0 || len(paging.NextLink) == 0 {
   535  			return values, nil
   536  		}
   537  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   538  		if ctx != nil {
   539  			req = req.WithContext(ctx)
   540  		}
   541  		res, err = r.client.Do(req)
   542  		if err != nil {
   543  			return nil, err
   544  		}
   545  	}
   546  }
   547  
   548  // GetN performs GET request for EducationAssignment collection, max N pages
   549  func (r *EducationClassAssignmentsCollectionRequest) GetN(ctx context.Context, n int) ([]EducationAssignment, error) {
   550  	var query string
   551  	if r.query != nil {
   552  		query = "?" + r.query.Encode()
   553  	}
   554  	return r.Paging(ctx, "GET", query, nil, n)
   555  }
   556  
   557  // Get performs GET request for EducationAssignment collection
   558  func (r *EducationClassAssignmentsCollectionRequest) Get(ctx context.Context) ([]EducationAssignment, error) {
   559  	return r.GetN(ctx, 0)
   560  }
   561  
   562  // Add performs POST request for EducationAssignment collection
   563  func (r *EducationClassAssignmentsCollectionRequest) Add(ctx context.Context, reqObj *EducationAssignment) (resObj *EducationAssignment, err error) {
   564  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   565  	return
   566  }
   567  
   568  // Group is navigation property
   569  func (b *EducationClassRequestBuilder) Group() *GroupRequestBuilder {
   570  	bb := &GroupRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   571  	bb.baseURL += "/group"
   572  	return bb
   573  }
   574  
   575  // Members returns request builder for EducationUser collection
   576  func (b *EducationClassRequestBuilder) Members() *EducationClassMembersCollectionRequestBuilder {
   577  	bb := &EducationClassMembersCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   578  	bb.baseURL += "/members"
   579  	return bb
   580  }
   581  
   582  // EducationClassMembersCollectionRequestBuilder is request builder for EducationUser collection
   583  type EducationClassMembersCollectionRequestBuilder struct{ BaseRequestBuilder }
   584  
   585  // Request returns request for EducationUser collection
   586  func (b *EducationClassMembersCollectionRequestBuilder) Request() *EducationClassMembersCollectionRequest {
   587  	return &EducationClassMembersCollectionRequest{
   588  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   589  	}
   590  }
   591  
   592  // ID returns request builder for EducationUser item
   593  func (b *EducationClassMembersCollectionRequestBuilder) ID(id string) *EducationUserRequestBuilder {
   594  	bb := &EducationUserRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   595  	bb.baseURL += "/" + id
   596  	return bb
   597  }
   598  
   599  // EducationClassMembersCollectionRequest is request for EducationUser collection
   600  type EducationClassMembersCollectionRequest struct{ BaseRequest }
   601  
   602  // Paging perfoms paging operation for EducationUser collection
   603  func (r *EducationClassMembersCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]EducationUser, error) {
   604  	req, err := r.NewJSONRequest(method, path, obj)
   605  	if err != nil {
   606  		return nil, err
   607  	}
   608  	if ctx != nil {
   609  		req = req.WithContext(ctx)
   610  	}
   611  	res, err := r.client.Do(req)
   612  	if err != nil {
   613  		return nil, err
   614  	}
   615  	var values []EducationUser
   616  	for {
   617  		if res.StatusCode != http.StatusOK {
   618  			b, _ := ioutil.ReadAll(res.Body)
   619  			res.Body.Close()
   620  			errRes := &ErrorResponse{Response: res}
   621  			err := jsonx.Unmarshal(b, errRes)
   622  			if err != nil {
   623  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
   624  			}
   625  			return nil, errRes
   626  		}
   627  		var (
   628  			paging Paging
   629  			value  []EducationUser
   630  		)
   631  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
   632  		res.Body.Close()
   633  		if err != nil {
   634  			return nil, err
   635  		}
   636  		err = jsonx.Unmarshal(paging.Value, &value)
   637  		if err != nil {
   638  			return nil, err
   639  		}
   640  		values = append(values, value...)
   641  		if n >= 0 {
   642  			n--
   643  		}
   644  		if n == 0 || len(paging.NextLink) == 0 {
   645  			return values, nil
   646  		}
   647  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   648  		if ctx != nil {
   649  			req = req.WithContext(ctx)
   650  		}
   651  		res, err = r.client.Do(req)
   652  		if err != nil {
   653  			return nil, err
   654  		}
   655  	}
   656  }
   657  
   658  // GetN performs GET request for EducationUser collection, max N pages
   659  func (r *EducationClassMembersCollectionRequest) GetN(ctx context.Context, n int) ([]EducationUser, error) {
   660  	var query string
   661  	if r.query != nil {
   662  		query = "?" + r.query.Encode()
   663  	}
   664  	return r.Paging(ctx, "GET", query, nil, n)
   665  }
   666  
   667  // Get performs GET request for EducationUser collection
   668  func (r *EducationClassMembersCollectionRequest) Get(ctx context.Context) ([]EducationUser, error) {
   669  	return r.GetN(ctx, 0)
   670  }
   671  
   672  // Add performs POST request for EducationUser collection
   673  func (r *EducationClassMembersCollectionRequest) Add(ctx context.Context, reqObj *EducationUser) (resObj *EducationUser, err error) {
   674  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   675  	return
   676  }
   677  
   678  // Schools returns request builder for EducationSchool collection
   679  func (b *EducationClassRequestBuilder) Schools() *EducationClassSchoolsCollectionRequestBuilder {
   680  	bb := &EducationClassSchoolsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   681  	bb.baseURL += "/schools"
   682  	return bb
   683  }
   684  
   685  // EducationClassSchoolsCollectionRequestBuilder is request builder for EducationSchool collection
   686  type EducationClassSchoolsCollectionRequestBuilder struct{ BaseRequestBuilder }
   687  
   688  // Request returns request for EducationSchool collection
   689  func (b *EducationClassSchoolsCollectionRequestBuilder) Request() *EducationClassSchoolsCollectionRequest {
   690  	return &EducationClassSchoolsCollectionRequest{
   691  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   692  	}
   693  }
   694  
   695  // ID returns request builder for EducationSchool item
   696  func (b *EducationClassSchoolsCollectionRequestBuilder) ID(id string) *EducationSchoolRequestBuilder {
   697  	bb := &EducationSchoolRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   698  	bb.baseURL += "/" + id
   699  	return bb
   700  }
   701  
   702  // EducationClassSchoolsCollectionRequest is request for EducationSchool collection
   703  type EducationClassSchoolsCollectionRequest struct{ BaseRequest }
   704  
   705  // Paging perfoms paging operation for EducationSchool collection
   706  func (r *EducationClassSchoolsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]EducationSchool, error) {
   707  	req, err := r.NewJSONRequest(method, path, obj)
   708  	if err != nil {
   709  		return nil, err
   710  	}
   711  	if ctx != nil {
   712  		req = req.WithContext(ctx)
   713  	}
   714  	res, err := r.client.Do(req)
   715  	if err != nil {
   716  		return nil, err
   717  	}
   718  	var values []EducationSchool
   719  	for {
   720  		if res.StatusCode != http.StatusOK {
   721  			b, _ := ioutil.ReadAll(res.Body)
   722  			res.Body.Close()
   723  			errRes := &ErrorResponse{Response: res}
   724  			err := jsonx.Unmarshal(b, errRes)
   725  			if err != nil {
   726  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
   727  			}
   728  			return nil, errRes
   729  		}
   730  		var (
   731  			paging Paging
   732  			value  []EducationSchool
   733  		)
   734  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
   735  		res.Body.Close()
   736  		if err != nil {
   737  			return nil, err
   738  		}
   739  		err = jsonx.Unmarshal(paging.Value, &value)
   740  		if err != nil {
   741  			return nil, err
   742  		}
   743  		values = append(values, value...)
   744  		if n >= 0 {
   745  			n--
   746  		}
   747  		if n == 0 || len(paging.NextLink) == 0 {
   748  			return values, nil
   749  		}
   750  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   751  		if ctx != nil {
   752  			req = req.WithContext(ctx)
   753  		}
   754  		res, err = r.client.Do(req)
   755  		if err != nil {
   756  			return nil, err
   757  		}
   758  	}
   759  }
   760  
   761  // GetN performs GET request for EducationSchool collection, max N pages
   762  func (r *EducationClassSchoolsCollectionRequest) GetN(ctx context.Context, n int) ([]EducationSchool, error) {
   763  	var query string
   764  	if r.query != nil {
   765  		query = "?" + r.query.Encode()
   766  	}
   767  	return r.Paging(ctx, "GET", query, nil, n)
   768  }
   769  
   770  // Get performs GET request for EducationSchool collection
   771  func (r *EducationClassSchoolsCollectionRequest) Get(ctx context.Context) ([]EducationSchool, error) {
   772  	return r.GetN(ctx, 0)
   773  }
   774  
   775  // Add performs POST request for EducationSchool collection
   776  func (r *EducationClassSchoolsCollectionRequest) Add(ctx context.Context, reqObj *EducationSchool) (resObj *EducationSchool, err error) {
   777  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   778  	return
   779  }
   780  
   781  // Teachers returns request builder for EducationUser collection
   782  func (b *EducationClassRequestBuilder) Teachers() *EducationClassTeachersCollectionRequestBuilder {
   783  	bb := &EducationClassTeachersCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   784  	bb.baseURL += "/teachers"
   785  	return bb
   786  }
   787  
   788  // EducationClassTeachersCollectionRequestBuilder is request builder for EducationUser collection
   789  type EducationClassTeachersCollectionRequestBuilder struct{ BaseRequestBuilder }
   790  
   791  // Request returns request for EducationUser collection
   792  func (b *EducationClassTeachersCollectionRequestBuilder) Request() *EducationClassTeachersCollectionRequest {
   793  	return &EducationClassTeachersCollectionRequest{
   794  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   795  	}
   796  }
   797  
   798  // ID returns request builder for EducationUser item
   799  func (b *EducationClassTeachersCollectionRequestBuilder) ID(id string) *EducationUserRequestBuilder {
   800  	bb := &EducationUserRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   801  	bb.baseURL += "/" + id
   802  	return bb
   803  }
   804  
   805  // EducationClassTeachersCollectionRequest is request for EducationUser collection
   806  type EducationClassTeachersCollectionRequest struct{ BaseRequest }
   807  
   808  // Paging perfoms paging operation for EducationUser collection
   809  func (r *EducationClassTeachersCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]EducationUser, error) {
   810  	req, err := r.NewJSONRequest(method, path, obj)
   811  	if err != nil {
   812  		return nil, err
   813  	}
   814  	if ctx != nil {
   815  		req = req.WithContext(ctx)
   816  	}
   817  	res, err := r.client.Do(req)
   818  	if err != nil {
   819  		return nil, err
   820  	}
   821  	var values []EducationUser
   822  	for {
   823  		if res.StatusCode != http.StatusOK {
   824  			b, _ := ioutil.ReadAll(res.Body)
   825  			res.Body.Close()
   826  			errRes := &ErrorResponse{Response: res}
   827  			err := jsonx.Unmarshal(b, errRes)
   828  			if err != nil {
   829  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
   830  			}
   831  			return nil, errRes
   832  		}
   833  		var (
   834  			paging Paging
   835  			value  []EducationUser
   836  		)
   837  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
   838  		res.Body.Close()
   839  		if err != nil {
   840  			return nil, err
   841  		}
   842  		err = jsonx.Unmarshal(paging.Value, &value)
   843  		if err != nil {
   844  			return nil, err
   845  		}
   846  		values = append(values, value...)
   847  		if n >= 0 {
   848  			n--
   849  		}
   850  		if n == 0 || len(paging.NextLink) == 0 {
   851  			return values, nil
   852  		}
   853  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   854  		if ctx != nil {
   855  			req = req.WithContext(ctx)
   856  		}
   857  		res, err = r.client.Do(req)
   858  		if err != nil {
   859  			return nil, err
   860  		}
   861  	}
   862  }
   863  
   864  // GetN performs GET request for EducationUser collection, max N pages
   865  func (r *EducationClassTeachersCollectionRequest) GetN(ctx context.Context, n int) ([]EducationUser, error) {
   866  	var query string
   867  	if r.query != nil {
   868  		query = "?" + r.query.Encode()
   869  	}
   870  	return r.Paging(ctx, "GET", query, nil, n)
   871  }
   872  
   873  // Get performs GET request for EducationUser collection
   874  func (r *EducationClassTeachersCollectionRequest) Get(ctx context.Context) ([]EducationUser, error) {
   875  	return r.GetN(ctx, 0)
   876  }
   877  
   878  // Add performs POST request for EducationUser collection
   879  func (r *EducationClassTeachersCollectionRequest) Add(ctx context.Context, reqObj *EducationUser) (resObj *EducationUser, err error) {
   880  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   881  	return
   882  }
   883  
   884  // Classes returns request builder for EducationClass collection
   885  func (b *EducationRootRequestBuilder) Classes() *EducationRootClassesCollectionRequestBuilder {
   886  	bb := &EducationRootClassesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   887  	bb.baseURL += "/classes"
   888  	return bb
   889  }
   890  
   891  // EducationRootClassesCollectionRequestBuilder is request builder for EducationClass collection
   892  type EducationRootClassesCollectionRequestBuilder struct{ BaseRequestBuilder }
   893  
   894  // Request returns request for EducationClass collection
   895  func (b *EducationRootClassesCollectionRequestBuilder) Request() *EducationRootClassesCollectionRequest {
   896  	return &EducationRootClassesCollectionRequest{
   897  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   898  	}
   899  }
   900  
   901  // ID returns request builder for EducationClass item
   902  func (b *EducationRootClassesCollectionRequestBuilder) ID(id string) *EducationClassRequestBuilder {
   903  	bb := &EducationClassRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   904  	bb.baseURL += "/" + id
   905  	return bb
   906  }
   907  
   908  // EducationRootClassesCollectionRequest is request for EducationClass collection
   909  type EducationRootClassesCollectionRequest struct{ BaseRequest }
   910  
   911  // Paging perfoms paging operation for EducationClass collection
   912  func (r *EducationRootClassesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]EducationClass, error) {
   913  	req, err := r.NewJSONRequest(method, path, obj)
   914  	if err != nil {
   915  		return nil, err
   916  	}
   917  	if ctx != nil {
   918  		req = req.WithContext(ctx)
   919  	}
   920  	res, err := r.client.Do(req)
   921  	if err != nil {
   922  		return nil, err
   923  	}
   924  	var values []EducationClass
   925  	for {
   926  		if res.StatusCode != http.StatusOK {
   927  			b, _ := ioutil.ReadAll(res.Body)
   928  			res.Body.Close()
   929  			errRes := &ErrorResponse{Response: res}
   930  			err := jsonx.Unmarshal(b, errRes)
   931  			if err != nil {
   932  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
   933  			}
   934  			return nil, errRes
   935  		}
   936  		var (
   937  			paging Paging
   938  			value  []EducationClass
   939  		)
   940  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
   941  		res.Body.Close()
   942  		if err != nil {
   943  			return nil, err
   944  		}
   945  		err = jsonx.Unmarshal(paging.Value, &value)
   946  		if err != nil {
   947  			return nil, err
   948  		}
   949  		values = append(values, value...)
   950  		if n >= 0 {
   951  			n--
   952  		}
   953  		if n == 0 || len(paging.NextLink) == 0 {
   954  			return values, nil
   955  		}
   956  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   957  		if ctx != nil {
   958  			req = req.WithContext(ctx)
   959  		}
   960  		res, err = r.client.Do(req)
   961  		if err != nil {
   962  			return nil, err
   963  		}
   964  	}
   965  }
   966  
   967  // GetN performs GET request for EducationClass collection, max N pages
   968  func (r *EducationRootClassesCollectionRequest) GetN(ctx context.Context, n int) ([]EducationClass, error) {
   969  	var query string
   970  	if r.query != nil {
   971  		query = "?" + r.query.Encode()
   972  	}
   973  	return r.Paging(ctx, "GET", query, nil, n)
   974  }
   975  
   976  // Get performs GET request for EducationClass collection
   977  func (r *EducationRootClassesCollectionRequest) Get(ctx context.Context) ([]EducationClass, error) {
   978  	return r.GetN(ctx, 0)
   979  }
   980  
   981  // Add performs POST request for EducationClass collection
   982  func (r *EducationRootClassesCollectionRequest) Add(ctx context.Context, reqObj *EducationClass) (resObj *EducationClass, err error) {
   983  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   984  	return
   985  }
   986  
   987  // Me is navigation property
   988  func (b *EducationRootRequestBuilder) Me() *EducationUserRequestBuilder {
   989  	bb := &EducationUserRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   990  	bb.baseURL += "/me"
   991  	return bb
   992  }
   993  
   994  // Schools returns request builder for EducationSchool collection
   995  func (b *EducationRootRequestBuilder) Schools() *EducationRootSchoolsCollectionRequestBuilder {
   996  	bb := &EducationRootSchoolsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   997  	bb.baseURL += "/schools"
   998  	return bb
   999  }
  1000  
  1001  // EducationRootSchoolsCollectionRequestBuilder is request builder for EducationSchool collection
  1002  type EducationRootSchoolsCollectionRequestBuilder struct{ BaseRequestBuilder }
  1003  
  1004  // Request returns request for EducationSchool collection
  1005  func (b *EducationRootSchoolsCollectionRequestBuilder) Request() *EducationRootSchoolsCollectionRequest {
  1006  	return &EducationRootSchoolsCollectionRequest{
  1007  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  1008  	}
  1009  }
  1010  
  1011  // ID returns request builder for EducationSchool item
  1012  func (b *EducationRootSchoolsCollectionRequestBuilder) ID(id string) *EducationSchoolRequestBuilder {
  1013  	bb := &EducationSchoolRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1014  	bb.baseURL += "/" + id
  1015  	return bb
  1016  }
  1017  
  1018  // EducationRootSchoolsCollectionRequest is request for EducationSchool collection
  1019  type EducationRootSchoolsCollectionRequest struct{ BaseRequest }
  1020  
  1021  // Paging perfoms paging operation for EducationSchool collection
  1022  func (r *EducationRootSchoolsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]EducationSchool, error) {
  1023  	req, err := r.NewJSONRequest(method, path, obj)
  1024  	if err != nil {
  1025  		return nil, err
  1026  	}
  1027  	if ctx != nil {
  1028  		req = req.WithContext(ctx)
  1029  	}
  1030  	res, err := r.client.Do(req)
  1031  	if err != nil {
  1032  		return nil, err
  1033  	}
  1034  	var values []EducationSchool
  1035  	for {
  1036  		if res.StatusCode != http.StatusOK {
  1037  			b, _ := ioutil.ReadAll(res.Body)
  1038  			res.Body.Close()
  1039  			errRes := &ErrorResponse{Response: res}
  1040  			err := jsonx.Unmarshal(b, errRes)
  1041  			if err != nil {
  1042  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  1043  			}
  1044  			return nil, errRes
  1045  		}
  1046  		var (
  1047  			paging Paging
  1048  			value  []EducationSchool
  1049  		)
  1050  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  1051  		res.Body.Close()
  1052  		if err != nil {
  1053  			return nil, err
  1054  		}
  1055  		err = jsonx.Unmarshal(paging.Value, &value)
  1056  		if err != nil {
  1057  			return nil, err
  1058  		}
  1059  		values = append(values, value...)
  1060  		if n >= 0 {
  1061  			n--
  1062  		}
  1063  		if n == 0 || len(paging.NextLink) == 0 {
  1064  			return values, nil
  1065  		}
  1066  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  1067  		if ctx != nil {
  1068  			req = req.WithContext(ctx)
  1069  		}
  1070  		res, err = r.client.Do(req)
  1071  		if err != nil {
  1072  			return nil, err
  1073  		}
  1074  	}
  1075  }
  1076  
  1077  // GetN performs GET request for EducationSchool collection, max N pages
  1078  func (r *EducationRootSchoolsCollectionRequest) GetN(ctx context.Context, n int) ([]EducationSchool, error) {
  1079  	var query string
  1080  	if r.query != nil {
  1081  		query = "?" + r.query.Encode()
  1082  	}
  1083  	return r.Paging(ctx, "GET", query, nil, n)
  1084  }
  1085  
  1086  // Get performs GET request for EducationSchool collection
  1087  func (r *EducationRootSchoolsCollectionRequest) Get(ctx context.Context) ([]EducationSchool, error) {
  1088  	return r.GetN(ctx, 0)
  1089  }
  1090  
  1091  // Add performs POST request for EducationSchool collection
  1092  func (r *EducationRootSchoolsCollectionRequest) Add(ctx context.Context, reqObj *EducationSchool) (resObj *EducationSchool, err error) {
  1093  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  1094  	return
  1095  }
  1096  
  1097  // SynchronizationProfiles returns request builder for EducationSynchronizationProfile collection
  1098  func (b *EducationRootRequestBuilder) SynchronizationProfiles() *EducationRootSynchronizationProfilesCollectionRequestBuilder {
  1099  	bb := &EducationRootSynchronizationProfilesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1100  	bb.baseURL += "/synchronizationProfiles"
  1101  	return bb
  1102  }
  1103  
  1104  // EducationRootSynchronizationProfilesCollectionRequestBuilder is request builder for EducationSynchronizationProfile collection
  1105  type EducationRootSynchronizationProfilesCollectionRequestBuilder struct{ BaseRequestBuilder }
  1106  
  1107  // Request returns request for EducationSynchronizationProfile collection
  1108  func (b *EducationRootSynchronizationProfilesCollectionRequestBuilder) Request() *EducationRootSynchronizationProfilesCollectionRequest {
  1109  	return &EducationRootSynchronizationProfilesCollectionRequest{
  1110  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  1111  	}
  1112  }
  1113  
  1114  // ID returns request builder for EducationSynchronizationProfile item
  1115  func (b *EducationRootSynchronizationProfilesCollectionRequestBuilder) ID(id string) *EducationSynchronizationProfileRequestBuilder {
  1116  	bb := &EducationSynchronizationProfileRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1117  	bb.baseURL += "/" + id
  1118  	return bb
  1119  }
  1120  
  1121  // EducationRootSynchronizationProfilesCollectionRequest is request for EducationSynchronizationProfile collection
  1122  type EducationRootSynchronizationProfilesCollectionRequest struct{ BaseRequest }
  1123  
  1124  // Paging perfoms paging operation for EducationSynchronizationProfile collection
  1125  func (r *EducationRootSynchronizationProfilesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]EducationSynchronizationProfile, error) {
  1126  	req, err := r.NewJSONRequest(method, path, obj)
  1127  	if err != nil {
  1128  		return nil, err
  1129  	}
  1130  	if ctx != nil {
  1131  		req = req.WithContext(ctx)
  1132  	}
  1133  	res, err := r.client.Do(req)
  1134  	if err != nil {
  1135  		return nil, err
  1136  	}
  1137  	var values []EducationSynchronizationProfile
  1138  	for {
  1139  		if res.StatusCode != http.StatusOK {
  1140  			b, _ := ioutil.ReadAll(res.Body)
  1141  			res.Body.Close()
  1142  			errRes := &ErrorResponse{Response: res}
  1143  			err := jsonx.Unmarshal(b, errRes)
  1144  			if err != nil {
  1145  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  1146  			}
  1147  			return nil, errRes
  1148  		}
  1149  		var (
  1150  			paging Paging
  1151  			value  []EducationSynchronizationProfile
  1152  		)
  1153  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  1154  		res.Body.Close()
  1155  		if err != nil {
  1156  			return nil, err
  1157  		}
  1158  		err = jsonx.Unmarshal(paging.Value, &value)
  1159  		if err != nil {
  1160  			return nil, err
  1161  		}
  1162  		values = append(values, value...)
  1163  		if n >= 0 {
  1164  			n--
  1165  		}
  1166  		if n == 0 || len(paging.NextLink) == 0 {
  1167  			return values, nil
  1168  		}
  1169  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  1170  		if ctx != nil {
  1171  			req = req.WithContext(ctx)
  1172  		}
  1173  		res, err = r.client.Do(req)
  1174  		if err != nil {
  1175  			return nil, err
  1176  		}
  1177  	}
  1178  }
  1179  
  1180  // GetN performs GET request for EducationSynchronizationProfile collection, max N pages
  1181  func (r *EducationRootSynchronizationProfilesCollectionRequest) GetN(ctx context.Context, n int) ([]EducationSynchronizationProfile, error) {
  1182  	var query string
  1183  	if r.query != nil {
  1184  		query = "?" + r.query.Encode()
  1185  	}
  1186  	return r.Paging(ctx, "GET", query, nil, n)
  1187  }
  1188  
  1189  // Get performs GET request for EducationSynchronizationProfile collection
  1190  func (r *EducationRootSynchronizationProfilesCollectionRequest) Get(ctx context.Context) ([]EducationSynchronizationProfile, error) {
  1191  	return r.GetN(ctx, 0)
  1192  }
  1193  
  1194  // Add performs POST request for EducationSynchronizationProfile collection
  1195  func (r *EducationRootSynchronizationProfilesCollectionRequest) Add(ctx context.Context, reqObj *EducationSynchronizationProfile) (resObj *EducationSynchronizationProfile, err error) {
  1196  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  1197  	return
  1198  }
  1199  
  1200  // Users returns request builder for EducationUser collection
  1201  func (b *EducationRootRequestBuilder) Users() *EducationRootUsersCollectionRequestBuilder {
  1202  	bb := &EducationRootUsersCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1203  	bb.baseURL += "/users"
  1204  	return bb
  1205  }
  1206  
  1207  // EducationRootUsersCollectionRequestBuilder is request builder for EducationUser collection
  1208  type EducationRootUsersCollectionRequestBuilder struct{ BaseRequestBuilder }
  1209  
  1210  // Request returns request for EducationUser collection
  1211  func (b *EducationRootUsersCollectionRequestBuilder) Request() *EducationRootUsersCollectionRequest {
  1212  	return &EducationRootUsersCollectionRequest{
  1213  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  1214  	}
  1215  }
  1216  
  1217  // ID returns request builder for EducationUser item
  1218  func (b *EducationRootUsersCollectionRequestBuilder) ID(id string) *EducationUserRequestBuilder {
  1219  	bb := &EducationUserRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1220  	bb.baseURL += "/" + id
  1221  	return bb
  1222  }
  1223  
  1224  // EducationRootUsersCollectionRequest is request for EducationUser collection
  1225  type EducationRootUsersCollectionRequest struct{ BaseRequest }
  1226  
  1227  // Paging perfoms paging operation for EducationUser collection
  1228  func (r *EducationRootUsersCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]EducationUser, error) {
  1229  	req, err := r.NewJSONRequest(method, path, obj)
  1230  	if err != nil {
  1231  		return nil, err
  1232  	}
  1233  	if ctx != nil {
  1234  		req = req.WithContext(ctx)
  1235  	}
  1236  	res, err := r.client.Do(req)
  1237  	if err != nil {
  1238  		return nil, err
  1239  	}
  1240  	var values []EducationUser
  1241  	for {
  1242  		if res.StatusCode != http.StatusOK {
  1243  			b, _ := ioutil.ReadAll(res.Body)
  1244  			res.Body.Close()
  1245  			errRes := &ErrorResponse{Response: res}
  1246  			err := jsonx.Unmarshal(b, errRes)
  1247  			if err != nil {
  1248  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  1249  			}
  1250  			return nil, errRes
  1251  		}
  1252  		var (
  1253  			paging Paging
  1254  			value  []EducationUser
  1255  		)
  1256  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  1257  		res.Body.Close()
  1258  		if err != nil {
  1259  			return nil, err
  1260  		}
  1261  		err = jsonx.Unmarshal(paging.Value, &value)
  1262  		if err != nil {
  1263  			return nil, err
  1264  		}
  1265  		values = append(values, value...)
  1266  		if n >= 0 {
  1267  			n--
  1268  		}
  1269  		if n == 0 || len(paging.NextLink) == 0 {
  1270  			return values, nil
  1271  		}
  1272  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  1273  		if ctx != nil {
  1274  			req = req.WithContext(ctx)
  1275  		}
  1276  		res, err = r.client.Do(req)
  1277  		if err != nil {
  1278  			return nil, err
  1279  		}
  1280  	}
  1281  }
  1282  
  1283  // GetN performs GET request for EducationUser collection, max N pages
  1284  func (r *EducationRootUsersCollectionRequest) GetN(ctx context.Context, n int) ([]EducationUser, error) {
  1285  	var query string
  1286  	if r.query != nil {
  1287  		query = "?" + r.query.Encode()
  1288  	}
  1289  	return r.Paging(ctx, "GET", query, nil, n)
  1290  }
  1291  
  1292  // Get performs GET request for EducationUser collection
  1293  func (r *EducationRootUsersCollectionRequest) Get(ctx context.Context) ([]EducationUser, error) {
  1294  	return r.GetN(ctx, 0)
  1295  }
  1296  
  1297  // Add performs POST request for EducationUser collection
  1298  func (r *EducationRootUsersCollectionRequest) Add(ctx context.Context, reqObj *EducationUser) (resObj *EducationUser, err error) {
  1299  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  1300  	return
  1301  }
  1302  
  1303  // AdministrativeUnit is navigation property
  1304  func (b *EducationSchoolRequestBuilder) AdministrativeUnit() *AdministrativeUnitRequestBuilder {
  1305  	bb := &AdministrativeUnitRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1306  	bb.baseURL += "/administrativeUnit"
  1307  	return bb
  1308  }
  1309  
  1310  // Classes returns request builder for EducationClass collection
  1311  func (b *EducationSchoolRequestBuilder) Classes() *EducationSchoolClassesCollectionRequestBuilder {
  1312  	bb := &EducationSchoolClassesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1313  	bb.baseURL += "/classes"
  1314  	return bb
  1315  }
  1316  
  1317  // EducationSchoolClassesCollectionRequestBuilder is request builder for EducationClass collection
  1318  type EducationSchoolClassesCollectionRequestBuilder struct{ BaseRequestBuilder }
  1319  
  1320  // Request returns request for EducationClass collection
  1321  func (b *EducationSchoolClassesCollectionRequestBuilder) Request() *EducationSchoolClassesCollectionRequest {
  1322  	return &EducationSchoolClassesCollectionRequest{
  1323  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  1324  	}
  1325  }
  1326  
  1327  // ID returns request builder for EducationClass item
  1328  func (b *EducationSchoolClassesCollectionRequestBuilder) ID(id string) *EducationClassRequestBuilder {
  1329  	bb := &EducationClassRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1330  	bb.baseURL += "/" + id
  1331  	return bb
  1332  }
  1333  
  1334  // EducationSchoolClassesCollectionRequest is request for EducationClass collection
  1335  type EducationSchoolClassesCollectionRequest struct{ BaseRequest }
  1336  
  1337  // Paging perfoms paging operation for EducationClass collection
  1338  func (r *EducationSchoolClassesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]EducationClass, error) {
  1339  	req, err := r.NewJSONRequest(method, path, obj)
  1340  	if err != nil {
  1341  		return nil, err
  1342  	}
  1343  	if ctx != nil {
  1344  		req = req.WithContext(ctx)
  1345  	}
  1346  	res, err := r.client.Do(req)
  1347  	if err != nil {
  1348  		return nil, err
  1349  	}
  1350  	var values []EducationClass
  1351  	for {
  1352  		if res.StatusCode != http.StatusOK {
  1353  			b, _ := ioutil.ReadAll(res.Body)
  1354  			res.Body.Close()
  1355  			errRes := &ErrorResponse{Response: res}
  1356  			err := jsonx.Unmarshal(b, errRes)
  1357  			if err != nil {
  1358  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  1359  			}
  1360  			return nil, errRes
  1361  		}
  1362  		var (
  1363  			paging Paging
  1364  			value  []EducationClass
  1365  		)
  1366  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  1367  		res.Body.Close()
  1368  		if err != nil {
  1369  			return nil, err
  1370  		}
  1371  		err = jsonx.Unmarshal(paging.Value, &value)
  1372  		if err != nil {
  1373  			return nil, err
  1374  		}
  1375  		values = append(values, value...)
  1376  		if n >= 0 {
  1377  			n--
  1378  		}
  1379  		if n == 0 || len(paging.NextLink) == 0 {
  1380  			return values, nil
  1381  		}
  1382  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  1383  		if ctx != nil {
  1384  			req = req.WithContext(ctx)
  1385  		}
  1386  		res, err = r.client.Do(req)
  1387  		if err != nil {
  1388  			return nil, err
  1389  		}
  1390  	}
  1391  }
  1392  
  1393  // GetN performs GET request for EducationClass collection, max N pages
  1394  func (r *EducationSchoolClassesCollectionRequest) GetN(ctx context.Context, n int) ([]EducationClass, error) {
  1395  	var query string
  1396  	if r.query != nil {
  1397  		query = "?" + r.query.Encode()
  1398  	}
  1399  	return r.Paging(ctx, "GET", query, nil, n)
  1400  }
  1401  
  1402  // Get performs GET request for EducationClass collection
  1403  func (r *EducationSchoolClassesCollectionRequest) Get(ctx context.Context) ([]EducationClass, error) {
  1404  	return r.GetN(ctx, 0)
  1405  }
  1406  
  1407  // Add performs POST request for EducationClass collection
  1408  func (r *EducationSchoolClassesCollectionRequest) Add(ctx context.Context, reqObj *EducationClass) (resObj *EducationClass, err error) {
  1409  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  1410  	return
  1411  }
  1412  
  1413  // Users returns request builder for EducationUser collection
  1414  func (b *EducationSchoolRequestBuilder) Users() *EducationSchoolUsersCollectionRequestBuilder {
  1415  	bb := &EducationSchoolUsersCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1416  	bb.baseURL += "/users"
  1417  	return bb
  1418  }
  1419  
  1420  // EducationSchoolUsersCollectionRequestBuilder is request builder for EducationUser collection
  1421  type EducationSchoolUsersCollectionRequestBuilder struct{ BaseRequestBuilder }
  1422  
  1423  // Request returns request for EducationUser collection
  1424  func (b *EducationSchoolUsersCollectionRequestBuilder) Request() *EducationSchoolUsersCollectionRequest {
  1425  	return &EducationSchoolUsersCollectionRequest{
  1426  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  1427  	}
  1428  }
  1429  
  1430  // ID returns request builder for EducationUser item
  1431  func (b *EducationSchoolUsersCollectionRequestBuilder) ID(id string) *EducationUserRequestBuilder {
  1432  	bb := &EducationUserRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1433  	bb.baseURL += "/" + id
  1434  	return bb
  1435  }
  1436  
  1437  // EducationSchoolUsersCollectionRequest is request for EducationUser collection
  1438  type EducationSchoolUsersCollectionRequest struct{ BaseRequest }
  1439  
  1440  // Paging perfoms paging operation for EducationUser collection
  1441  func (r *EducationSchoolUsersCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]EducationUser, error) {
  1442  	req, err := r.NewJSONRequest(method, path, obj)
  1443  	if err != nil {
  1444  		return nil, err
  1445  	}
  1446  	if ctx != nil {
  1447  		req = req.WithContext(ctx)
  1448  	}
  1449  	res, err := r.client.Do(req)
  1450  	if err != nil {
  1451  		return nil, err
  1452  	}
  1453  	var values []EducationUser
  1454  	for {
  1455  		if res.StatusCode != http.StatusOK {
  1456  			b, _ := ioutil.ReadAll(res.Body)
  1457  			res.Body.Close()
  1458  			errRes := &ErrorResponse{Response: res}
  1459  			err := jsonx.Unmarshal(b, errRes)
  1460  			if err != nil {
  1461  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  1462  			}
  1463  			return nil, errRes
  1464  		}
  1465  		var (
  1466  			paging Paging
  1467  			value  []EducationUser
  1468  		)
  1469  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  1470  		res.Body.Close()
  1471  		if err != nil {
  1472  			return nil, err
  1473  		}
  1474  		err = jsonx.Unmarshal(paging.Value, &value)
  1475  		if err != nil {
  1476  			return nil, err
  1477  		}
  1478  		values = append(values, value...)
  1479  		if n >= 0 {
  1480  			n--
  1481  		}
  1482  		if n == 0 || len(paging.NextLink) == 0 {
  1483  			return values, nil
  1484  		}
  1485  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  1486  		if ctx != nil {
  1487  			req = req.WithContext(ctx)
  1488  		}
  1489  		res, err = r.client.Do(req)
  1490  		if err != nil {
  1491  			return nil, err
  1492  		}
  1493  	}
  1494  }
  1495  
  1496  // GetN performs GET request for EducationUser collection, max N pages
  1497  func (r *EducationSchoolUsersCollectionRequest) GetN(ctx context.Context, n int) ([]EducationUser, error) {
  1498  	var query string
  1499  	if r.query != nil {
  1500  		query = "?" + r.query.Encode()
  1501  	}
  1502  	return r.Paging(ctx, "GET", query, nil, n)
  1503  }
  1504  
  1505  // Get performs GET request for EducationUser collection
  1506  func (r *EducationSchoolUsersCollectionRequest) Get(ctx context.Context) ([]EducationUser, error) {
  1507  	return r.GetN(ctx, 0)
  1508  }
  1509  
  1510  // Add performs POST request for EducationUser collection
  1511  func (r *EducationSchoolUsersCollectionRequest) Add(ctx context.Context, reqObj *EducationUser) (resObj *EducationUser, err error) {
  1512  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  1513  	return
  1514  }
  1515  
  1516  // Outcomes returns request builder for EducationOutcome collection
  1517  func (b *EducationSubmissionRequestBuilder) Outcomes() *EducationSubmissionOutcomesCollectionRequestBuilder {
  1518  	bb := &EducationSubmissionOutcomesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1519  	bb.baseURL += "/outcomes"
  1520  	return bb
  1521  }
  1522  
  1523  // EducationSubmissionOutcomesCollectionRequestBuilder is request builder for EducationOutcome collection
  1524  type EducationSubmissionOutcomesCollectionRequestBuilder struct{ BaseRequestBuilder }
  1525  
  1526  // Request returns request for EducationOutcome collection
  1527  func (b *EducationSubmissionOutcomesCollectionRequestBuilder) Request() *EducationSubmissionOutcomesCollectionRequest {
  1528  	return &EducationSubmissionOutcomesCollectionRequest{
  1529  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  1530  	}
  1531  }
  1532  
  1533  // ID returns request builder for EducationOutcome item
  1534  func (b *EducationSubmissionOutcomesCollectionRequestBuilder) ID(id string) *EducationOutcomeRequestBuilder {
  1535  	bb := &EducationOutcomeRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1536  	bb.baseURL += "/" + id
  1537  	return bb
  1538  }
  1539  
  1540  // EducationSubmissionOutcomesCollectionRequest is request for EducationOutcome collection
  1541  type EducationSubmissionOutcomesCollectionRequest struct{ BaseRequest }
  1542  
  1543  // Paging perfoms paging operation for EducationOutcome collection
  1544  func (r *EducationSubmissionOutcomesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]EducationOutcome, error) {
  1545  	req, err := r.NewJSONRequest(method, path, obj)
  1546  	if err != nil {
  1547  		return nil, err
  1548  	}
  1549  	if ctx != nil {
  1550  		req = req.WithContext(ctx)
  1551  	}
  1552  	res, err := r.client.Do(req)
  1553  	if err != nil {
  1554  		return nil, err
  1555  	}
  1556  	var values []EducationOutcome
  1557  	for {
  1558  		if res.StatusCode != http.StatusOK {
  1559  			b, _ := ioutil.ReadAll(res.Body)
  1560  			res.Body.Close()
  1561  			errRes := &ErrorResponse{Response: res}
  1562  			err := jsonx.Unmarshal(b, errRes)
  1563  			if err != nil {
  1564  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  1565  			}
  1566  			return nil, errRes
  1567  		}
  1568  		var (
  1569  			paging Paging
  1570  			value  []EducationOutcome
  1571  		)
  1572  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  1573  		res.Body.Close()
  1574  		if err != nil {
  1575  			return nil, err
  1576  		}
  1577  		err = jsonx.Unmarshal(paging.Value, &value)
  1578  		if err != nil {
  1579  			return nil, err
  1580  		}
  1581  		values = append(values, value...)
  1582  		if n >= 0 {
  1583  			n--
  1584  		}
  1585  		if n == 0 || len(paging.NextLink) == 0 {
  1586  			return values, nil
  1587  		}
  1588  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  1589  		if ctx != nil {
  1590  			req = req.WithContext(ctx)
  1591  		}
  1592  		res, err = r.client.Do(req)
  1593  		if err != nil {
  1594  			return nil, err
  1595  		}
  1596  	}
  1597  }
  1598  
  1599  // GetN performs GET request for EducationOutcome collection, max N pages
  1600  func (r *EducationSubmissionOutcomesCollectionRequest) GetN(ctx context.Context, n int) ([]EducationOutcome, error) {
  1601  	var query string
  1602  	if r.query != nil {
  1603  		query = "?" + r.query.Encode()
  1604  	}
  1605  	return r.Paging(ctx, "GET", query, nil, n)
  1606  }
  1607  
  1608  // Get performs GET request for EducationOutcome collection
  1609  func (r *EducationSubmissionOutcomesCollectionRequest) Get(ctx context.Context) ([]EducationOutcome, error) {
  1610  	return r.GetN(ctx, 0)
  1611  }
  1612  
  1613  // Add performs POST request for EducationOutcome collection
  1614  func (r *EducationSubmissionOutcomesCollectionRequest) Add(ctx context.Context, reqObj *EducationOutcome) (resObj *EducationOutcome, err error) {
  1615  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  1616  	return
  1617  }
  1618  
  1619  // Resources returns request builder for EducationSubmissionResource collection
  1620  func (b *EducationSubmissionRequestBuilder) Resources() *EducationSubmissionResourcesCollectionRequestBuilder {
  1621  	bb := &EducationSubmissionResourcesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1622  	bb.baseURL += "/resources"
  1623  	return bb
  1624  }
  1625  
  1626  // EducationSubmissionResourcesCollectionRequestBuilder is request builder for EducationSubmissionResource collection
  1627  type EducationSubmissionResourcesCollectionRequestBuilder struct{ BaseRequestBuilder }
  1628  
  1629  // Request returns request for EducationSubmissionResource collection
  1630  func (b *EducationSubmissionResourcesCollectionRequestBuilder) Request() *EducationSubmissionResourcesCollectionRequest {
  1631  	return &EducationSubmissionResourcesCollectionRequest{
  1632  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  1633  	}
  1634  }
  1635  
  1636  // ID returns request builder for EducationSubmissionResource item
  1637  func (b *EducationSubmissionResourcesCollectionRequestBuilder) ID(id string) *EducationSubmissionResourceRequestBuilder {
  1638  	bb := &EducationSubmissionResourceRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1639  	bb.baseURL += "/" + id
  1640  	return bb
  1641  }
  1642  
  1643  // EducationSubmissionResourcesCollectionRequest is request for EducationSubmissionResource collection
  1644  type EducationSubmissionResourcesCollectionRequest struct{ BaseRequest }
  1645  
  1646  // Paging perfoms paging operation for EducationSubmissionResource collection
  1647  func (r *EducationSubmissionResourcesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]EducationSubmissionResource, error) {
  1648  	req, err := r.NewJSONRequest(method, path, obj)
  1649  	if err != nil {
  1650  		return nil, err
  1651  	}
  1652  	if ctx != nil {
  1653  		req = req.WithContext(ctx)
  1654  	}
  1655  	res, err := r.client.Do(req)
  1656  	if err != nil {
  1657  		return nil, err
  1658  	}
  1659  	var values []EducationSubmissionResource
  1660  	for {
  1661  		if res.StatusCode != http.StatusOK {
  1662  			b, _ := ioutil.ReadAll(res.Body)
  1663  			res.Body.Close()
  1664  			errRes := &ErrorResponse{Response: res}
  1665  			err := jsonx.Unmarshal(b, errRes)
  1666  			if err != nil {
  1667  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  1668  			}
  1669  			return nil, errRes
  1670  		}
  1671  		var (
  1672  			paging Paging
  1673  			value  []EducationSubmissionResource
  1674  		)
  1675  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  1676  		res.Body.Close()
  1677  		if err != nil {
  1678  			return nil, err
  1679  		}
  1680  		err = jsonx.Unmarshal(paging.Value, &value)
  1681  		if err != nil {
  1682  			return nil, err
  1683  		}
  1684  		values = append(values, value...)
  1685  		if n >= 0 {
  1686  			n--
  1687  		}
  1688  		if n == 0 || len(paging.NextLink) == 0 {
  1689  			return values, nil
  1690  		}
  1691  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  1692  		if ctx != nil {
  1693  			req = req.WithContext(ctx)
  1694  		}
  1695  		res, err = r.client.Do(req)
  1696  		if err != nil {
  1697  			return nil, err
  1698  		}
  1699  	}
  1700  }
  1701  
  1702  // GetN performs GET request for EducationSubmissionResource collection, max N pages
  1703  func (r *EducationSubmissionResourcesCollectionRequest) GetN(ctx context.Context, n int) ([]EducationSubmissionResource, error) {
  1704  	var query string
  1705  	if r.query != nil {
  1706  		query = "?" + r.query.Encode()
  1707  	}
  1708  	return r.Paging(ctx, "GET", query, nil, n)
  1709  }
  1710  
  1711  // Get performs GET request for EducationSubmissionResource collection
  1712  func (r *EducationSubmissionResourcesCollectionRequest) Get(ctx context.Context) ([]EducationSubmissionResource, error) {
  1713  	return r.GetN(ctx, 0)
  1714  }
  1715  
  1716  // Add performs POST request for EducationSubmissionResource collection
  1717  func (r *EducationSubmissionResourcesCollectionRequest) Add(ctx context.Context, reqObj *EducationSubmissionResource) (resObj *EducationSubmissionResource, err error) {
  1718  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  1719  	return
  1720  }
  1721  
  1722  // SubmittedResources returns request builder for EducationSubmissionResource collection
  1723  func (b *EducationSubmissionRequestBuilder) SubmittedResources() *EducationSubmissionSubmittedResourcesCollectionRequestBuilder {
  1724  	bb := &EducationSubmissionSubmittedResourcesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1725  	bb.baseURL += "/submittedResources"
  1726  	return bb
  1727  }
  1728  
  1729  // EducationSubmissionSubmittedResourcesCollectionRequestBuilder is request builder for EducationSubmissionResource collection
  1730  type EducationSubmissionSubmittedResourcesCollectionRequestBuilder struct{ BaseRequestBuilder }
  1731  
  1732  // Request returns request for EducationSubmissionResource collection
  1733  func (b *EducationSubmissionSubmittedResourcesCollectionRequestBuilder) Request() *EducationSubmissionSubmittedResourcesCollectionRequest {
  1734  	return &EducationSubmissionSubmittedResourcesCollectionRequest{
  1735  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  1736  	}
  1737  }
  1738  
  1739  // ID returns request builder for EducationSubmissionResource item
  1740  func (b *EducationSubmissionSubmittedResourcesCollectionRequestBuilder) ID(id string) *EducationSubmissionResourceRequestBuilder {
  1741  	bb := &EducationSubmissionResourceRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1742  	bb.baseURL += "/" + id
  1743  	return bb
  1744  }
  1745  
  1746  // EducationSubmissionSubmittedResourcesCollectionRequest is request for EducationSubmissionResource collection
  1747  type EducationSubmissionSubmittedResourcesCollectionRequest struct{ BaseRequest }
  1748  
  1749  // Paging perfoms paging operation for EducationSubmissionResource collection
  1750  func (r *EducationSubmissionSubmittedResourcesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]EducationSubmissionResource, error) {
  1751  	req, err := r.NewJSONRequest(method, path, obj)
  1752  	if err != nil {
  1753  		return nil, err
  1754  	}
  1755  	if ctx != nil {
  1756  		req = req.WithContext(ctx)
  1757  	}
  1758  	res, err := r.client.Do(req)
  1759  	if err != nil {
  1760  		return nil, err
  1761  	}
  1762  	var values []EducationSubmissionResource
  1763  	for {
  1764  		if res.StatusCode != http.StatusOK {
  1765  			b, _ := ioutil.ReadAll(res.Body)
  1766  			res.Body.Close()
  1767  			errRes := &ErrorResponse{Response: res}
  1768  			err := jsonx.Unmarshal(b, errRes)
  1769  			if err != nil {
  1770  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  1771  			}
  1772  			return nil, errRes
  1773  		}
  1774  		var (
  1775  			paging Paging
  1776  			value  []EducationSubmissionResource
  1777  		)
  1778  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  1779  		res.Body.Close()
  1780  		if err != nil {
  1781  			return nil, err
  1782  		}
  1783  		err = jsonx.Unmarshal(paging.Value, &value)
  1784  		if err != nil {
  1785  			return nil, err
  1786  		}
  1787  		values = append(values, value...)
  1788  		if n >= 0 {
  1789  			n--
  1790  		}
  1791  		if n == 0 || len(paging.NextLink) == 0 {
  1792  			return values, nil
  1793  		}
  1794  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  1795  		if ctx != nil {
  1796  			req = req.WithContext(ctx)
  1797  		}
  1798  		res, err = r.client.Do(req)
  1799  		if err != nil {
  1800  			return nil, err
  1801  		}
  1802  	}
  1803  }
  1804  
  1805  // GetN performs GET request for EducationSubmissionResource collection, max N pages
  1806  func (r *EducationSubmissionSubmittedResourcesCollectionRequest) GetN(ctx context.Context, n int) ([]EducationSubmissionResource, error) {
  1807  	var query string
  1808  	if r.query != nil {
  1809  		query = "?" + r.query.Encode()
  1810  	}
  1811  	return r.Paging(ctx, "GET", query, nil, n)
  1812  }
  1813  
  1814  // Get performs GET request for EducationSubmissionResource collection
  1815  func (r *EducationSubmissionSubmittedResourcesCollectionRequest) Get(ctx context.Context) ([]EducationSubmissionResource, error) {
  1816  	return r.GetN(ctx, 0)
  1817  }
  1818  
  1819  // Add performs POST request for EducationSubmissionResource collection
  1820  func (r *EducationSubmissionSubmittedResourcesCollectionRequest) Add(ctx context.Context, reqObj *EducationSubmissionResource) (resObj *EducationSubmissionResource, err error) {
  1821  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  1822  	return
  1823  }
  1824  
  1825  // Errors returns request builder for EducationSynchronizationError collection
  1826  func (b *EducationSynchronizationProfileRequestBuilder) Errors() *EducationSynchronizationProfileErrorsCollectionRequestBuilder {
  1827  	bb := &EducationSynchronizationProfileErrorsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1828  	bb.baseURL += "/errors"
  1829  	return bb
  1830  }
  1831  
  1832  // EducationSynchronizationProfileErrorsCollectionRequestBuilder is request builder for EducationSynchronizationError collection
  1833  type EducationSynchronizationProfileErrorsCollectionRequestBuilder struct{ BaseRequestBuilder }
  1834  
  1835  // Request returns request for EducationSynchronizationError collection
  1836  func (b *EducationSynchronizationProfileErrorsCollectionRequestBuilder) Request() *EducationSynchronizationProfileErrorsCollectionRequest {
  1837  	return &EducationSynchronizationProfileErrorsCollectionRequest{
  1838  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  1839  	}
  1840  }
  1841  
  1842  // ID returns request builder for EducationSynchronizationError item
  1843  func (b *EducationSynchronizationProfileErrorsCollectionRequestBuilder) ID(id string) *EducationSynchronizationErrorRequestBuilder {
  1844  	bb := &EducationSynchronizationErrorRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1845  	bb.baseURL += "/" + id
  1846  	return bb
  1847  }
  1848  
  1849  // EducationSynchronizationProfileErrorsCollectionRequest is request for EducationSynchronizationError collection
  1850  type EducationSynchronizationProfileErrorsCollectionRequest struct{ BaseRequest }
  1851  
  1852  // Paging perfoms paging operation for EducationSynchronizationError collection
  1853  func (r *EducationSynchronizationProfileErrorsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]EducationSynchronizationError, error) {
  1854  	req, err := r.NewJSONRequest(method, path, obj)
  1855  	if err != nil {
  1856  		return nil, err
  1857  	}
  1858  	if ctx != nil {
  1859  		req = req.WithContext(ctx)
  1860  	}
  1861  	res, err := r.client.Do(req)
  1862  	if err != nil {
  1863  		return nil, err
  1864  	}
  1865  	var values []EducationSynchronizationError
  1866  	for {
  1867  		if res.StatusCode != http.StatusOK {
  1868  			b, _ := ioutil.ReadAll(res.Body)
  1869  			res.Body.Close()
  1870  			errRes := &ErrorResponse{Response: res}
  1871  			err := jsonx.Unmarshal(b, errRes)
  1872  			if err != nil {
  1873  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  1874  			}
  1875  			return nil, errRes
  1876  		}
  1877  		var (
  1878  			paging Paging
  1879  			value  []EducationSynchronizationError
  1880  		)
  1881  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  1882  		res.Body.Close()
  1883  		if err != nil {
  1884  			return nil, err
  1885  		}
  1886  		err = jsonx.Unmarshal(paging.Value, &value)
  1887  		if err != nil {
  1888  			return nil, err
  1889  		}
  1890  		values = append(values, value...)
  1891  		if n >= 0 {
  1892  			n--
  1893  		}
  1894  		if n == 0 || len(paging.NextLink) == 0 {
  1895  			return values, nil
  1896  		}
  1897  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  1898  		if ctx != nil {
  1899  			req = req.WithContext(ctx)
  1900  		}
  1901  		res, err = r.client.Do(req)
  1902  		if err != nil {
  1903  			return nil, err
  1904  		}
  1905  	}
  1906  }
  1907  
  1908  // GetN performs GET request for EducationSynchronizationError collection, max N pages
  1909  func (r *EducationSynchronizationProfileErrorsCollectionRequest) GetN(ctx context.Context, n int) ([]EducationSynchronizationError, error) {
  1910  	var query string
  1911  	if r.query != nil {
  1912  		query = "?" + r.query.Encode()
  1913  	}
  1914  	return r.Paging(ctx, "GET", query, nil, n)
  1915  }
  1916  
  1917  // Get performs GET request for EducationSynchronizationError collection
  1918  func (r *EducationSynchronizationProfileErrorsCollectionRequest) Get(ctx context.Context) ([]EducationSynchronizationError, error) {
  1919  	return r.GetN(ctx, 0)
  1920  }
  1921  
  1922  // Add performs POST request for EducationSynchronizationError collection
  1923  func (r *EducationSynchronizationProfileErrorsCollectionRequest) Add(ctx context.Context, reqObj *EducationSynchronizationError) (resObj *EducationSynchronizationError, err error) {
  1924  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  1925  	return
  1926  }
  1927  
  1928  // ProfileStatus is navigation property
  1929  func (b *EducationSynchronizationProfileRequestBuilder) ProfileStatus() *EducationSynchronizationProfileStatusRequestBuilder {
  1930  	bb := &EducationSynchronizationProfileStatusRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1931  	bb.baseURL += "/profileStatus"
  1932  	return bb
  1933  }
  1934  
  1935  // Assignments returns request builder for EducationAssignment collection
  1936  func (b *EducationUserRequestBuilder) Assignments() *EducationUserAssignmentsCollectionRequestBuilder {
  1937  	bb := &EducationUserAssignmentsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1938  	bb.baseURL += "/assignments"
  1939  	return bb
  1940  }
  1941  
  1942  // EducationUserAssignmentsCollectionRequestBuilder is request builder for EducationAssignment collection
  1943  type EducationUserAssignmentsCollectionRequestBuilder struct{ BaseRequestBuilder }
  1944  
  1945  // Request returns request for EducationAssignment collection
  1946  func (b *EducationUserAssignmentsCollectionRequestBuilder) Request() *EducationUserAssignmentsCollectionRequest {
  1947  	return &EducationUserAssignmentsCollectionRequest{
  1948  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  1949  	}
  1950  }
  1951  
  1952  // ID returns request builder for EducationAssignment item
  1953  func (b *EducationUserAssignmentsCollectionRequestBuilder) ID(id string) *EducationAssignmentRequestBuilder {
  1954  	bb := &EducationAssignmentRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1955  	bb.baseURL += "/" + id
  1956  	return bb
  1957  }
  1958  
  1959  // EducationUserAssignmentsCollectionRequest is request for EducationAssignment collection
  1960  type EducationUserAssignmentsCollectionRequest struct{ BaseRequest }
  1961  
  1962  // Paging perfoms paging operation for EducationAssignment collection
  1963  func (r *EducationUserAssignmentsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]EducationAssignment, error) {
  1964  	req, err := r.NewJSONRequest(method, path, obj)
  1965  	if err != nil {
  1966  		return nil, err
  1967  	}
  1968  	if ctx != nil {
  1969  		req = req.WithContext(ctx)
  1970  	}
  1971  	res, err := r.client.Do(req)
  1972  	if err != nil {
  1973  		return nil, err
  1974  	}
  1975  	var values []EducationAssignment
  1976  	for {
  1977  		if res.StatusCode != http.StatusOK {
  1978  			b, _ := ioutil.ReadAll(res.Body)
  1979  			res.Body.Close()
  1980  			errRes := &ErrorResponse{Response: res}
  1981  			err := jsonx.Unmarshal(b, errRes)
  1982  			if err != nil {
  1983  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  1984  			}
  1985  			return nil, errRes
  1986  		}
  1987  		var (
  1988  			paging Paging
  1989  			value  []EducationAssignment
  1990  		)
  1991  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  1992  		res.Body.Close()
  1993  		if err != nil {
  1994  			return nil, err
  1995  		}
  1996  		err = jsonx.Unmarshal(paging.Value, &value)
  1997  		if err != nil {
  1998  			return nil, err
  1999  		}
  2000  		values = append(values, value...)
  2001  		if n >= 0 {
  2002  			n--
  2003  		}
  2004  		if n == 0 || len(paging.NextLink) == 0 {
  2005  			return values, nil
  2006  		}
  2007  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  2008  		if ctx != nil {
  2009  			req = req.WithContext(ctx)
  2010  		}
  2011  		res, err = r.client.Do(req)
  2012  		if err != nil {
  2013  			return nil, err
  2014  		}
  2015  	}
  2016  }
  2017  
  2018  // GetN performs GET request for EducationAssignment collection, max N pages
  2019  func (r *EducationUserAssignmentsCollectionRequest) GetN(ctx context.Context, n int) ([]EducationAssignment, error) {
  2020  	var query string
  2021  	if r.query != nil {
  2022  		query = "?" + r.query.Encode()
  2023  	}
  2024  	return r.Paging(ctx, "GET", query, nil, n)
  2025  }
  2026  
  2027  // Get performs GET request for EducationAssignment collection
  2028  func (r *EducationUserAssignmentsCollectionRequest) Get(ctx context.Context) ([]EducationAssignment, error) {
  2029  	return r.GetN(ctx, 0)
  2030  }
  2031  
  2032  // Add performs POST request for EducationAssignment collection
  2033  func (r *EducationUserAssignmentsCollectionRequest) Add(ctx context.Context, reqObj *EducationAssignment) (resObj *EducationAssignment, err error) {
  2034  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  2035  	return
  2036  }
  2037  
  2038  // Classes returns request builder for EducationClass collection
  2039  func (b *EducationUserRequestBuilder) Classes() *EducationUserClassesCollectionRequestBuilder {
  2040  	bb := &EducationUserClassesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2041  	bb.baseURL += "/classes"
  2042  	return bb
  2043  }
  2044  
  2045  // EducationUserClassesCollectionRequestBuilder is request builder for EducationClass collection
  2046  type EducationUserClassesCollectionRequestBuilder struct{ BaseRequestBuilder }
  2047  
  2048  // Request returns request for EducationClass collection
  2049  func (b *EducationUserClassesCollectionRequestBuilder) Request() *EducationUserClassesCollectionRequest {
  2050  	return &EducationUserClassesCollectionRequest{
  2051  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  2052  	}
  2053  }
  2054  
  2055  // ID returns request builder for EducationClass item
  2056  func (b *EducationUserClassesCollectionRequestBuilder) ID(id string) *EducationClassRequestBuilder {
  2057  	bb := &EducationClassRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2058  	bb.baseURL += "/" + id
  2059  	return bb
  2060  }
  2061  
  2062  // EducationUserClassesCollectionRequest is request for EducationClass collection
  2063  type EducationUserClassesCollectionRequest struct{ BaseRequest }
  2064  
  2065  // Paging perfoms paging operation for EducationClass collection
  2066  func (r *EducationUserClassesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]EducationClass, error) {
  2067  	req, err := r.NewJSONRequest(method, path, obj)
  2068  	if err != nil {
  2069  		return nil, err
  2070  	}
  2071  	if ctx != nil {
  2072  		req = req.WithContext(ctx)
  2073  	}
  2074  	res, err := r.client.Do(req)
  2075  	if err != nil {
  2076  		return nil, err
  2077  	}
  2078  	var values []EducationClass
  2079  	for {
  2080  		if res.StatusCode != http.StatusOK {
  2081  			b, _ := ioutil.ReadAll(res.Body)
  2082  			res.Body.Close()
  2083  			errRes := &ErrorResponse{Response: res}
  2084  			err := jsonx.Unmarshal(b, errRes)
  2085  			if err != nil {
  2086  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  2087  			}
  2088  			return nil, errRes
  2089  		}
  2090  		var (
  2091  			paging Paging
  2092  			value  []EducationClass
  2093  		)
  2094  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  2095  		res.Body.Close()
  2096  		if err != nil {
  2097  			return nil, err
  2098  		}
  2099  		err = jsonx.Unmarshal(paging.Value, &value)
  2100  		if err != nil {
  2101  			return nil, err
  2102  		}
  2103  		values = append(values, value...)
  2104  		if n >= 0 {
  2105  			n--
  2106  		}
  2107  		if n == 0 || len(paging.NextLink) == 0 {
  2108  			return values, nil
  2109  		}
  2110  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  2111  		if ctx != nil {
  2112  			req = req.WithContext(ctx)
  2113  		}
  2114  		res, err = r.client.Do(req)
  2115  		if err != nil {
  2116  			return nil, err
  2117  		}
  2118  	}
  2119  }
  2120  
  2121  // GetN performs GET request for EducationClass collection, max N pages
  2122  func (r *EducationUserClassesCollectionRequest) GetN(ctx context.Context, n int) ([]EducationClass, error) {
  2123  	var query string
  2124  	if r.query != nil {
  2125  		query = "?" + r.query.Encode()
  2126  	}
  2127  	return r.Paging(ctx, "GET", query, nil, n)
  2128  }
  2129  
  2130  // Get performs GET request for EducationClass collection
  2131  func (r *EducationUserClassesCollectionRequest) Get(ctx context.Context) ([]EducationClass, error) {
  2132  	return r.GetN(ctx, 0)
  2133  }
  2134  
  2135  // Add performs POST request for EducationClass collection
  2136  func (r *EducationUserClassesCollectionRequest) Add(ctx context.Context, reqObj *EducationClass) (resObj *EducationClass, err error) {
  2137  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  2138  	return
  2139  }
  2140  
  2141  // Rubrics returns request builder for EducationRubric collection
  2142  func (b *EducationUserRequestBuilder) Rubrics() *EducationUserRubricsCollectionRequestBuilder {
  2143  	bb := &EducationUserRubricsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2144  	bb.baseURL += "/rubrics"
  2145  	return bb
  2146  }
  2147  
  2148  // EducationUserRubricsCollectionRequestBuilder is request builder for EducationRubric collection
  2149  type EducationUserRubricsCollectionRequestBuilder struct{ BaseRequestBuilder }
  2150  
  2151  // Request returns request for EducationRubric collection
  2152  func (b *EducationUserRubricsCollectionRequestBuilder) Request() *EducationUserRubricsCollectionRequest {
  2153  	return &EducationUserRubricsCollectionRequest{
  2154  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  2155  	}
  2156  }
  2157  
  2158  // ID returns request builder for EducationRubric item
  2159  func (b *EducationUserRubricsCollectionRequestBuilder) ID(id string) *EducationRubricRequestBuilder {
  2160  	bb := &EducationRubricRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2161  	bb.baseURL += "/" + id
  2162  	return bb
  2163  }
  2164  
  2165  // EducationUserRubricsCollectionRequest is request for EducationRubric collection
  2166  type EducationUserRubricsCollectionRequest struct{ BaseRequest }
  2167  
  2168  // Paging perfoms paging operation for EducationRubric collection
  2169  func (r *EducationUserRubricsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]EducationRubric, error) {
  2170  	req, err := r.NewJSONRequest(method, path, obj)
  2171  	if err != nil {
  2172  		return nil, err
  2173  	}
  2174  	if ctx != nil {
  2175  		req = req.WithContext(ctx)
  2176  	}
  2177  	res, err := r.client.Do(req)
  2178  	if err != nil {
  2179  		return nil, err
  2180  	}
  2181  	var values []EducationRubric
  2182  	for {
  2183  		if res.StatusCode != http.StatusOK {
  2184  			b, _ := ioutil.ReadAll(res.Body)
  2185  			res.Body.Close()
  2186  			errRes := &ErrorResponse{Response: res}
  2187  			err := jsonx.Unmarshal(b, errRes)
  2188  			if err != nil {
  2189  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  2190  			}
  2191  			return nil, errRes
  2192  		}
  2193  		var (
  2194  			paging Paging
  2195  			value  []EducationRubric
  2196  		)
  2197  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  2198  		res.Body.Close()
  2199  		if err != nil {
  2200  			return nil, err
  2201  		}
  2202  		err = jsonx.Unmarshal(paging.Value, &value)
  2203  		if err != nil {
  2204  			return nil, err
  2205  		}
  2206  		values = append(values, value...)
  2207  		if n >= 0 {
  2208  			n--
  2209  		}
  2210  		if n == 0 || len(paging.NextLink) == 0 {
  2211  			return values, nil
  2212  		}
  2213  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  2214  		if ctx != nil {
  2215  			req = req.WithContext(ctx)
  2216  		}
  2217  		res, err = r.client.Do(req)
  2218  		if err != nil {
  2219  			return nil, err
  2220  		}
  2221  	}
  2222  }
  2223  
  2224  // GetN performs GET request for EducationRubric collection, max N pages
  2225  func (r *EducationUserRubricsCollectionRequest) GetN(ctx context.Context, n int) ([]EducationRubric, error) {
  2226  	var query string
  2227  	if r.query != nil {
  2228  		query = "?" + r.query.Encode()
  2229  	}
  2230  	return r.Paging(ctx, "GET", query, nil, n)
  2231  }
  2232  
  2233  // Get performs GET request for EducationRubric collection
  2234  func (r *EducationUserRubricsCollectionRequest) Get(ctx context.Context) ([]EducationRubric, error) {
  2235  	return r.GetN(ctx, 0)
  2236  }
  2237  
  2238  // Add performs POST request for EducationRubric collection
  2239  func (r *EducationUserRubricsCollectionRequest) Add(ctx context.Context, reqObj *EducationRubric) (resObj *EducationRubric, err error) {
  2240  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  2241  	return
  2242  }
  2243  
  2244  // Schools returns request builder for EducationSchool collection
  2245  func (b *EducationUserRequestBuilder) Schools() *EducationUserSchoolsCollectionRequestBuilder {
  2246  	bb := &EducationUserSchoolsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2247  	bb.baseURL += "/schools"
  2248  	return bb
  2249  }
  2250  
  2251  // EducationUserSchoolsCollectionRequestBuilder is request builder for EducationSchool collection
  2252  type EducationUserSchoolsCollectionRequestBuilder struct{ BaseRequestBuilder }
  2253  
  2254  // Request returns request for EducationSchool collection
  2255  func (b *EducationUserSchoolsCollectionRequestBuilder) Request() *EducationUserSchoolsCollectionRequest {
  2256  	return &EducationUserSchoolsCollectionRequest{
  2257  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  2258  	}
  2259  }
  2260  
  2261  // ID returns request builder for EducationSchool item
  2262  func (b *EducationUserSchoolsCollectionRequestBuilder) ID(id string) *EducationSchoolRequestBuilder {
  2263  	bb := &EducationSchoolRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2264  	bb.baseURL += "/" + id
  2265  	return bb
  2266  }
  2267  
  2268  // EducationUserSchoolsCollectionRequest is request for EducationSchool collection
  2269  type EducationUserSchoolsCollectionRequest struct{ BaseRequest }
  2270  
  2271  // Paging perfoms paging operation for EducationSchool collection
  2272  func (r *EducationUserSchoolsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]EducationSchool, error) {
  2273  	req, err := r.NewJSONRequest(method, path, obj)
  2274  	if err != nil {
  2275  		return nil, err
  2276  	}
  2277  	if ctx != nil {
  2278  		req = req.WithContext(ctx)
  2279  	}
  2280  	res, err := r.client.Do(req)
  2281  	if err != nil {
  2282  		return nil, err
  2283  	}
  2284  	var values []EducationSchool
  2285  	for {
  2286  		if res.StatusCode != http.StatusOK {
  2287  			b, _ := ioutil.ReadAll(res.Body)
  2288  			res.Body.Close()
  2289  			errRes := &ErrorResponse{Response: res}
  2290  			err := jsonx.Unmarshal(b, errRes)
  2291  			if err != nil {
  2292  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  2293  			}
  2294  			return nil, errRes
  2295  		}
  2296  		var (
  2297  			paging Paging
  2298  			value  []EducationSchool
  2299  		)
  2300  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  2301  		res.Body.Close()
  2302  		if err != nil {
  2303  			return nil, err
  2304  		}
  2305  		err = jsonx.Unmarshal(paging.Value, &value)
  2306  		if err != nil {
  2307  			return nil, err
  2308  		}
  2309  		values = append(values, value...)
  2310  		if n >= 0 {
  2311  			n--
  2312  		}
  2313  		if n == 0 || len(paging.NextLink) == 0 {
  2314  			return values, nil
  2315  		}
  2316  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  2317  		if ctx != nil {
  2318  			req = req.WithContext(ctx)
  2319  		}
  2320  		res, err = r.client.Do(req)
  2321  		if err != nil {
  2322  			return nil, err
  2323  		}
  2324  	}
  2325  }
  2326  
  2327  // GetN performs GET request for EducationSchool collection, max N pages
  2328  func (r *EducationUserSchoolsCollectionRequest) GetN(ctx context.Context, n int) ([]EducationSchool, error) {
  2329  	var query string
  2330  	if r.query != nil {
  2331  		query = "?" + r.query.Encode()
  2332  	}
  2333  	return r.Paging(ctx, "GET", query, nil, n)
  2334  }
  2335  
  2336  // Get performs GET request for EducationSchool collection
  2337  func (r *EducationUserSchoolsCollectionRequest) Get(ctx context.Context) ([]EducationSchool, error) {
  2338  	return r.GetN(ctx, 0)
  2339  }
  2340  
  2341  // Add performs POST request for EducationSchool collection
  2342  func (r *EducationUserSchoolsCollectionRequest) Add(ctx context.Context, reqObj *EducationSchool) (resObj *EducationSchool, err error) {
  2343  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  2344  	return
  2345  }
  2346  
  2347  // TaughtClasses returns request builder for EducationClass collection
  2348  func (b *EducationUserRequestBuilder) TaughtClasses() *EducationUserTaughtClassesCollectionRequestBuilder {
  2349  	bb := &EducationUserTaughtClassesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2350  	bb.baseURL += "/taughtClasses"
  2351  	return bb
  2352  }
  2353  
  2354  // EducationUserTaughtClassesCollectionRequestBuilder is request builder for EducationClass collection
  2355  type EducationUserTaughtClassesCollectionRequestBuilder struct{ BaseRequestBuilder }
  2356  
  2357  // Request returns request for EducationClass collection
  2358  func (b *EducationUserTaughtClassesCollectionRequestBuilder) Request() *EducationUserTaughtClassesCollectionRequest {
  2359  	return &EducationUserTaughtClassesCollectionRequest{
  2360  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  2361  	}
  2362  }
  2363  
  2364  // ID returns request builder for EducationClass item
  2365  func (b *EducationUserTaughtClassesCollectionRequestBuilder) ID(id string) *EducationClassRequestBuilder {
  2366  	bb := &EducationClassRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2367  	bb.baseURL += "/" + id
  2368  	return bb
  2369  }
  2370  
  2371  // EducationUserTaughtClassesCollectionRequest is request for EducationClass collection
  2372  type EducationUserTaughtClassesCollectionRequest struct{ BaseRequest }
  2373  
  2374  // Paging perfoms paging operation for EducationClass collection
  2375  func (r *EducationUserTaughtClassesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]EducationClass, error) {
  2376  	req, err := r.NewJSONRequest(method, path, obj)
  2377  	if err != nil {
  2378  		return nil, err
  2379  	}
  2380  	if ctx != nil {
  2381  		req = req.WithContext(ctx)
  2382  	}
  2383  	res, err := r.client.Do(req)
  2384  	if err != nil {
  2385  		return nil, err
  2386  	}
  2387  	var values []EducationClass
  2388  	for {
  2389  		if res.StatusCode != http.StatusOK {
  2390  			b, _ := ioutil.ReadAll(res.Body)
  2391  			res.Body.Close()
  2392  			errRes := &ErrorResponse{Response: res}
  2393  			err := jsonx.Unmarshal(b, errRes)
  2394  			if err != nil {
  2395  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  2396  			}
  2397  			return nil, errRes
  2398  		}
  2399  		var (
  2400  			paging Paging
  2401  			value  []EducationClass
  2402  		)
  2403  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  2404  		res.Body.Close()
  2405  		if err != nil {
  2406  			return nil, err
  2407  		}
  2408  		err = jsonx.Unmarshal(paging.Value, &value)
  2409  		if err != nil {
  2410  			return nil, err
  2411  		}
  2412  		values = append(values, value...)
  2413  		if n >= 0 {
  2414  			n--
  2415  		}
  2416  		if n == 0 || len(paging.NextLink) == 0 {
  2417  			return values, nil
  2418  		}
  2419  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  2420  		if ctx != nil {
  2421  			req = req.WithContext(ctx)
  2422  		}
  2423  		res, err = r.client.Do(req)
  2424  		if err != nil {
  2425  			return nil, err
  2426  		}
  2427  	}
  2428  }
  2429  
  2430  // GetN performs GET request for EducationClass collection, max N pages
  2431  func (r *EducationUserTaughtClassesCollectionRequest) GetN(ctx context.Context, n int) ([]EducationClass, error) {
  2432  	var query string
  2433  	if r.query != nil {
  2434  		query = "?" + r.query.Encode()
  2435  	}
  2436  	return r.Paging(ctx, "GET", query, nil, n)
  2437  }
  2438  
  2439  // Get performs GET request for EducationClass collection
  2440  func (r *EducationUserTaughtClassesCollectionRequest) Get(ctx context.Context) ([]EducationClass, error) {
  2441  	return r.GetN(ctx, 0)
  2442  }
  2443  
  2444  // Add performs POST request for EducationClass collection
  2445  func (r *EducationUserTaughtClassesCollectionRequest) Add(ctx context.Context, reqObj *EducationClass) (resObj *EducationClass, err error) {
  2446  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  2447  	return
  2448  }
  2449  
  2450  // User is navigation property
  2451  func (b *EducationUserRequestBuilder) User() *UserRequestBuilder {
  2452  	bb := &UserRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2453  	bb.baseURL += "/user"
  2454  	return bb
  2455  }