github.com/yaegashi/msgraph.go@v0.1.4/beta/ActionSchedule.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  	"time"
    11  
    12  	"github.com/yaegashi/msgraph.go/jsonx"
    13  )
    14  
    15  // ScheduleShareRequestParameter undocumented
    16  type ScheduleShareRequestParameter struct {
    17  	// NotifyTeam undocumented
    18  	NotifyTeam *bool `json:"notifyTeam,omitempty"`
    19  	// StartDateTime undocumented
    20  	StartDateTime *time.Time `json:"startDateTime,omitempty"`
    21  	// EndDateTime undocumented
    22  	EndDateTime *time.Time `json:"endDateTime,omitempty"`
    23  }
    24  
    25  // ScheduleChangeRequestObjectApproveRequestParameter undocumented
    26  type ScheduleChangeRequestObjectApproveRequestParameter struct {
    27  	// Message undocumented
    28  	Message *string `json:"message,omitempty"`
    29  }
    30  
    31  // ScheduleChangeRequestObjectDeclineRequestParameter undocumented
    32  type ScheduleChangeRequestObjectDeclineRequestParameter struct {
    33  	// Message undocumented
    34  	Message *string `json:"message,omitempty"`
    35  }
    36  
    37  // OpenShiftChangeRequests returns request builder for OpenShiftChangeRequestObject collection
    38  func (b *ScheduleRequestBuilder) OpenShiftChangeRequests() *ScheduleOpenShiftChangeRequestsCollectionRequestBuilder {
    39  	bb := &ScheduleOpenShiftChangeRequestsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
    40  	bb.baseURL += "/openShiftChangeRequests"
    41  	return bb
    42  }
    43  
    44  // ScheduleOpenShiftChangeRequestsCollectionRequestBuilder is request builder for OpenShiftChangeRequestObject collection
    45  type ScheduleOpenShiftChangeRequestsCollectionRequestBuilder struct{ BaseRequestBuilder }
    46  
    47  // Request returns request for OpenShiftChangeRequestObject collection
    48  func (b *ScheduleOpenShiftChangeRequestsCollectionRequestBuilder) Request() *ScheduleOpenShiftChangeRequestsCollectionRequest {
    49  	return &ScheduleOpenShiftChangeRequestsCollectionRequest{
    50  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
    51  	}
    52  }
    53  
    54  // ID returns request builder for OpenShiftChangeRequestObject item
    55  func (b *ScheduleOpenShiftChangeRequestsCollectionRequestBuilder) ID(id string) *OpenShiftChangeRequestObjectRequestBuilder {
    56  	bb := &OpenShiftChangeRequestObjectRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
    57  	bb.baseURL += "/" + id
    58  	return bb
    59  }
    60  
    61  // ScheduleOpenShiftChangeRequestsCollectionRequest is request for OpenShiftChangeRequestObject collection
    62  type ScheduleOpenShiftChangeRequestsCollectionRequest struct{ BaseRequest }
    63  
    64  // Paging perfoms paging operation for OpenShiftChangeRequestObject collection
    65  func (r *ScheduleOpenShiftChangeRequestsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]OpenShiftChangeRequestObject, error) {
    66  	req, err := r.NewJSONRequest(method, path, obj)
    67  	if err != nil {
    68  		return nil, err
    69  	}
    70  	if ctx != nil {
    71  		req = req.WithContext(ctx)
    72  	}
    73  	res, err := r.client.Do(req)
    74  	if err != nil {
    75  		return nil, err
    76  	}
    77  	var values []OpenShiftChangeRequestObject
    78  	for {
    79  		if res.StatusCode != http.StatusOK {
    80  			b, _ := ioutil.ReadAll(res.Body)
    81  			res.Body.Close()
    82  			errRes := &ErrorResponse{Response: res}
    83  			err := jsonx.Unmarshal(b, errRes)
    84  			if err != nil {
    85  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
    86  			}
    87  			return nil, errRes
    88  		}
    89  		var (
    90  			paging Paging
    91  			value  []OpenShiftChangeRequestObject
    92  		)
    93  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
    94  		res.Body.Close()
    95  		if err != nil {
    96  			return nil, err
    97  		}
    98  		err = jsonx.Unmarshal(paging.Value, &value)
    99  		if err != nil {
   100  			return nil, err
   101  		}
   102  		values = append(values, value...)
   103  		if n >= 0 {
   104  			n--
   105  		}
   106  		if n == 0 || len(paging.NextLink) == 0 {
   107  			return values, nil
   108  		}
   109  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   110  		if ctx != nil {
   111  			req = req.WithContext(ctx)
   112  		}
   113  		res, err = r.client.Do(req)
   114  		if err != nil {
   115  			return nil, err
   116  		}
   117  	}
   118  }
   119  
   120  // GetN performs GET request for OpenShiftChangeRequestObject collection, max N pages
   121  func (r *ScheduleOpenShiftChangeRequestsCollectionRequest) GetN(ctx context.Context, n int) ([]OpenShiftChangeRequestObject, error) {
   122  	var query string
   123  	if r.query != nil {
   124  		query = "?" + r.query.Encode()
   125  	}
   126  	return r.Paging(ctx, "GET", query, nil, n)
   127  }
   128  
   129  // Get performs GET request for OpenShiftChangeRequestObject collection
   130  func (r *ScheduleOpenShiftChangeRequestsCollectionRequest) Get(ctx context.Context) ([]OpenShiftChangeRequestObject, error) {
   131  	return r.GetN(ctx, 0)
   132  }
   133  
   134  // Add performs POST request for OpenShiftChangeRequestObject collection
   135  func (r *ScheduleOpenShiftChangeRequestsCollectionRequest) Add(ctx context.Context, reqObj *OpenShiftChangeRequestObject) (resObj *OpenShiftChangeRequestObject, err error) {
   136  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   137  	return
   138  }
   139  
   140  // OpenShifts returns request builder for OpenShift collection
   141  func (b *ScheduleRequestBuilder) OpenShifts() *ScheduleOpenShiftsCollectionRequestBuilder {
   142  	bb := &ScheduleOpenShiftsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   143  	bb.baseURL += "/openShifts"
   144  	return bb
   145  }
   146  
   147  // ScheduleOpenShiftsCollectionRequestBuilder is request builder for OpenShift collection
   148  type ScheduleOpenShiftsCollectionRequestBuilder struct{ BaseRequestBuilder }
   149  
   150  // Request returns request for OpenShift collection
   151  func (b *ScheduleOpenShiftsCollectionRequestBuilder) Request() *ScheduleOpenShiftsCollectionRequest {
   152  	return &ScheduleOpenShiftsCollectionRequest{
   153  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   154  	}
   155  }
   156  
   157  // ID returns request builder for OpenShift item
   158  func (b *ScheduleOpenShiftsCollectionRequestBuilder) ID(id string) *OpenShiftRequestBuilder {
   159  	bb := &OpenShiftRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   160  	bb.baseURL += "/" + id
   161  	return bb
   162  }
   163  
   164  // ScheduleOpenShiftsCollectionRequest is request for OpenShift collection
   165  type ScheduleOpenShiftsCollectionRequest struct{ BaseRequest }
   166  
   167  // Paging perfoms paging operation for OpenShift collection
   168  func (r *ScheduleOpenShiftsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]OpenShift, error) {
   169  	req, err := r.NewJSONRequest(method, path, obj)
   170  	if err != nil {
   171  		return nil, err
   172  	}
   173  	if ctx != nil {
   174  		req = req.WithContext(ctx)
   175  	}
   176  	res, err := r.client.Do(req)
   177  	if err != nil {
   178  		return nil, err
   179  	}
   180  	var values []OpenShift
   181  	for {
   182  		if res.StatusCode != http.StatusOK {
   183  			b, _ := ioutil.ReadAll(res.Body)
   184  			res.Body.Close()
   185  			errRes := &ErrorResponse{Response: res}
   186  			err := jsonx.Unmarshal(b, errRes)
   187  			if err != nil {
   188  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
   189  			}
   190  			return nil, errRes
   191  		}
   192  		var (
   193  			paging Paging
   194  			value  []OpenShift
   195  		)
   196  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
   197  		res.Body.Close()
   198  		if err != nil {
   199  			return nil, err
   200  		}
   201  		err = jsonx.Unmarshal(paging.Value, &value)
   202  		if err != nil {
   203  			return nil, err
   204  		}
   205  		values = append(values, value...)
   206  		if n >= 0 {
   207  			n--
   208  		}
   209  		if n == 0 || len(paging.NextLink) == 0 {
   210  			return values, nil
   211  		}
   212  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   213  		if ctx != nil {
   214  			req = req.WithContext(ctx)
   215  		}
   216  		res, err = r.client.Do(req)
   217  		if err != nil {
   218  			return nil, err
   219  		}
   220  	}
   221  }
   222  
   223  // GetN performs GET request for OpenShift collection, max N pages
   224  func (r *ScheduleOpenShiftsCollectionRequest) GetN(ctx context.Context, n int) ([]OpenShift, error) {
   225  	var query string
   226  	if r.query != nil {
   227  		query = "?" + r.query.Encode()
   228  	}
   229  	return r.Paging(ctx, "GET", query, nil, n)
   230  }
   231  
   232  // Get performs GET request for OpenShift collection
   233  func (r *ScheduleOpenShiftsCollectionRequest) Get(ctx context.Context) ([]OpenShift, error) {
   234  	return r.GetN(ctx, 0)
   235  }
   236  
   237  // Add performs POST request for OpenShift collection
   238  func (r *ScheduleOpenShiftsCollectionRequest) Add(ctx context.Context, reqObj *OpenShift) (resObj *OpenShift, err error) {
   239  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   240  	return
   241  }
   242  
   243  // SchedulingGroups returns request builder for SchedulingGroup collection
   244  func (b *ScheduleRequestBuilder) SchedulingGroups() *ScheduleSchedulingGroupsCollectionRequestBuilder {
   245  	bb := &ScheduleSchedulingGroupsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   246  	bb.baseURL += "/schedulingGroups"
   247  	return bb
   248  }
   249  
   250  // ScheduleSchedulingGroupsCollectionRequestBuilder is request builder for SchedulingGroup collection
   251  type ScheduleSchedulingGroupsCollectionRequestBuilder struct{ BaseRequestBuilder }
   252  
   253  // Request returns request for SchedulingGroup collection
   254  func (b *ScheduleSchedulingGroupsCollectionRequestBuilder) Request() *ScheduleSchedulingGroupsCollectionRequest {
   255  	return &ScheduleSchedulingGroupsCollectionRequest{
   256  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   257  	}
   258  }
   259  
   260  // ID returns request builder for SchedulingGroup item
   261  func (b *ScheduleSchedulingGroupsCollectionRequestBuilder) ID(id string) *SchedulingGroupRequestBuilder {
   262  	bb := &SchedulingGroupRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   263  	bb.baseURL += "/" + id
   264  	return bb
   265  }
   266  
   267  // ScheduleSchedulingGroupsCollectionRequest is request for SchedulingGroup collection
   268  type ScheduleSchedulingGroupsCollectionRequest struct{ BaseRequest }
   269  
   270  // Paging perfoms paging operation for SchedulingGroup collection
   271  func (r *ScheduleSchedulingGroupsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]SchedulingGroup, error) {
   272  	req, err := r.NewJSONRequest(method, path, obj)
   273  	if err != nil {
   274  		return nil, err
   275  	}
   276  	if ctx != nil {
   277  		req = req.WithContext(ctx)
   278  	}
   279  	res, err := r.client.Do(req)
   280  	if err != nil {
   281  		return nil, err
   282  	}
   283  	var values []SchedulingGroup
   284  	for {
   285  		if res.StatusCode != http.StatusOK {
   286  			b, _ := ioutil.ReadAll(res.Body)
   287  			res.Body.Close()
   288  			errRes := &ErrorResponse{Response: res}
   289  			err := jsonx.Unmarshal(b, errRes)
   290  			if err != nil {
   291  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
   292  			}
   293  			return nil, errRes
   294  		}
   295  		var (
   296  			paging Paging
   297  			value  []SchedulingGroup
   298  		)
   299  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
   300  		res.Body.Close()
   301  		if err != nil {
   302  			return nil, err
   303  		}
   304  		err = jsonx.Unmarshal(paging.Value, &value)
   305  		if err != nil {
   306  			return nil, err
   307  		}
   308  		values = append(values, value...)
   309  		if n >= 0 {
   310  			n--
   311  		}
   312  		if n == 0 || len(paging.NextLink) == 0 {
   313  			return values, nil
   314  		}
   315  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   316  		if ctx != nil {
   317  			req = req.WithContext(ctx)
   318  		}
   319  		res, err = r.client.Do(req)
   320  		if err != nil {
   321  			return nil, err
   322  		}
   323  	}
   324  }
   325  
   326  // GetN performs GET request for SchedulingGroup collection, max N pages
   327  func (r *ScheduleSchedulingGroupsCollectionRequest) GetN(ctx context.Context, n int) ([]SchedulingGroup, error) {
   328  	var query string
   329  	if r.query != nil {
   330  		query = "?" + r.query.Encode()
   331  	}
   332  	return r.Paging(ctx, "GET", query, nil, n)
   333  }
   334  
   335  // Get performs GET request for SchedulingGroup collection
   336  func (r *ScheduleSchedulingGroupsCollectionRequest) Get(ctx context.Context) ([]SchedulingGroup, error) {
   337  	return r.GetN(ctx, 0)
   338  }
   339  
   340  // Add performs POST request for SchedulingGroup collection
   341  func (r *ScheduleSchedulingGroupsCollectionRequest) Add(ctx context.Context, reqObj *SchedulingGroup) (resObj *SchedulingGroup, err error) {
   342  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   343  	return
   344  }
   345  
   346  // Shifts returns request builder for Shift collection
   347  func (b *ScheduleRequestBuilder) Shifts() *ScheduleShiftsCollectionRequestBuilder {
   348  	bb := &ScheduleShiftsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   349  	bb.baseURL += "/shifts"
   350  	return bb
   351  }
   352  
   353  // ScheduleShiftsCollectionRequestBuilder is request builder for Shift collection
   354  type ScheduleShiftsCollectionRequestBuilder struct{ BaseRequestBuilder }
   355  
   356  // Request returns request for Shift collection
   357  func (b *ScheduleShiftsCollectionRequestBuilder) Request() *ScheduleShiftsCollectionRequest {
   358  	return &ScheduleShiftsCollectionRequest{
   359  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   360  	}
   361  }
   362  
   363  // ID returns request builder for Shift item
   364  func (b *ScheduleShiftsCollectionRequestBuilder) ID(id string) *ShiftRequestBuilder {
   365  	bb := &ShiftRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   366  	bb.baseURL += "/" + id
   367  	return bb
   368  }
   369  
   370  // ScheduleShiftsCollectionRequest is request for Shift collection
   371  type ScheduleShiftsCollectionRequest struct{ BaseRequest }
   372  
   373  // Paging perfoms paging operation for Shift collection
   374  func (r *ScheduleShiftsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]Shift, error) {
   375  	req, err := r.NewJSONRequest(method, path, obj)
   376  	if err != nil {
   377  		return nil, err
   378  	}
   379  	if ctx != nil {
   380  		req = req.WithContext(ctx)
   381  	}
   382  	res, err := r.client.Do(req)
   383  	if err != nil {
   384  		return nil, err
   385  	}
   386  	var values []Shift
   387  	for {
   388  		if res.StatusCode != http.StatusOK {
   389  			b, _ := ioutil.ReadAll(res.Body)
   390  			res.Body.Close()
   391  			errRes := &ErrorResponse{Response: res}
   392  			err := jsonx.Unmarshal(b, errRes)
   393  			if err != nil {
   394  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
   395  			}
   396  			return nil, errRes
   397  		}
   398  		var (
   399  			paging Paging
   400  			value  []Shift
   401  		)
   402  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
   403  		res.Body.Close()
   404  		if err != nil {
   405  			return nil, err
   406  		}
   407  		err = jsonx.Unmarshal(paging.Value, &value)
   408  		if err != nil {
   409  			return nil, err
   410  		}
   411  		values = append(values, value...)
   412  		if n >= 0 {
   413  			n--
   414  		}
   415  		if n == 0 || len(paging.NextLink) == 0 {
   416  			return values, nil
   417  		}
   418  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   419  		if ctx != nil {
   420  			req = req.WithContext(ctx)
   421  		}
   422  		res, err = r.client.Do(req)
   423  		if err != nil {
   424  			return nil, err
   425  		}
   426  	}
   427  }
   428  
   429  // GetN performs GET request for Shift collection, max N pages
   430  func (r *ScheduleShiftsCollectionRequest) GetN(ctx context.Context, n int) ([]Shift, error) {
   431  	var query string
   432  	if r.query != nil {
   433  		query = "?" + r.query.Encode()
   434  	}
   435  	return r.Paging(ctx, "GET", query, nil, n)
   436  }
   437  
   438  // Get performs GET request for Shift collection
   439  func (r *ScheduleShiftsCollectionRequest) Get(ctx context.Context) ([]Shift, error) {
   440  	return r.GetN(ctx, 0)
   441  }
   442  
   443  // Add performs POST request for Shift collection
   444  func (r *ScheduleShiftsCollectionRequest) Add(ctx context.Context, reqObj *Shift) (resObj *Shift, err error) {
   445  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   446  	return
   447  }
   448  
   449  // SwapShiftsChangeRequests returns request builder for SwapShiftsChangeRequestObject collection
   450  func (b *ScheduleRequestBuilder) SwapShiftsChangeRequests() *ScheduleSwapShiftsChangeRequestsCollectionRequestBuilder {
   451  	bb := &ScheduleSwapShiftsChangeRequestsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   452  	bb.baseURL += "/swapShiftsChangeRequests"
   453  	return bb
   454  }
   455  
   456  // ScheduleSwapShiftsChangeRequestsCollectionRequestBuilder is request builder for SwapShiftsChangeRequestObject collection
   457  type ScheduleSwapShiftsChangeRequestsCollectionRequestBuilder struct{ BaseRequestBuilder }
   458  
   459  // Request returns request for SwapShiftsChangeRequestObject collection
   460  func (b *ScheduleSwapShiftsChangeRequestsCollectionRequestBuilder) Request() *ScheduleSwapShiftsChangeRequestsCollectionRequest {
   461  	return &ScheduleSwapShiftsChangeRequestsCollectionRequest{
   462  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   463  	}
   464  }
   465  
   466  // ID returns request builder for SwapShiftsChangeRequestObject item
   467  func (b *ScheduleSwapShiftsChangeRequestsCollectionRequestBuilder) ID(id string) *SwapShiftsChangeRequestObjectRequestBuilder {
   468  	bb := &SwapShiftsChangeRequestObjectRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   469  	bb.baseURL += "/" + id
   470  	return bb
   471  }
   472  
   473  // ScheduleSwapShiftsChangeRequestsCollectionRequest is request for SwapShiftsChangeRequestObject collection
   474  type ScheduleSwapShiftsChangeRequestsCollectionRequest struct{ BaseRequest }
   475  
   476  // Paging perfoms paging operation for SwapShiftsChangeRequestObject collection
   477  func (r *ScheduleSwapShiftsChangeRequestsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]SwapShiftsChangeRequestObject, error) {
   478  	req, err := r.NewJSONRequest(method, path, obj)
   479  	if err != nil {
   480  		return nil, err
   481  	}
   482  	if ctx != nil {
   483  		req = req.WithContext(ctx)
   484  	}
   485  	res, err := r.client.Do(req)
   486  	if err != nil {
   487  		return nil, err
   488  	}
   489  	var values []SwapShiftsChangeRequestObject
   490  	for {
   491  		if res.StatusCode != http.StatusOK {
   492  			b, _ := ioutil.ReadAll(res.Body)
   493  			res.Body.Close()
   494  			errRes := &ErrorResponse{Response: res}
   495  			err := jsonx.Unmarshal(b, errRes)
   496  			if err != nil {
   497  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
   498  			}
   499  			return nil, errRes
   500  		}
   501  		var (
   502  			paging Paging
   503  			value  []SwapShiftsChangeRequestObject
   504  		)
   505  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
   506  		res.Body.Close()
   507  		if err != nil {
   508  			return nil, err
   509  		}
   510  		err = jsonx.Unmarshal(paging.Value, &value)
   511  		if err != nil {
   512  			return nil, err
   513  		}
   514  		values = append(values, value...)
   515  		if n >= 0 {
   516  			n--
   517  		}
   518  		if n == 0 || len(paging.NextLink) == 0 {
   519  			return values, nil
   520  		}
   521  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   522  		if ctx != nil {
   523  			req = req.WithContext(ctx)
   524  		}
   525  		res, err = r.client.Do(req)
   526  		if err != nil {
   527  			return nil, err
   528  		}
   529  	}
   530  }
   531  
   532  // GetN performs GET request for SwapShiftsChangeRequestObject collection, max N pages
   533  func (r *ScheduleSwapShiftsChangeRequestsCollectionRequest) GetN(ctx context.Context, n int) ([]SwapShiftsChangeRequestObject, error) {
   534  	var query string
   535  	if r.query != nil {
   536  		query = "?" + r.query.Encode()
   537  	}
   538  	return r.Paging(ctx, "GET", query, nil, n)
   539  }
   540  
   541  // Get performs GET request for SwapShiftsChangeRequestObject collection
   542  func (r *ScheduleSwapShiftsChangeRequestsCollectionRequest) Get(ctx context.Context) ([]SwapShiftsChangeRequestObject, error) {
   543  	return r.GetN(ctx, 0)
   544  }
   545  
   546  // Add performs POST request for SwapShiftsChangeRequestObject collection
   547  func (r *ScheduleSwapShiftsChangeRequestsCollectionRequest) Add(ctx context.Context, reqObj *SwapShiftsChangeRequestObject) (resObj *SwapShiftsChangeRequestObject, err error) {
   548  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   549  	return
   550  }
   551  
   552  // TimeOffReasons returns request builder for TimeOffReason collection
   553  func (b *ScheduleRequestBuilder) TimeOffReasons() *ScheduleTimeOffReasonsCollectionRequestBuilder {
   554  	bb := &ScheduleTimeOffReasonsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   555  	bb.baseURL += "/timeOffReasons"
   556  	return bb
   557  }
   558  
   559  // ScheduleTimeOffReasonsCollectionRequestBuilder is request builder for TimeOffReason collection
   560  type ScheduleTimeOffReasonsCollectionRequestBuilder struct{ BaseRequestBuilder }
   561  
   562  // Request returns request for TimeOffReason collection
   563  func (b *ScheduleTimeOffReasonsCollectionRequestBuilder) Request() *ScheduleTimeOffReasonsCollectionRequest {
   564  	return &ScheduleTimeOffReasonsCollectionRequest{
   565  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   566  	}
   567  }
   568  
   569  // ID returns request builder for TimeOffReason item
   570  func (b *ScheduleTimeOffReasonsCollectionRequestBuilder) ID(id string) *TimeOffReasonRequestBuilder {
   571  	bb := &TimeOffReasonRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   572  	bb.baseURL += "/" + id
   573  	return bb
   574  }
   575  
   576  // ScheduleTimeOffReasonsCollectionRequest is request for TimeOffReason collection
   577  type ScheduleTimeOffReasonsCollectionRequest struct{ BaseRequest }
   578  
   579  // Paging perfoms paging operation for TimeOffReason collection
   580  func (r *ScheduleTimeOffReasonsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]TimeOffReason, error) {
   581  	req, err := r.NewJSONRequest(method, path, obj)
   582  	if err != nil {
   583  		return nil, err
   584  	}
   585  	if ctx != nil {
   586  		req = req.WithContext(ctx)
   587  	}
   588  	res, err := r.client.Do(req)
   589  	if err != nil {
   590  		return nil, err
   591  	}
   592  	var values []TimeOffReason
   593  	for {
   594  		if res.StatusCode != http.StatusOK {
   595  			b, _ := ioutil.ReadAll(res.Body)
   596  			res.Body.Close()
   597  			errRes := &ErrorResponse{Response: res}
   598  			err := jsonx.Unmarshal(b, errRes)
   599  			if err != nil {
   600  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
   601  			}
   602  			return nil, errRes
   603  		}
   604  		var (
   605  			paging Paging
   606  			value  []TimeOffReason
   607  		)
   608  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
   609  		res.Body.Close()
   610  		if err != nil {
   611  			return nil, err
   612  		}
   613  		err = jsonx.Unmarshal(paging.Value, &value)
   614  		if err != nil {
   615  			return nil, err
   616  		}
   617  		values = append(values, value...)
   618  		if n >= 0 {
   619  			n--
   620  		}
   621  		if n == 0 || len(paging.NextLink) == 0 {
   622  			return values, nil
   623  		}
   624  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   625  		if ctx != nil {
   626  			req = req.WithContext(ctx)
   627  		}
   628  		res, err = r.client.Do(req)
   629  		if err != nil {
   630  			return nil, err
   631  		}
   632  	}
   633  }
   634  
   635  // GetN performs GET request for TimeOffReason collection, max N pages
   636  func (r *ScheduleTimeOffReasonsCollectionRequest) GetN(ctx context.Context, n int) ([]TimeOffReason, error) {
   637  	var query string
   638  	if r.query != nil {
   639  		query = "?" + r.query.Encode()
   640  	}
   641  	return r.Paging(ctx, "GET", query, nil, n)
   642  }
   643  
   644  // Get performs GET request for TimeOffReason collection
   645  func (r *ScheduleTimeOffReasonsCollectionRequest) Get(ctx context.Context) ([]TimeOffReason, error) {
   646  	return r.GetN(ctx, 0)
   647  }
   648  
   649  // Add performs POST request for TimeOffReason collection
   650  func (r *ScheduleTimeOffReasonsCollectionRequest) Add(ctx context.Context, reqObj *TimeOffReason) (resObj *TimeOffReason, err error) {
   651  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   652  	return
   653  }
   654  
   655  // TimeOffRequests returns request builder for TimeOffRequestObject collection
   656  func (b *ScheduleRequestBuilder) TimeOffRequests() *ScheduleTimeOffRequestsCollectionRequestBuilder {
   657  	bb := &ScheduleTimeOffRequestsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   658  	bb.baseURL += "/timeOffRequests"
   659  	return bb
   660  }
   661  
   662  // ScheduleTimeOffRequestsCollectionRequestBuilder is request builder for TimeOffRequestObject collection
   663  type ScheduleTimeOffRequestsCollectionRequestBuilder struct{ BaseRequestBuilder }
   664  
   665  // Request returns request for TimeOffRequestObject collection
   666  func (b *ScheduleTimeOffRequestsCollectionRequestBuilder) Request() *ScheduleTimeOffRequestsCollectionRequest {
   667  	return &ScheduleTimeOffRequestsCollectionRequest{
   668  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   669  	}
   670  }
   671  
   672  // ID returns request builder for TimeOffRequestObject item
   673  func (b *ScheduleTimeOffRequestsCollectionRequestBuilder) ID(id string) *TimeOffRequestObjectRequestBuilder {
   674  	bb := &TimeOffRequestObjectRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   675  	bb.baseURL += "/" + id
   676  	return bb
   677  }
   678  
   679  // ScheduleTimeOffRequestsCollectionRequest is request for TimeOffRequestObject collection
   680  type ScheduleTimeOffRequestsCollectionRequest struct{ BaseRequest }
   681  
   682  // Paging perfoms paging operation for TimeOffRequestObject collection
   683  func (r *ScheduleTimeOffRequestsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]TimeOffRequestObject, error) {
   684  	req, err := r.NewJSONRequest(method, path, obj)
   685  	if err != nil {
   686  		return nil, err
   687  	}
   688  	if ctx != nil {
   689  		req = req.WithContext(ctx)
   690  	}
   691  	res, err := r.client.Do(req)
   692  	if err != nil {
   693  		return nil, err
   694  	}
   695  	var values []TimeOffRequestObject
   696  	for {
   697  		if res.StatusCode != http.StatusOK {
   698  			b, _ := ioutil.ReadAll(res.Body)
   699  			res.Body.Close()
   700  			errRes := &ErrorResponse{Response: res}
   701  			err := jsonx.Unmarshal(b, errRes)
   702  			if err != nil {
   703  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
   704  			}
   705  			return nil, errRes
   706  		}
   707  		var (
   708  			paging Paging
   709  			value  []TimeOffRequestObject
   710  		)
   711  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
   712  		res.Body.Close()
   713  		if err != nil {
   714  			return nil, err
   715  		}
   716  		err = jsonx.Unmarshal(paging.Value, &value)
   717  		if err != nil {
   718  			return nil, err
   719  		}
   720  		values = append(values, value...)
   721  		if n >= 0 {
   722  			n--
   723  		}
   724  		if n == 0 || len(paging.NextLink) == 0 {
   725  			return values, nil
   726  		}
   727  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   728  		if ctx != nil {
   729  			req = req.WithContext(ctx)
   730  		}
   731  		res, err = r.client.Do(req)
   732  		if err != nil {
   733  			return nil, err
   734  		}
   735  	}
   736  }
   737  
   738  // GetN performs GET request for TimeOffRequestObject collection, max N pages
   739  func (r *ScheduleTimeOffRequestsCollectionRequest) GetN(ctx context.Context, n int) ([]TimeOffRequestObject, error) {
   740  	var query string
   741  	if r.query != nil {
   742  		query = "?" + r.query.Encode()
   743  	}
   744  	return r.Paging(ctx, "GET", query, nil, n)
   745  }
   746  
   747  // Get performs GET request for TimeOffRequestObject collection
   748  func (r *ScheduleTimeOffRequestsCollectionRequest) Get(ctx context.Context) ([]TimeOffRequestObject, error) {
   749  	return r.GetN(ctx, 0)
   750  }
   751  
   752  // Add performs POST request for TimeOffRequestObject collection
   753  func (r *ScheduleTimeOffRequestsCollectionRequest) Add(ctx context.Context, reqObj *TimeOffRequestObject) (resObj *TimeOffRequestObject, err error) {
   754  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   755  	return
   756  }
   757  
   758  // TimesOff returns request builder for TimeOff collection
   759  func (b *ScheduleRequestBuilder) TimesOff() *ScheduleTimesOffCollectionRequestBuilder {
   760  	bb := &ScheduleTimesOffCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   761  	bb.baseURL += "/timesOff"
   762  	return bb
   763  }
   764  
   765  // ScheduleTimesOffCollectionRequestBuilder is request builder for TimeOff collection
   766  type ScheduleTimesOffCollectionRequestBuilder struct{ BaseRequestBuilder }
   767  
   768  // Request returns request for TimeOff collection
   769  func (b *ScheduleTimesOffCollectionRequestBuilder) Request() *ScheduleTimesOffCollectionRequest {
   770  	return &ScheduleTimesOffCollectionRequest{
   771  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   772  	}
   773  }
   774  
   775  // ID returns request builder for TimeOff item
   776  func (b *ScheduleTimesOffCollectionRequestBuilder) ID(id string) *TimeOffRequestBuilder {
   777  	bb := &TimeOffRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   778  	bb.baseURL += "/" + id
   779  	return bb
   780  }
   781  
   782  // ScheduleTimesOffCollectionRequest is request for TimeOff collection
   783  type ScheduleTimesOffCollectionRequest struct{ BaseRequest }
   784  
   785  // Paging perfoms paging operation for TimeOff collection
   786  func (r *ScheduleTimesOffCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]TimeOff, error) {
   787  	req, err := r.NewJSONRequest(method, path, obj)
   788  	if err != nil {
   789  		return nil, err
   790  	}
   791  	if ctx != nil {
   792  		req = req.WithContext(ctx)
   793  	}
   794  	res, err := r.client.Do(req)
   795  	if err != nil {
   796  		return nil, err
   797  	}
   798  	var values []TimeOff
   799  	for {
   800  		if res.StatusCode != http.StatusOK {
   801  			b, _ := ioutil.ReadAll(res.Body)
   802  			res.Body.Close()
   803  			errRes := &ErrorResponse{Response: res}
   804  			err := jsonx.Unmarshal(b, errRes)
   805  			if err != nil {
   806  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
   807  			}
   808  			return nil, errRes
   809  		}
   810  		var (
   811  			paging Paging
   812  			value  []TimeOff
   813  		)
   814  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
   815  		res.Body.Close()
   816  		if err != nil {
   817  			return nil, err
   818  		}
   819  		err = jsonx.Unmarshal(paging.Value, &value)
   820  		if err != nil {
   821  			return nil, err
   822  		}
   823  		values = append(values, value...)
   824  		if n >= 0 {
   825  			n--
   826  		}
   827  		if n == 0 || len(paging.NextLink) == 0 {
   828  			return values, nil
   829  		}
   830  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   831  		if ctx != nil {
   832  			req = req.WithContext(ctx)
   833  		}
   834  		res, err = r.client.Do(req)
   835  		if err != nil {
   836  			return nil, err
   837  		}
   838  	}
   839  }
   840  
   841  // GetN performs GET request for TimeOff collection, max N pages
   842  func (r *ScheduleTimesOffCollectionRequest) GetN(ctx context.Context, n int) ([]TimeOff, error) {
   843  	var query string
   844  	if r.query != nil {
   845  		query = "?" + r.query.Encode()
   846  	}
   847  	return r.Paging(ctx, "GET", query, nil, n)
   848  }
   849  
   850  // Get performs GET request for TimeOff collection
   851  func (r *ScheduleTimesOffCollectionRequest) Get(ctx context.Context) ([]TimeOff, error) {
   852  	return r.GetN(ctx, 0)
   853  }
   854  
   855  // Add performs POST request for TimeOff collection
   856  func (r *ScheduleTimesOffCollectionRequest) Add(ctx context.Context, reqObj *TimeOff) (resObj *TimeOff, err error) {
   857  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   858  	return
   859  }