// Code generated by msgraph.go/gen DO NOT EDIT.

package msgraph

import (
	"context"
	"fmt"
	"io/ioutil"
	"net/http"

	"github.com/yaegashi/msgraph.go/jsonx"
)

// EducationAssignmentRequestBuilder is request builder for EducationAssignment
type EducationAssignmentRequestBuilder struct{ BaseRequestBuilder }

// Request returns EducationAssignmentRequest
func (b *EducationAssignmentRequestBuilder) Request() *EducationAssignmentRequest {
	return &EducationAssignmentRequest{
		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
	}
}

// EducationAssignmentRequest is request for EducationAssignment
type EducationAssignmentRequest struct{ BaseRequest }

// Get performs GET request for EducationAssignment
func (r *EducationAssignmentRequest) Get(ctx context.Context) (resObj *EducationAssignment, err error) {
	var query string
	if r.query != nil {
		query = "?" + r.query.Encode()
	}
	err = r.JSONRequest(ctx, "GET", query, nil, &resObj)
	return
}

// Update performs PATCH request for EducationAssignment
func (r *EducationAssignmentRequest) Update(ctx context.Context, reqObj *EducationAssignment) error {
	return r.JSONRequest(ctx, "PATCH", "", reqObj, nil)
}

// Delete performs DELETE request for EducationAssignment
func (r *EducationAssignmentRequest) Delete(ctx context.Context) error {
	return r.JSONRequest(ctx, "DELETE", "", nil, nil)
}

// EducationAssignmentResourceRequestBuilder is request builder for EducationAssignmentResource
type EducationAssignmentResourceRequestBuilder struct{ BaseRequestBuilder }

// Request returns EducationAssignmentResourceRequest
func (b *EducationAssignmentResourceRequestBuilder) Request() *EducationAssignmentResourceRequest {
	return &EducationAssignmentResourceRequest{
		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
	}
}

// EducationAssignmentResourceRequest is request for EducationAssignmentResource
type EducationAssignmentResourceRequest struct{ BaseRequest }

// Get performs GET request for EducationAssignmentResource
func (r *EducationAssignmentResourceRequest) Get(ctx context.Context) (resObj *EducationAssignmentResource, err error) {
	var query string
	if r.query != nil {
		query = "?" + r.query.Encode()
	}
	err = r.JSONRequest(ctx, "GET", query, nil, &resObj)
	return
}

// Update performs PATCH request for EducationAssignmentResource
func (r *EducationAssignmentResourceRequest) Update(ctx context.Context, reqObj *EducationAssignmentResource) error {
	return r.JSONRequest(ctx, "PATCH", "", reqObj, nil)
}

// Delete performs DELETE request for EducationAssignmentResource
func (r *EducationAssignmentResourceRequest) Delete(ctx context.Context) error {
	return r.JSONRequest(ctx, "DELETE", "", nil, nil)
}

// EducationCategoryRequestBuilder is request builder for EducationCategory
type EducationCategoryRequestBuilder struct{ BaseRequestBuilder }

// Request returns EducationCategoryRequest
func (b *EducationCategoryRequestBuilder) Request() *EducationCategoryRequest {
	return &EducationCategoryRequest{
		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
	}
}

// EducationCategoryRequest is request for EducationCategory
type EducationCategoryRequest struct{ BaseRequest }

// Get performs GET request for EducationCategory
func (r *EducationCategoryRequest) Get(ctx context.Context) (resObj *EducationCategory, err error) {
	var query string
	if r.query != nil {
		query = "?" + r.query.Encode()
	}
	err = r.JSONRequest(ctx, "GET", query, nil, &resObj)
	return
}

// Update performs PATCH request for EducationCategory
func (r *EducationCategoryRequest) Update(ctx context.Context, reqObj *EducationCategory) error {
	return r.JSONRequest(ctx, "PATCH", "", reqObj, nil)
}

// Delete performs DELETE request for EducationCategory
func (r *EducationCategoryRequest) Delete(ctx context.Context) error {
	return r.JSONRequest(ctx, "DELETE", "", nil, nil)
}

// EducationClassRequestBuilder is request builder for EducationClass
type EducationClassRequestBuilder struct{ BaseRequestBuilder }

// Request returns EducationClassRequest
func (b *EducationClassRequestBuilder) Request() *EducationClassRequest {
	return &EducationClassRequest{
		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
	}
}

// EducationClassRequest is request for EducationClass
type EducationClassRequest struct{ BaseRequest }

// Get performs GET request for EducationClass
func (r *EducationClassRequest) Get(ctx context.Context) (resObj *EducationClass, err error) {
	var query string
	if r.query != nil {
		query = "?" + r.query.Encode()
	}
	err = r.JSONRequest(ctx, "GET", query, nil, &resObj)
	return
}

// Update performs PATCH request for EducationClass
func (r *EducationClassRequest) Update(ctx context.Context, reqObj *EducationClass) error {
	return r.JSONRequest(ctx, "PATCH", "", reqObj, nil)
}

// Delete performs DELETE request for EducationClass
func (r *EducationClassRequest) Delete(ctx context.Context) error {
	return r.JSONRequest(ctx, "DELETE", "", nil, nil)
}

// EducationOutcomeRequestBuilder is request builder for EducationOutcome
type EducationOutcomeRequestBuilder struct{ BaseRequestBuilder }

// Request returns EducationOutcomeRequest
func (b *EducationOutcomeRequestBuilder) Request() *EducationOutcomeRequest {
	return &EducationOutcomeRequest{
		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
	}
}

// EducationOutcomeRequest is request for EducationOutcome
type EducationOutcomeRequest struct{ BaseRequest }

// Get performs GET request for EducationOutcome
func (r *EducationOutcomeRequest) Get(ctx context.Context) (resObj *EducationOutcome, err error) {
	var query string
	if r.query != nil {
		query = "?" + r.query.Encode()
	}
	err = r.JSONRequest(ctx, "GET", query, nil, &resObj)
	return
}

// Update performs PATCH request for EducationOutcome
func (r *EducationOutcomeRequest) Update(ctx context.Context, reqObj *EducationOutcome) error {
	return r.JSONRequest(ctx, "PATCH", "", reqObj, nil)
}

// Delete performs DELETE request for EducationOutcome
func (r *EducationOutcomeRequest) Delete(ctx context.Context) error {
	return r.JSONRequest(ctx, "DELETE", "", nil, nil)
}

// EducationRootRequestBuilder is request builder for EducationRoot
type EducationRootRequestBuilder struct{ BaseRequestBuilder }

// Request returns EducationRootRequest
func (b *EducationRootRequestBuilder) Request() *EducationRootRequest {
	return &EducationRootRequest{
		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
	}
}

// EducationRootRequest is request for EducationRoot
type EducationRootRequest struct{ BaseRequest }

// Get performs GET request for EducationRoot
func (r *EducationRootRequest) Get(ctx context.Context) (resObj *EducationRoot, err error) {
	var query string
	if r.query != nil {
		query = "?" + r.query.Encode()
	}
	err = r.JSONRequest(ctx, "GET", query, nil, &resObj)
	return
}

// Update performs PATCH request for EducationRoot
func (r *EducationRootRequest) Update(ctx context.Context, reqObj *EducationRoot) error {
	return r.JSONRequest(ctx, "PATCH", "", reqObj, nil)
}

// Delete performs DELETE request for EducationRoot
func (r *EducationRootRequest) Delete(ctx context.Context) error {
	return r.JSONRequest(ctx, "DELETE", "", nil, nil)
}

// EducationRubricRequestBuilder is request builder for EducationRubric
type EducationRubricRequestBuilder struct{ BaseRequestBuilder }

// Request returns EducationRubricRequest
func (b *EducationRubricRequestBuilder) Request() *EducationRubricRequest {
	return &EducationRubricRequest{
		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
	}
}

// EducationRubricRequest is request for EducationRubric
type EducationRubricRequest struct{ BaseRequest }

// Get performs GET request for EducationRubric
func (r *EducationRubricRequest) Get(ctx context.Context) (resObj *EducationRubric, err error) {
	var query string
	if r.query != nil {
		query = "?" + r.query.Encode()
	}
	err = r.JSONRequest(ctx, "GET", query, nil, &resObj)
	return
}

// Update performs PATCH request for EducationRubric
func (r *EducationRubricRequest) Update(ctx context.Context, reqObj *EducationRubric) error {
	return r.JSONRequest(ctx, "PATCH", "", reqObj, nil)
}

// Delete performs DELETE request for EducationRubric
func (r *EducationRubricRequest) Delete(ctx context.Context) error {
	return r.JSONRequest(ctx, "DELETE", "", nil, nil)
}

// EducationSchoolRequestBuilder is request builder for EducationSchool
type EducationSchoolRequestBuilder struct{ BaseRequestBuilder }

// Request returns EducationSchoolRequest
func (b *EducationSchoolRequestBuilder) Request() *EducationSchoolRequest {
	return &EducationSchoolRequest{
		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
	}
}

// EducationSchoolRequest is request for EducationSchool
type EducationSchoolRequest struct{ BaseRequest }

// Get performs GET request for EducationSchool
func (r *EducationSchoolRequest) Get(ctx context.Context) (resObj *EducationSchool, err error) {
	var query string
	if r.query != nil {
		query = "?" + r.query.Encode()
	}
	err = r.JSONRequest(ctx, "GET", query, nil, &resObj)
	return
}

// Update performs PATCH request for EducationSchool
func (r *EducationSchoolRequest) Update(ctx context.Context, reqObj *EducationSchool) error {
	return r.JSONRequest(ctx, "PATCH", "", reqObj, nil)
}

// Delete performs DELETE request for EducationSchool
func (r *EducationSchoolRequest) Delete(ctx context.Context) error {
	return r.JSONRequest(ctx, "DELETE", "", nil, nil)
}

// EducationSubmissionRequestBuilder is request builder for EducationSubmission
type EducationSubmissionRequestBuilder struct{ BaseRequestBuilder }

// Request returns EducationSubmissionRequest
func (b *EducationSubmissionRequestBuilder) Request() *EducationSubmissionRequest {
	return &EducationSubmissionRequest{
		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
	}
}

// EducationSubmissionRequest is request for EducationSubmission
type EducationSubmissionRequest struct{ BaseRequest }

// Get performs GET request for EducationSubmission
func (r *EducationSubmissionRequest) Get(ctx context.Context) (resObj *EducationSubmission, err error) {
	var query string
	if r.query != nil {
		query = "?" + r.query.Encode()
	}
	err = r.JSONRequest(ctx, "GET", query, nil, &resObj)
	return
}

// Update performs PATCH request for EducationSubmission
func (r *EducationSubmissionRequest) Update(ctx context.Context, reqObj *EducationSubmission) error {
	return r.JSONRequest(ctx, "PATCH", "", reqObj, nil)
}

// Delete performs DELETE request for EducationSubmission
func (r *EducationSubmissionRequest) Delete(ctx context.Context) error {
	return r.JSONRequest(ctx, "DELETE", "", nil, nil)
}

// EducationSubmissionResourceRequestBuilder is request builder for EducationSubmissionResource
type EducationSubmissionResourceRequestBuilder struct{ BaseRequestBuilder }

// Request returns EducationSubmissionResourceRequest
func (b *EducationSubmissionResourceRequestBuilder) Request() *EducationSubmissionResourceRequest {
	return &EducationSubmissionResourceRequest{
		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
	}
}

// EducationSubmissionResourceRequest is request for EducationSubmissionResource
type EducationSubmissionResourceRequest struct{ BaseRequest }

// Get performs GET request for EducationSubmissionResource
func (r *EducationSubmissionResourceRequest) Get(ctx context.Context) (resObj *EducationSubmissionResource, err error) {
	var query string
	if r.query != nil {
		query = "?" + r.query.Encode()
	}
	err = r.JSONRequest(ctx, "GET", query, nil, &resObj)
	return
}

// Update performs PATCH request for EducationSubmissionResource
func (r *EducationSubmissionResourceRequest) Update(ctx context.Context, reqObj *EducationSubmissionResource) error {
	return r.JSONRequest(ctx, "PATCH", "", reqObj, nil)
}

// Delete performs DELETE request for EducationSubmissionResource
func (r *EducationSubmissionResourceRequest) Delete(ctx context.Context) error {
	return r.JSONRequest(ctx, "DELETE", "", nil, nil)
}

// EducationSynchronizationErrorRequestBuilder is request builder for EducationSynchronizationError
type EducationSynchronizationErrorRequestBuilder struct{ BaseRequestBuilder }

// Request returns EducationSynchronizationErrorRequest
func (b *EducationSynchronizationErrorRequestBuilder) Request() *EducationSynchronizationErrorRequest {
	return &EducationSynchronizationErrorRequest{
		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
	}
}

// EducationSynchronizationErrorRequest is request for EducationSynchronizationError
type EducationSynchronizationErrorRequest struct{ BaseRequest }

// Get performs GET request for EducationSynchronizationError
func (r *EducationSynchronizationErrorRequest) Get(ctx context.Context) (resObj *EducationSynchronizationError, err error) {
	var query string
	if r.query != nil {
		query = "?" + r.query.Encode()
	}
	err = r.JSONRequest(ctx, "GET", query, nil, &resObj)
	return
}

// Update performs PATCH request for EducationSynchronizationError
func (r *EducationSynchronizationErrorRequest) Update(ctx context.Context, reqObj *EducationSynchronizationError) error {
	return r.JSONRequest(ctx, "PATCH", "", reqObj, nil)
}

// Delete performs DELETE request for EducationSynchronizationError
func (r *EducationSynchronizationErrorRequest) Delete(ctx context.Context) error {
	return r.JSONRequest(ctx, "DELETE", "", nil, nil)
}

// EducationSynchronizationProfileRequestBuilder is request builder for EducationSynchronizationProfile
type EducationSynchronizationProfileRequestBuilder struct{ BaseRequestBuilder }

// Request returns EducationSynchronizationProfileRequest
func (b *EducationSynchronizationProfileRequestBuilder) Request() *EducationSynchronizationProfileRequest {
	return &EducationSynchronizationProfileRequest{
		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
	}
}

// EducationSynchronizationProfileRequest is request for EducationSynchronizationProfile
type EducationSynchronizationProfileRequest struct{ BaseRequest }

// Get performs GET request for EducationSynchronizationProfile
func (r *EducationSynchronizationProfileRequest) Get(ctx context.Context) (resObj *EducationSynchronizationProfile, err error) {
	var query string
	if r.query != nil {
		query = "?" + r.query.Encode()
	}
	err = r.JSONRequest(ctx, "GET", query, nil, &resObj)
	return
}

// Update performs PATCH request for EducationSynchronizationProfile
func (r *EducationSynchronizationProfileRequest) Update(ctx context.Context, reqObj *EducationSynchronizationProfile) error {
	return r.JSONRequest(ctx, "PATCH", "", reqObj, nil)
}

// Delete performs DELETE request for EducationSynchronizationProfile
func (r *EducationSynchronizationProfileRequest) Delete(ctx context.Context) error {
	return r.JSONRequest(ctx, "DELETE", "", nil, nil)
}

// EducationSynchronizationProfileStatusRequestBuilder is request builder for EducationSynchronizationProfileStatus
type EducationSynchronizationProfileStatusRequestBuilder struct{ BaseRequestBuilder }

// Request returns EducationSynchronizationProfileStatusRequest
func (b *EducationSynchronizationProfileStatusRequestBuilder) Request() *EducationSynchronizationProfileStatusRequest {
	return &EducationSynchronizationProfileStatusRequest{
		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
	}
}

// EducationSynchronizationProfileStatusRequest is request for EducationSynchronizationProfileStatus
type EducationSynchronizationProfileStatusRequest struct{ BaseRequest }

// Get performs GET request for EducationSynchronizationProfileStatus
func (r *EducationSynchronizationProfileStatusRequest) Get(ctx context.Context) (resObj *EducationSynchronizationProfileStatus, err error) {
	var query string
	if r.query != nil {
		query = "?" + r.query.Encode()
	}
	err = r.JSONRequest(ctx, "GET", query, nil, &resObj)
	return
}

// Update performs PATCH request for EducationSynchronizationProfileStatus
func (r *EducationSynchronizationProfileStatusRequest) Update(ctx context.Context, reqObj *EducationSynchronizationProfileStatus) error {
	return r.JSONRequest(ctx, "PATCH", "", reqObj, nil)
}

// Delete performs DELETE request for EducationSynchronizationProfileStatus
func (r *EducationSynchronizationProfileStatusRequest) Delete(ctx context.Context) error {
	return r.JSONRequest(ctx, "DELETE", "", nil, nil)
}

// EducationUserRequestBuilder is request builder for EducationUser
type EducationUserRequestBuilder struct{ BaseRequestBuilder }

// Request returns EducationUserRequest
func (b *EducationUserRequestBuilder) Request() *EducationUserRequest {
	return &EducationUserRequest{
		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
	}
}

// EducationUserRequest is request for EducationUser
type EducationUserRequest struct{ BaseRequest }

// Get performs GET request for EducationUser
func (r *EducationUserRequest) Get(ctx context.Context) (resObj *EducationUser, err error) {
	var query string
	if r.query != nil {
		query = "?" + r.query.Encode()
	}
	err = r.JSONRequest(ctx, "GET", query, nil, &resObj)
	return
}

// Update performs PATCH request for EducationUser
func (r *EducationUserRequest) Update(ctx context.Context, reqObj *EducationUser) error {
	return r.JSONRequest(ctx, "PATCH", "", reqObj, nil)
}

// Delete performs DELETE request for EducationUser
func (r *EducationUserRequest) Delete(ctx context.Context) error {
	return r.JSONRequest(ctx, "DELETE", "", nil, nil)
}

//
type EducationAssignmentPublishRequestBuilder struct{ BaseRequestBuilder }

// Publish action undocumented
func (b *EducationAssignmentRequestBuilder) Publish(reqObj *EducationAssignmentPublishRequestParameter) *EducationAssignmentPublishRequestBuilder {
	bb := &EducationAssignmentPublishRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
	bb.BaseRequestBuilder.baseURL += "/publish"
	bb.BaseRequestBuilder.requestObject = reqObj
	return bb
}

//
type EducationAssignmentPublishRequest struct{ BaseRequest }

//
func (b *EducationAssignmentPublishRequestBuilder) Request() *EducationAssignmentPublishRequest {
	return &EducationAssignmentPublishRequest{
		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client, requestObject: b.requestObject},
	}
}

//
func (r *EducationAssignmentPublishRequest) Post(ctx context.Context) (resObj *EducationAssignment, err error) {
	err = r.JSONRequest(ctx, "POST", "", r.requestObject, &resObj)
	return
}

//
type EducationSubmissionReturnRequestBuilder struct{ BaseRequestBuilder }

// Return action undocumented
func (b *EducationSubmissionRequestBuilder) Return(reqObj *EducationSubmissionReturnRequestParameter) *EducationSubmissionReturnRequestBuilder {
	bb := &EducationSubmissionReturnRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
	bb.BaseRequestBuilder.baseURL += "/return"
	bb.BaseRequestBuilder.requestObject = reqObj
	return bb
}

//
type EducationSubmissionReturnRequest struct{ BaseRequest }

//
func (b *EducationSubmissionReturnRequestBuilder) Request() *EducationSubmissionReturnRequest {
	return &EducationSubmissionReturnRequest{
		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client, requestObject: b.requestObject},
	}
}

//
func (r *EducationSubmissionReturnRequest) Post(ctx context.Context) (resObj *EducationSubmission, err error) {
	err = r.JSONRequest(ctx, "POST", "", r.requestObject, &resObj)
	return
}

//
type EducationSubmissionSubmitRequestBuilder struct{ BaseRequestBuilder }

// Submit action undocumented
func (b *EducationSubmissionRequestBuilder) Submit(reqObj *EducationSubmissionSubmitRequestParameter) *EducationSubmissionSubmitRequestBuilder {
	bb := &EducationSubmissionSubmitRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
	bb.BaseRequestBuilder.baseURL += "/submit"
	bb.BaseRequestBuilder.requestObject = reqObj
	return bb
}

//
type EducationSubmissionSubmitRequest struct{ BaseRequest }

//
func (b *EducationSubmissionSubmitRequestBuilder) Request() *EducationSubmissionSubmitRequest {
	return &EducationSubmissionSubmitRequest{
		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client, requestObject: b.requestObject},
	}
}

//
func (r *EducationSubmissionSubmitRequest) Post(ctx context.Context) (resObj *EducationSubmission, err error) {
	err = r.JSONRequest(ctx, "POST", "", r.requestObject, &resObj)
	return
}

//
type EducationSubmissionUnsubmitRequestBuilder struct{ BaseRequestBuilder }

// Unsubmit action undocumented
func (b *EducationSubmissionRequestBuilder) Unsubmit(reqObj *EducationSubmissionUnsubmitRequestParameter) *EducationSubmissionUnsubmitRequestBuilder {
	bb := &EducationSubmissionUnsubmitRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
	bb.BaseRequestBuilder.baseURL += "/unsubmit"
	bb.BaseRequestBuilder.requestObject = reqObj
	return bb
}

//
type EducationSubmissionUnsubmitRequest struct{ BaseRequest }

//
func (b *EducationSubmissionUnsubmitRequestBuilder) Request() *EducationSubmissionUnsubmitRequest {
	return &EducationSubmissionUnsubmitRequest{
		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client, requestObject: b.requestObject},
	}
}

//
func (r *EducationSubmissionUnsubmitRequest) Post(ctx context.Context) (resObj *EducationSubmission, err error) {
	err = r.JSONRequest(ctx, "POST", "", r.requestObject, &resObj)
	return
}

//
type EducationSynchronizationProfileResumeRequestBuilder struct{ BaseRequestBuilder }

// Resume action undocumented
func (b *EducationSynchronizationProfileRequestBuilder) Resume(reqObj *EducationSynchronizationProfileResumeRequestParameter) *EducationSynchronizationProfileResumeRequestBuilder {
	bb := &EducationSynchronizationProfileResumeRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
	bb.BaseRequestBuilder.baseURL += "/resume"
	bb.BaseRequestBuilder.requestObject = reqObj
	return bb
}

//
type EducationSynchronizationProfileResumeRequest struct{ BaseRequest }

//
func (b *EducationSynchronizationProfileResumeRequestBuilder) Request() *EducationSynchronizationProfileResumeRequest {
	return &EducationSynchronizationProfileResumeRequest{
		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client, requestObject: b.requestObject},
	}
}

//
func (r *EducationSynchronizationProfileResumeRequest) Post(ctx context.Context) error {
	return r.JSONRequest(ctx, "POST", "", r.requestObject, nil)
}

//
type EducationSynchronizationProfilePauseRequestBuilder struct{ BaseRequestBuilder }

// Pause action undocumented
func (b *EducationSynchronizationProfileRequestBuilder) Pause(reqObj *EducationSynchronizationProfilePauseRequestParameter) *EducationSynchronizationProfilePauseRequestBuilder {
	bb := &EducationSynchronizationProfilePauseRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
	bb.BaseRequestBuilder.baseURL += "/pause"
	bb.BaseRequestBuilder.requestObject = reqObj
	return bb
}

//
type EducationSynchronizationProfilePauseRequest struct{ BaseRequest }

//
func (b *EducationSynchronizationProfilePauseRequestBuilder) Request() *EducationSynchronizationProfilePauseRequest {
	return &EducationSynchronizationProfilePauseRequest{
		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client, requestObject: b.requestObject},
	}
}

//
func (r *EducationSynchronizationProfilePauseRequest) Post(ctx context.Context) error {
	return r.JSONRequest(ctx, "POST", "", r.requestObject, nil)
}

//
type EducationSynchronizationProfileResetRequestBuilder struct{ BaseRequestBuilder }

// Reset action undocumented
func (b *EducationSynchronizationProfileRequestBuilder) Reset(reqObj *EducationSynchronizationProfileResetRequestParameter) *EducationSynchronizationProfileResetRequestBuilder {
	bb := &EducationSynchronizationProfileResetRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
	bb.BaseRequestBuilder.baseURL += "/reset"
	bb.BaseRequestBuilder.requestObject = reqObj
	return bb
}

//
type EducationSynchronizationProfileResetRequest struct{ BaseRequest }

//
func (b *EducationSynchronizationProfileResetRequestBuilder) Request() *EducationSynchronizationProfileResetRequest {
	return &EducationSynchronizationProfileResetRequest{
		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client, requestObject: b.requestObject},
	}
}

//
func (r *EducationSynchronizationProfileResetRequest) Post(ctx context.Context) error {
	return r.JSONRequest(ctx, "POST", "", r.requestObject, nil)
}

//
type EducationSynchronizationProfileStartRequestBuilder struct{ BaseRequestBuilder }

// Start action undocumented
func (b *EducationSynchronizationProfileRequestBuilder) Start(reqObj *EducationSynchronizationProfileStartRequestParameter) *EducationSynchronizationProfileStartRequestBuilder {
	bb := &EducationSynchronizationProfileStartRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
	bb.BaseRequestBuilder.baseURL += "/start"
	bb.BaseRequestBuilder.requestObject = reqObj
	return bb
}

//
type EducationSynchronizationProfileStartRequest struct{ BaseRequest }

//
func (b *EducationSynchronizationProfileStartRequestBuilder) Request() *EducationSynchronizationProfileStartRequest {
	return &EducationSynchronizationProfileStartRequest{
		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client, requestObject: b.requestObject},
	}
}

//
func (r *EducationSynchronizationProfileStartRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]EducationFileSynchronizationVerificationMessage, error) {
	req, err := r.NewJSONRequest(method, path, obj)
	if err != nil {
		return nil, err
	}
	if ctx != nil {
		req = req.WithContext(ctx)
	}
	res, err := r.client.Do(req)
	if err != nil {
		return nil, err
	}
	var values []EducationFileSynchronizationVerificationMessage
	for {
		if res.StatusCode != http.StatusOK {
			b, _ := ioutil.ReadAll(res.Body)
			res.Body.Close()
			errRes := &ErrorResponse{Response: res}
			err := jsonx.Unmarshal(b, errRes)
			if err != nil {
				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
			}
			return nil, errRes
		}
		var (
			paging Paging
			value  []EducationFileSynchronizationVerificationMessage
		)
		err := jsonx.NewDecoder(res.Body).Decode(&paging)
		res.Body.Close()
		if err != nil {
			return nil, err
		}
		err = jsonx.Unmarshal(paging.Value, &value)
		if err != nil {
			return nil, err
		}
		values = append(values, value...)
		if n >= 0 {
			n--
		}
		if n == 0 || len(paging.NextLink) == 0 {
			return values, nil
		}
		req, err = http.NewRequest("GET", paging.NextLink, nil)
		if ctx != nil {
			req = req.WithContext(ctx)
		}
		res, err = r.client.Do(req)
		if err != nil {
			return nil, err
		}
	}
}

//
func (r *EducationSynchronizationProfileStartRequest) PostN(ctx context.Context, n int) ([]EducationFileSynchronizationVerificationMessage, error) {
	return r.Paging(ctx, "POST", "", r.requestObject, n)
}

//
func (r *EducationSynchronizationProfileStartRequest) Post(ctx context.Context) ([]EducationFileSynchronizationVerificationMessage, error) {
	return r.Paging(ctx, "POST", "", r.requestObject, 0)
}