github.com/yaegashi/msgraph.go@v0.1.4/v1.0/ActionDevice.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  // DeviceAppManagementSyncMicrosoftStoreForBusinessAppsRequestParameter undocumented
    15  type DeviceAppManagementSyncMicrosoftStoreForBusinessAppsRequestParameter struct {
    16  }
    17  
    18  // DeviceCompliancePolicyAssignRequestParameter undocumented
    19  type DeviceCompliancePolicyAssignRequestParameter struct {
    20  	// Assignments undocumented
    21  	Assignments []DeviceCompliancePolicyAssignment `json:"assignments,omitempty"`
    22  }
    23  
    24  // DeviceCompliancePolicyScheduleActionsForRulesRequestParameter undocumented
    25  type DeviceCompliancePolicyScheduleActionsForRulesRequestParameter struct {
    26  	// DeviceComplianceScheduledActionForRules undocumented
    27  	DeviceComplianceScheduledActionForRules []DeviceComplianceScheduledActionForRule `json:"deviceComplianceScheduledActionForRules,omitempty"`
    28  }
    29  
    30  // DeviceConfigurationAssignRequestParameter undocumented
    31  type DeviceConfigurationAssignRequestParameter struct {
    32  	// Assignments undocumented
    33  	Assignments []DeviceConfigurationAssignment `json:"assignments,omitempty"`
    34  }
    35  
    36  // DeviceEnrollmentConfigurationSetPriorityRequestParameter undocumented
    37  type DeviceEnrollmentConfigurationSetPriorityRequestParameter struct {
    38  	// Priority undocumented
    39  	Priority *int `json:"priority,omitempty"`
    40  }
    41  
    42  // DeviceEnrollmentConfigurationAssignRequestParameter undocumented
    43  type DeviceEnrollmentConfigurationAssignRequestParameter struct {
    44  	// EnrollmentConfigurationAssignments undocumented
    45  	EnrollmentConfigurationAssignments []EnrollmentConfigurationAssignment `json:"enrollmentConfigurationAssignments,omitempty"`
    46  }
    47  
    48  // DeviceManagementExchangeConnectorSyncRequestParameter undocumented
    49  type DeviceManagementExchangeConnectorSyncRequestParameter struct {
    50  	// SyncType undocumented
    51  	SyncType *DeviceManagementExchangeConnectorSyncType `json:"syncType,omitempty"`
    52  }
    53  
    54  // Extensions returns request builder for Extension collection
    55  func (b *DeviceRequestBuilder) Extensions() *DeviceExtensionsCollectionRequestBuilder {
    56  	bb := &DeviceExtensionsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
    57  	bb.baseURL += "/extensions"
    58  	return bb
    59  }
    60  
    61  // DeviceExtensionsCollectionRequestBuilder is request builder for Extension collection
    62  type DeviceExtensionsCollectionRequestBuilder struct{ BaseRequestBuilder }
    63  
    64  // Request returns request for Extension collection
    65  func (b *DeviceExtensionsCollectionRequestBuilder) Request() *DeviceExtensionsCollectionRequest {
    66  	return &DeviceExtensionsCollectionRequest{
    67  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
    68  	}
    69  }
    70  
    71  // ID returns request builder for Extension item
    72  func (b *DeviceExtensionsCollectionRequestBuilder) ID(id string) *ExtensionRequestBuilder {
    73  	bb := &ExtensionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
    74  	bb.baseURL += "/" + id
    75  	return bb
    76  }
    77  
    78  // DeviceExtensionsCollectionRequest is request for Extension collection
    79  type DeviceExtensionsCollectionRequest struct{ BaseRequest }
    80  
    81  // Paging perfoms paging operation for Extension collection
    82  func (r *DeviceExtensionsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]Extension, error) {
    83  	req, err := r.NewJSONRequest(method, path, obj)
    84  	if err != nil {
    85  		return nil, err
    86  	}
    87  	if ctx != nil {
    88  		req = req.WithContext(ctx)
    89  	}
    90  	res, err := r.client.Do(req)
    91  	if err != nil {
    92  		return nil, err
    93  	}
    94  	var values []Extension
    95  	for {
    96  		if res.StatusCode != http.StatusOK {
    97  			b, _ := ioutil.ReadAll(res.Body)
    98  			res.Body.Close()
    99  			errRes := &ErrorResponse{Response: res}
   100  			err := jsonx.Unmarshal(b, errRes)
   101  			if err != nil {
   102  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
   103  			}
   104  			return nil, errRes
   105  		}
   106  		var (
   107  			paging Paging
   108  			value  []Extension
   109  		)
   110  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
   111  		res.Body.Close()
   112  		if err != nil {
   113  			return nil, err
   114  		}
   115  		err = jsonx.Unmarshal(paging.Value, &value)
   116  		if err != nil {
   117  			return nil, err
   118  		}
   119  		values = append(values, value...)
   120  		if n >= 0 {
   121  			n--
   122  		}
   123  		if n == 0 || len(paging.NextLink) == 0 {
   124  			return values, nil
   125  		}
   126  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   127  		if ctx != nil {
   128  			req = req.WithContext(ctx)
   129  		}
   130  		res, err = r.client.Do(req)
   131  		if err != nil {
   132  			return nil, err
   133  		}
   134  	}
   135  }
   136  
   137  // GetN performs GET request for Extension collection, max N pages
   138  func (r *DeviceExtensionsCollectionRequest) GetN(ctx context.Context, n int) ([]Extension, error) {
   139  	var query string
   140  	if r.query != nil {
   141  		query = "?" + r.query.Encode()
   142  	}
   143  	return r.Paging(ctx, "GET", query, nil, n)
   144  }
   145  
   146  // Get performs GET request for Extension collection
   147  func (r *DeviceExtensionsCollectionRequest) Get(ctx context.Context) ([]Extension, error) {
   148  	return r.GetN(ctx, 0)
   149  }
   150  
   151  // Add performs POST request for Extension collection
   152  func (r *DeviceExtensionsCollectionRequest) Add(ctx context.Context, reqObj *Extension) (resObj *Extension, err error) {
   153  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   154  	return
   155  }
   156  
   157  // MemberOf returns request builder for DirectoryObject collection
   158  func (b *DeviceRequestBuilder) MemberOf() *DeviceMemberOfCollectionRequestBuilder {
   159  	bb := &DeviceMemberOfCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   160  	bb.baseURL += "/memberOf"
   161  	return bb
   162  }
   163  
   164  // DeviceMemberOfCollectionRequestBuilder is request builder for DirectoryObject collection
   165  type DeviceMemberOfCollectionRequestBuilder struct{ BaseRequestBuilder }
   166  
   167  // Request returns request for DirectoryObject collection
   168  func (b *DeviceMemberOfCollectionRequestBuilder) Request() *DeviceMemberOfCollectionRequest {
   169  	return &DeviceMemberOfCollectionRequest{
   170  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   171  	}
   172  }
   173  
   174  // ID returns request builder for DirectoryObject item
   175  func (b *DeviceMemberOfCollectionRequestBuilder) ID(id string) *DirectoryObjectRequestBuilder {
   176  	bb := &DirectoryObjectRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   177  	bb.baseURL += "/" + id
   178  	return bb
   179  }
   180  
   181  // DeviceMemberOfCollectionRequest is request for DirectoryObject collection
   182  type DeviceMemberOfCollectionRequest struct{ BaseRequest }
   183  
   184  // Paging perfoms paging operation for DirectoryObject collection
   185  func (r *DeviceMemberOfCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]DirectoryObject, error) {
   186  	req, err := r.NewJSONRequest(method, path, obj)
   187  	if err != nil {
   188  		return nil, err
   189  	}
   190  	if ctx != nil {
   191  		req = req.WithContext(ctx)
   192  	}
   193  	res, err := r.client.Do(req)
   194  	if err != nil {
   195  		return nil, err
   196  	}
   197  	var values []DirectoryObject
   198  	for {
   199  		if res.StatusCode != http.StatusOK {
   200  			b, _ := ioutil.ReadAll(res.Body)
   201  			res.Body.Close()
   202  			errRes := &ErrorResponse{Response: res}
   203  			err := jsonx.Unmarshal(b, errRes)
   204  			if err != nil {
   205  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
   206  			}
   207  			return nil, errRes
   208  		}
   209  		var (
   210  			paging Paging
   211  			value  []DirectoryObject
   212  		)
   213  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
   214  		res.Body.Close()
   215  		if err != nil {
   216  			return nil, err
   217  		}
   218  		err = jsonx.Unmarshal(paging.Value, &value)
   219  		if err != nil {
   220  			return nil, err
   221  		}
   222  		values = append(values, value...)
   223  		if n >= 0 {
   224  			n--
   225  		}
   226  		if n == 0 || len(paging.NextLink) == 0 {
   227  			return values, nil
   228  		}
   229  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   230  		if ctx != nil {
   231  			req = req.WithContext(ctx)
   232  		}
   233  		res, err = r.client.Do(req)
   234  		if err != nil {
   235  			return nil, err
   236  		}
   237  	}
   238  }
   239  
   240  // GetN performs GET request for DirectoryObject collection, max N pages
   241  func (r *DeviceMemberOfCollectionRequest) GetN(ctx context.Context, n int) ([]DirectoryObject, error) {
   242  	var query string
   243  	if r.query != nil {
   244  		query = "?" + r.query.Encode()
   245  	}
   246  	return r.Paging(ctx, "GET", query, nil, n)
   247  }
   248  
   249  // Get performs GET request for DirectoryObject collection
   250  func (r *DeviceMemberOfCollectionRequest) Get(ctx context.Context) ([]DirectoryObject, error) {
   251  	return r.GetN(ctx, 0)
   252  }
   253  
   254  // Add performs POST request for DirectoryObject collection
   255  func (r *DeviceMemberOfCollectionRequest) Add(ctx context.Context, reqObj *DirectoryObject) (resObj *DirectoryObject, err error) {
   256  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   257  	return
   258  }
   259  
   260  // RegisteredOwners returns request builder for DirectoryObject collection
   261  func (b *DeviceRequestBuilder) RegisteredOwners() *DeviceRegisteredOwnersCollectionRequestBuilder {
   262  	bb := &DeviceRegisteredOwnersCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   263  	bb.baseURL += "/registeredOwners"
   264  	return bb
   265  }
   266  
   267  // DeviceRegisteredOwnersCollectionRequestBuilder is request builder for DirectoryObject collection
   268  type DeviceRegisteredOwnersCollectionRequestBuilder struct{ BaseRequestBuilder }
   269  
   270  // Request returns request for DirectoryObject collection
   271  func (b *DeviceRegisteredOwnersCollectionRequestBuilder) Request() *DeviceRegisteredOwnersCollectionRequest {
   272  	return &DeviceRegisteredOwnersCollectionRequest{
   273  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   274  	}
   275  }
   276  
   277  // ID returns request builder for DirectoryObject item
   278  func (b *DeviceRegisteredOwnersCollectionRequestBuilder) ID(id string) *DirectoryObjectRequestBuilder {
   279  	bb := &DirectoryObjectRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   280  	bb.baseURL += "/" + id
   281  	return bb
   282  }
   283  
   284  // DeviceRegisteredOwnersCollectionRequest is request for DirectoryObject collection
   285  type DeviceRegisteredOwnersCollectionRequest struct{ BaseRequest }
   286  
   287  // Paging perfoms paging operation for DirectoryObject collection
   288  func (r *DeviceRegisteredOwnersCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]DirectoryObject, error) {
   289  	req, err := r.NewJSONRequest(method, path, obj)
   290  	if err != nil {
   291  		return nil, err
   292  	}
   293  	if ctx != nil {
   294  		req = req.WithContext(ctx)
   295  	}
   296  	res, err := r.client.Do(req)
   297  	if err != nil {
   298  		return nil, err
   299  	}
   300  	var values []DirectoryObject
   301  	for {
   302  		if res.StatusCode != http.StatusOK {
   303  			b, _ := ioutil.ReadAll(res.Body)
   304  			res.Body.Close()
   305  			errRes := &ErrorResponse{Response: res}
   306  			err := jsonx.Unmarshal(b, errRes)
   307  			if err != nil {
   308  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
   309  			}
   310  			return nil, errRes
   311  		}
   312  		var (
   313  			paging Paging
   314  			value  []DirectoryObject
   315  		)
   316  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
   317  		res.Body.Close()
   318  		if err != nil {
   319  			return nil, err
   320  		}
   321  		err = jsonx.Unmarshal(paging.Value, &value)
   322  		if err != nil {
   323  			return nil, err
   324  		}
   325  		values = append(values, value...)
   326  		if n >= 0 {
   327  			n--
   328  		}
   329  		if n == 0 || len(paging.NextLink) == 0 {
   330  			return values, nil
   331  		}
   332  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   333  		if ctx != nil {
   334  			req = req.WithContext(ctx)
   335  		}
   336  		res, err = r.client.Do(req)
   337  		if err != nil {
   338  			return nil, err
   339  		}
   340  	}
   341  }
   342  
   343  // GetN performs GET request for DirectoryObject collection, max N pages
   344  func (r *DeviceRegisteredOwnersCollectionRequest) GetN(ctx context.Context, n int) ([]DirectoryObject, error) {
   345  	var query string
   346  	if r.query != nil {
   347  		query = "?" + r.query.Encode()
   348  	}
   349  	return r.Paging(ctx, "GET", query, nil, n)
   350  }
   351  
   352  // Get performs GET request for DirectoryObject collection
   353  func (r *DeviceRegisteredOwnersCollectionRequest) Get(ctx context.Context) ([]DirectoryObject, error) {
   354  	return r.GetN(ctx, 0)
   355  }
   356  
   357  // Add performs POST request for DirectoryObject collection
   358  func (r *DeviceRegisteredOwnersCollectionRequest) Add(ctx context.Context, reqObj *DirectoryObject) (resObj *DirectoryObject, err error) {
   359  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   360  	return
   361  }
   362  
   363  // RegisteredUsers returns request builder for DirectoryObject collection
   364  func (b *DeviceRequestBuilder) RegisteredUsers() *DeviceRegisteredUsersCollectionRequestBuilder {
   365  	bb := &DeviceRegisteredUsersCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   366  	bb.baseURL += "/registeredUsers"
   367  	return bb
   368  }
   369  
   370  // DeviceRegisteredUsersCollectionRequestBuilder is request builder for DirectoryObject collection
   371  type DeviceRegisteredUsersCollectionRequestBuilder struct{ BaseRequestBuilder }
   372  
   373  // Request returns request for DirectoryObject collection
   374  func (b *DeviceRegisteredUsersCollectionRequestBuilder) Request() *DeviceRegisteredUsersCollectionRequest {
   375  	return &DeviceRegisteredUsersCollectionRequest{
   376  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   377  	}
   378  }
   379  
   380  // ID returns request builder for DirectoryObject item
   381  func (b *DeviceRegisteredUsersCollectionRequestBuilder) ID(id string) *DirectoryObjectRequestBuilder {
   382  	bb := &DirectoryObjectRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   383  	bb.baseURL += "/" + id
   384  	return bb
   385  }
   386  
   387  // DeviceRegisteredUsersCollectionRequest is request for DirectoryObject collection
   388  type DeviceRegisteredUsersCollectionRequest struct{ BaseRequest }
   389  
   390  // Paging perfoms paging operation for DirectoryObject collection
   391  func (r *DeviceRegisteredUsersCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]DirectoryObject, error) {
   392  	req, err := r.NewJSONRequest(method, path, obj)
   393  	if err != nil {
   394  		return nil, err
   395  	}
   396  	if ctx != nil {
   397  		req = req.WithContext(ctx)
   398  	}
   399  	res, err := r.client.Do(req)
   400  	if err != nil {
   401  		return nil, err
   402  	}
   403  	var values []DirectoryObject
   404  	for {
   405  		if res.StatusCode != http.StatusOK {
   406  			b, _ := ioutil.ReadAll(res.Body)
   407  			res.Body.Close()
   408  			errRes := &ErrorResponse{Response: res}
   409  			err := jsonx.Unmarshal(b, errRes)
   410  			if err != nil {
   411  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
   412  			}
   413  			return nil, errRes
   414  		}
   415  		var (
   416  			paging Paging
   417  			value  []DirectoryObject
   418  		)
   419  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
   420  		res.Body.Close()
   421  		if err != nil {
   422  			return nil, err
   423  		}
   424  		err = jsonx.Unmarshal(paging.Value, &value)
   425  		if err != nil {
   426  			return nil, err
   427  		}
   428  		values = append(values, value...)
   429  		if n >= 0 {
   430  			n--
   431  		}
   432  		if n == 0 || len(paging.NextLink) == 0 {
   433  			return values, nil
   434  		}
   435  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   436  		if ctx != nil {
   437  			req = req.WithContext(ctx)
   438  		}
   439  		res, err = r.client.Do(req)
   440  		if err != nil {
   441  			return nil, err
   442  		}
   443  	}
   444  }
   445  
   446  // GetN performs GET request for DirectoryObject collection, max N pages
   447  func (r *DeviceRegisteredUsersCollectionRequest) GetN(ctx context.Context, n int) ([]DirectoryObject, error) {
   448  	var query string
   449  	if r.query != nil {
   450  		query = "?" + r.query.Encode()
   451  	}
   452  	return r.Paging(ctx, "GET", query, nil, n)
   453  }
   454  
   455  // Get performs GET request for DirectoryObject collection
   456  func (r *DeviceRegisteredUsersCollectionRequest) Get(ctx context.Context) ([]DirectoryObject, error) {
   457  	return r.GetN(ctx, 0)
   458  }
   459  
   460  // Add performs POST request for DirectoryObject collection
   461  func (r *DeviceRegisteredUsersCollectionRequest) Add(ctx context.Context, reqObj *DirectoryObject) (resObj *DirectoryObject, err error) {
   462  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   463  	return
   464  }
   465  
   466  // TransitiveMemberOf returns request builder for DirectoryObject collection
   467  func (b *DeviceRequestBuilder) TransitiveMemberOf() *DeviceTransitiveMemberOfCollectionRequestBuilder {
   468  	bb := &DeviceTransitiveMemberOfCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   469  	bb.baseURL += "/transitiveMemberOf"
   470  	return bb
   471  }
   472  
   473  // DeviceTransitiveMemberOfCollectionRequestBuilder is request builder for DirectoryObject collection
   474  type DeviceTransitiveMemberOfCollectionRequestBuilder struct{ BaseRequestBuilder }
   475  
   476  // Request returns request for DirectoryObject collection
   477  func (b *DeviceTransitiveMemberOfCollectionRequestBuilder) Request() *DeviceTransitiveMemberOfCollectionRequest {
   478  	return &DeviceTransitiveMemberOfCollectionRequest{
   479  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   480  	}
   481  }
   482  
   483  // ID returns request builder for DirectoryObject item
   484  func (b *DeviceTransitiveMemberOfCollectionRequestBuilder) ID(id string) *DirectoryObjectRequestBuilder {
   485  	bb := &DirectoryObjectRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   486  	bb.baseURL += "/" + id
   487  	return bb
   488  }
   489  
   490  // DeviceTransitiveMemberOfCollectionRequest is request for DirectoryObject collection
   491  type DeviceTransitiveMemberOfCollectionRequest struct{ BaseRequest }
   492  
   493  // Paging perfoms paging operation for DirectoryObject collection
   494  func (r *DeviceTransitiveMemberOfCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]DirectoryObject, error) {
   495  	req, err := r.NewJSONRequest(method, path, obj)
   496  	if err != nil {
   497  		return nil, err
   498  	}
   499  	if ctx != nil {
   500  		req = req.WithContext(ctx)
   501  	}
   502  	res, err := r.client.Do(req)
   503  	if err != nil {
   504  		return nil, err
   505  	}
   506  	var values []DirectoryObject
   507  	for {
   508  		if res.StatusCode != http.StatusOK {
   509  			b, _ := ioutil.ReadAll(res.Body)
   510  			res.Body.Close()
   511  			errRes := &ErrorResponse{Response: res}
   512  			err := jsonx.Unmarshal(b, errRes)
   513  			if err != nil {
   514  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
   515  			}
   516  			return nil, errRes
   517  		}
   518  		var (
   519  			paging Paging
   520  			value  []DirectoryObject
   521  		)
   522  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
   523  		res.Body.Close()
   524  		if err != nil {
   525  			return nil, err
   526  		}
   527  		err = jsonx.Unmarshal(paging.Value, &value)
   528  		if err != nil {
   529  			return nil, err
   530  		}
   531  		values = append(values, value...)
   532  		if n >= 0 {
   533  			n--
   534  		}
   535  		if n == 0 || len(paging.NextLink) == 0 {
   536  			return values, nil
   537  		}
   538  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   539  		if ctx != nil {
   540  			req = req.WithContext(ctx)
   541  		}
   542  		res, err = r.client.Do(req)
   543  		if err != nil {
   544  			return nil, err
   545  		}
   546  	}
   547  }
   548  
   549  // GetN performs GET request for DirectoryObject collection, max N pages
   550  func (r *DeviceTransitiveMemberOfCollectionRequest) GetN(ctx context.Context, n int) ([]DirectoryObject, error) {
   551  	var query string
   552  	if r.query != nil {
   553  		query = "?" + r.query.Encode()
   554  	}
   555  	return r.Paging(ctx, "GET", query, nil, n)
   556  }
   557  
   558  // Get performs GET request for DirectoryObject collection
   559  func (r *DeviceTransitiveMemberOfCollectionRequest) Get(ctx context.Context) ([]DirectoryObject, error) {
   560  	return r.GetN(ctx, 0)
   561  }
   562  
   563  // Add performs POST request for DirectoryObject collection
   564  func (r *DeviceTransitiveMemberOfCollectionRequest) Add(ctx context.Context, reqObj *DirectoryObject) (resObj *DirectoryObject, err error) {
   565  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   566  	return
   567  }
   568  
   569  // AndroidManagedAppProtections returns request builder for AndroidManagedAppProtection collection
   570  func (b *DeviceAppManagementRequestBuilder) AndroidManagedAppProtections() *DeviceAppManagementAndroidManagedAppProtectionsCollectionRequestBuilder {
   571  	bb := &DeviceAppManagementAndroidManagedAppProtectionsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   572  	bb.baseURL += "/androidManagedAppProtections"
   573  	return bb
   574  }
   575  
   576  // DeviceAppManagementAndroidManagedAppProtectionsCollectionRequestBuilder is request builder for AndroidManagedAppProtection collection
   577  type DeviceAppManagementAndroidManagedAppProtectionsCollectionRequestBuilder struct{ BaseRequestBuilder }
   578  
   579  // Request returns request for AndroidManagedAppProtection collection
   580  func (b *DeviceAppManagementAndroidManagedAppProtectionsCollectionRequestBuilder) Request() *DeviceAppManagementAndroidManagedAppProtectionsCollectionRequest {
   581  	return &DeviceAppManagementAndroidManagedAppProtectionsCollectionRequest{
   582  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   583  	}
   584  }
   585  
   586  // ID returns request builder for AndroidManagedAppProtection item
   587  func (b *DeviceAppManagementAndroidManagedAppProtectionsCollectionRequestBuilder) ID(id string) *AndroidManagedAppProtectionRequestBuilder {
   588  	bb := &AndroidManagedAppProtectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   589  	bb.baseURL += "/" + id
   590  	return bb
   591  }
   592  
   593  // DeviceAppManagementAndroidManagedAppProtectionsCollectionRequest is request for AndroidManagedAppProtection collection
   594  type DeviceAppManagementAndroidManagedAppProtectionsCollectionRequest struct{ BaseRequest }
   595  
   596  // Paging perfoms paging operation for AndroidManagedAppProtection collection
   597  func (r *DeviceAppManagementAndroidManagedAppProtectionsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]AndroidManagedAppProtection, error) {
   598  	req, err := r.NewJSONRequest(method, path, obj)
   599  	if err != nil {
   600  		return nil, err
   601  	}
   602  	if ctx != nil {
   603  		req = req.WithContext(ctx)
   604  	}
   605  	res, err := r.client.Do(req)
   606  	if err != nil {
   607  		return nil, err
   608  	}
   609  	var values []AndroidManagedAppProtection
   610  	for {
   611  		if res.StatusCode != http.StatusOK {
   612  			b, _ := ioutil.ReadAll(res.Body)
   613  			res.Body.Close()
   614  			errRes := &ErrorResponse{Response: res}
   615  			err := jsonx.Unmarshal(b, errRes)
   616  			if err != nil {
   617  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
   618  			}
   619  			return nil, errRes
   620  		}
   621  		var (
   622  			paging Paging
   623  			value  []AndroidManagedAppProtection
   624  		)
   625  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
   626  		res.Body.Close()
   627  		if err != nil {
   628  			return nil, err
   629  		}
   630  		err = jsonx.Unmarshal(paging.Value, &value)
   631  		if err != nil {
   632  			return nil, err
   633  		}
   634  		values = append(values, value...)
   635  		if n >= 0 {
   636  			n--
   637  		}
   638  		if n == 0 || len(paging.NextLink) == 0 {
   639  			return values, nil
   640  		}
   641  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   642  		if ctx != nil {
   643  			req = req.WithContext(ctx)
   644  		}
   645  		res, err = r.client.Do(req)
   646  		if err != nil {
   647  			return nil, err
   648  		}
   649  	}
   650  }
   651  
   652  // GetN performs GET request for AndroidManagedAppProtection collection, max N pages
   653  func (r *DeviceAppManagementAndroidManagedAppProtectionsCollectionRequest) GetN(ctx context.Context, n int) ([]AndroidManagedAppProtection, error) {
   654  	var query string
   655  	if r.query != nil {
   656  		query = "?" + r.query.Encode()
   657  	}
   658  	return r.Paging(ctx, "GET", query, nil, n)
   659  }
   660  
   661  // Get performs GET request for AndroidManagedAppProtection collection
   662  func (r *DeviceAppManagementAndroidManagedAppProtectionsCollectionRequest) Get(ctx context.Context) ([]AndroidManagedAppProtection, error) {
   663  	return r.GetN(ctx, 0)
   664  }
   665  
   666  // Add performs POST request for AndroidManagedAppProtection collection
   667  func (r *DeviceAppManagementAndroidManagedAppProtectionsCollectionRequest) Add(ctx context.Context, reqObj *AndroidManagedAppProtection) (resObj *AndroidManagedAppProtection, err error) {
   668  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   669  	return
   670  }
   671  
   672  // DefaultManagedAppProtections returns request builder for DefaultManagedAppProtection collection
   673  func (b *DeviceAppManagementRequestBuilder) DefaultManagedAppProtections() *DeviceAppManagementDefaultManagedAppProtectionsCollectionRequestBuilder {
   674  	bb := &DeviceAppManagementDefaultManagedAppProtectionsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   675  	bb.baseURL += "/defaultManagedAppProtections"
   676  	return bb
   677  }
   678  
   679  // DeviceAppManagementDefaultManagedAppProtectionsCollectionRequestBuilder is request builder for DefaultManagedAppProtection collection
   680  type DeviceAppManagementDefaultManagedAppProtectionsCollectionRequestBuilder struct{ BaseRequestBuilder }
   681  
   682  // Request returns request for DefaultManagedAppProtection collection
   683  func (b *DeviceAppManagementDefaultManagedAppProtectionsCollectionRequestBuilder) Request() *DeviceAppManagementDefaultManagedAppProtectionsCollectionRequest {
   684  	return &DeviceAppManagementDefaultManagedAppProtectionsCollectionRequest{
   685  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   686  	}
   687  }
   688  
   689  // ID returns request builder for DefaultManagedAppProtection item
   690  func (b *DeviceAppManagementDefaultManagedAppProtectionsCollectionRequestBuilder) ID(id string) *DefaultManagedAppProtectionRequestBuilder {
   691  	bb := &DefaultManagedAppProtectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   692  	bb.baseURL += "/" + id
   693  	return bb
   694  }
   695  
   696  // DeviceAppManagementDefaultManagedAppProtectionsCollectionRequest is request for DefaultManagedAppProtection collection
   697  type DeviceAppManagementDefaultManagedAppProtectionsCollectionRequest struct{ BaseRequest }
   698  
   699  // Paging perfoms paging operation for DefaultManagedAppProtection collection
   700  func (r *DeviceAppManagementDefaultManagedAppProtectionsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]DefaultManagedAppProtection, error) {
   701  	req, err := r.NewJSONRequest(method, path, obj)
   702  	if err != nil {
   703  		return nil, err
   704  	}
   705  	if ctx != nil {
   706  		req = req.WithContext(ctx)
   707  	}
   708  	res, err := r.client.Do(req)
   709  	if err != nil {
   710  		return nil, err
   711  	}
   712  	var values []DefaultManagedAppProtection
   713  	for {
   714  		if res.StatusCode != http.StatusOK {
   715  			b, _ := ioutil.ReadAll(res.Body)
   716  			res.Body.Close()
   717  			errRes := &ErrorResponse{Response: res}
   718  			err := jsonx.Unmarshal(b, errRes)
   719  			if err != nil {
   720  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
   721  			}
   722  			return nil, errRes
   723  		}
   724  		var (
   725  			paging Paging
   726  			value  []DefaultManagedAppProtection
   727  		)
   728  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
   729  		res.Body.Close()
   730  		if err != nil {
   731  			return nil, err
   732  		}
   733  		err = jsonx.Unmarshal(paging.Value, &value)
   734  		if err != nil {
   735  			return nil, err
   736  		}
   737  		values = append(values, value...)
   738  		if n >= 0 {
   739  			n--
   740  		}
   741  		if n == 0 || len(paging.NextLink) == 0 {
   742  			return values, nil
   743  		}
   744  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   745  		if ctx != nil {
   746  			req = req.WithContext(ctx)
   747  		}
   748  		res, err = r.client.Do(req)
   749  		if err != nil {
   750  			return nil, err
   751  		}
   752  	}
   753  }
   754  
   755  // GetN performs GET request for DefaultManagedAppProtection collection, max N pages
   756  func (r *DeviceAppManagementDefaultManagedAppProtectionsCollectionRequest) GetN(ctx context.Context, n int) ([]DefaultManagedAppProtection, error) {
   757  	var query string
   758  	if r.query != nil {
   759  		query = "?" + r.query.Encode()
   760  	}
   761  	return r.Paging(ctx, "GET", query, nil, n)
   762  }
   763  
   764  // Get performs GET request for DefaultManagedAppProtection collection
   765  func (r *DeviceAppManagementDefaultManagedAppProtectionsCollectionRequest) Get(ctx context.Context) ([]DefaultManagedAppProtection, error) {
   766  	return r.GetN(ctx, 0)
   767  }
   768  
   769  // Add performs POST request for DefaultManagedAppProtection collection
   770  func (r *DeviceAppManagementDefaultManagedAppProtectionsCollectionRequest) Add(ctx context.Context, reqObj *DefaultManagedAppProtection) (resObj *DefaultManagedAppProtection, err error) {
   771  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   772  	return
   773  }
   774  
   775  // IOSManagedAppProtections returns request builder for IOSManagedAppProtection collection
   776  func (b *DeviceAppManagementRequestBuilder) IOSManagedAppProtections() *DeviceAppManagementIOSManagedAppProtectionsCollectionRequestBuilder {
   777  	bb := &DeviceAppManagementIOSManagedAppProtectionsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   778  	bb.baseURL += "/iosManagedAppProtections"
   779  	return bb
   780  }
   781  
   782  // DeviceAppManagementIOSManagedAppProtectionsCollectionRequestBuilder is request builder for IOSManagedAppProtection collection
   783  type DeviceAppManagementIOSManagedAppProtectionsCollectionRequestBuilder struct{ BaseRequestBuilder }
   784  
   785  // Request returns request for IOSManagedAppProtection collection
   786  func (b *DeviceAppManagementIOSManagedAppProtectionsCollectionRequestBuilder) Request() *DeviceAppManagementIOSManagedAppProtectionsCollectionRequest {
   787  	return &DeviceAppManagementIOSManagedAppProtectionsCollectionRequest{
   788  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   789  	}
   790  }
   791  
   792  // ID returns request builder for IOSManagedAppProtection item
   793  func (b *DeviceAppManagementIOSManagedAppProtectionsCollectionRequestBuilder) ID(id string) *IOSManagedAppProtectionRequestBuilder {
   794  	bb := &IOSManagedAppProtectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   795  	bb.baseURL += "/" + id
   796  	return bb
   797  }
   798  
   799  // DeviceAppManagementIOSManagedAppProtectionsCollectionRequest is request for IOSManagedAppProtection collection
   800  type DeviceAppManagementIOSManagedAppProtectionsCollectionRequest struct{ BaseRequest }
   801  
   802  // Paging perfoms paging operation for IOSManagedAppProtection collection
   803  func (r *DeviceAppManagementIOSManagedAppProtectionsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]IOSManagedAppProtection, error) {
   804  	req, err := r.NewJSONRequest(method, path, obj)
   805  	if err != nil {
   806  		return nil, err
   807  	}
   808  	if ctx != nil {
   809  		req = req.WithContext(ctx)
   810  	}
   811  	res, err := r.client.Do(req)
   812  	if err != nil {
   813  		return nil, err
   814  	}
   815  	var values []IOSManagedAppProtection
   816  	for {
   817  		if res.StatusCode != http.StatusOK {
   818  			b, _ := ioutil.ReadAll(res.Body)
   819  			res.Body.Close()
   820  			errRes := &ErrorResponse{Response: res}
   821  			err := jsonx.Unmarshal(b, errRes)
   822  			if err != nil {
   823  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
   824  			}
   825  			return nil, errRes
   826  		}
   827  		var (
   828  			paging Paging
   829  			value  []IOSManagedAppProtection
   830  		)
   831  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
   832  		res.Body.Close()
   833  		if err != nil {
   834  			return nil, err
   835  		}
   836  		err = jsonx.Unmarshal(paging.Value, &value)
   837  		if err != nil {
   838  			return nil, err
   839  		}
   840  		values = append(values, value...)
   841  		if n >= 0 {
   842  			n--
   843  		}
   844  		if n == 0 || len(paging.NextLink) == 0 {
   845  			return values, nil
   846  		}
   847  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   848  		if ctx != nil {
   849  			req = req.WithContext(ctx)
   850  		}
   851  		res, err = r.client.Do(req)
   852  		if err != nil {
   853  			return nil, err
   854  		}
   855  	}
   856  }
   857  
   858  // GetN performs GET request for IOSManagedAppProtection collection, max N pages
   859  func (r *DeviceAppManagementIOSManagedAppProtectionsCollectionRequest) GetN(ctx context.Context, n int) ([]IOSManagedAppProtection, error) {
   860  	var query string
   861  	if r.query != nil {
   862  		query = "?" + r.query.Encode()
   863  	}
   864  	return r.Paging(ctx, "GET", query, nil, n)
   865  }
   866  
   867  // Get performs GET request for IOSManagedAppProtection collection
   868  func (r *DeviceAppManagementIOSManagedAppProtectionsCollectionRequest) Get(ctx context.Context) ([]IOSManagedAppProtection, error) {
   869  	return r.GetN(ctx, 0)
   870  }
   871  
   872  // Add performs POST request for IOSManagedAppProtection collection
   873  func (r *DeviceAppManagementIOSManagedAppProtectionsCollectionRequest) Add(ctx context.Context, reqObj *IOSManagedAppProtection) (resObj *IOSManagedAppProtection, err error) {
   874  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   875  	return
   876  }
   877  
   878  // ManagedAppPolicies returns request builder for ManagedAppPolicy collection
   879  func (b *DeviceAppManagementRequestBuilder) ManagedAppPolicies() *DeviceAppManagementManagedAppPoliciesCollectionRequestBuilder {
   880  	bb := &DeviceAppManagementManagedAppPoliciesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   881  	bb.baseURL += "/managedAppPolicies"
   882  	return bb
   883  }
   884  
   885  // DeviceAppManagementManagedAppPoliciesCollectionRequestBuilder is request builder for ManagedAppPolicy collection
   886  type DeviceAppManagementManagedAppPoliciesCollectionRequestBuilder struct{ BaseRequestBuilder }
   887  
   888  // Request returns request for ManagedAppPolicy collection
   889  func (b *DeviceAppManagementManagedAppPoliciesCollectionRequestBuilder) Request() *DeviceAppManagementManagedAppPoliciesCollectionRequest {
   890  	return &DeviceAppManagementManagedAppPoliciesCollectionRequest{
   891  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   892  	}
   893  }
   894  
   895  // ID returns request builder for ManagedAppPolicy item
   896  func (b *DeviceAppManagementManagedAppPoliciesCollectionRequestBuilder) ID(id string) *ManagedAppPolicyRequestBuilder {
   897  	bb := &ManagedAppPolicyRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   898  	bb.baseURL += "/" + id
   899  	return bb
   900  }
   901  
   902  // DeviceAppManagementManagedAppPoliciesCollectionRequest is request for ManagedAppPolicy collection
   903  type DeviceAppManagementManagedAppPoliciesCollectionRequest struct{ BaseRequest }
   904  
   905  // Paging perfoms paging operation for ManagedAppPolicy collection
   906  func (r *DeviceAppManagementManagedAppPoliciesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]ManagedAppPolicy, error) {
   907  	req, err := r.NewJSONRequest(method, path, obj)
   908  	if err != nil {
   909  		return nil, err
   910  	}
   911  	if ctx != nil {
   912  		req = req.WithContext(ctx)
   913  	}
   914  	res, err := r.client.Do(req)
   915  	if err != nil {
   916  		return nil, err
   917  	}
   918  	var values []ManagedAppPolicy
   919  	for {
   920  		if res.StatusCode != http.StatusOK {
   921  			b, _ := ioutil.ReadAll(res.Body)
   922  			res.Body.Close()
   923  			errRes := &ErrorResponse{Response: res}
   924  			err := jsonx.Unmarshal(b, errRes)
   925  			if err != nil {
   926  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
   927  			}
   928  			return nil, errRes
   929  		}
   930  		var (
   931  			paging Paging
   932  			value  []ManagedAppPolicy
   933  		)
   934  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
   935  		res.Body.Close()
   936  		if err != nil {
   937  			return nil, err
   938  		}
   939  		err = jsonx.Unmarshal(paging.Value, &value)
   940  		if err != nil {
   941  			return nil, err
   942  		}
   943  		values = append(values, value...)
   944  		if n >= 0 {
   945  			n--
   946  		}
   947  		if n == 0 || len(paging.NextLink) == 0 {
   948  			return values, nil
   949  		}
   950  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   951  		if ctx != nil {
   952  			req = req.WithContext(ctx)
   953  		}
   954  		res, err = r.client.Do(req)
   955  		if err != nil {
   956  			return nil, err
   957  		}
   958  	}
   959  }
   960  
   961  // GetN performs GET request for ManagedAppPolicy collection, max N pages
   962  func (r *DeviceAppManagementManagedAppPoliciesCollectionRequest) GetN(ctx context.Context, n int) ([]ManagedAppPolicy, error) {
   963  	var query string
   964  	if r.query != nil {
   965  		query = "?" + r.query.Encode()
   966  	}
   967  	return r.Paging(ctx, "GET", query, nil, n)
   968  }
   969  
   970  // Get performs GET request for ManagedAppPolicy collection
   971  func (r *DeviceAppManagementManagedAppPoliciesCollectionRequest) Get(ctx context.Context) ([]ManagedAppPolicy, error) {
   972  	return r.GetN(ctx, 0)
   973  }
   974  
   975  // Add performs POST request for ManagedAppPolicy collection
   976  func (r *DeviceAppManagementManagedAppPoliciesCollectionRequest) Add(ctx context.Context, reqObj *ManagedAppPolicy) (resObj *ManagedAppPolicy, err error) {
   977  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   978  	return
   979  }
   980  
   981  // ManagedAppRegistrations returns request builder for ManagedAppRegistration collection
   982  func (b *DeviceAppManagementRequestBuilder) ManagedAppRegistrations() *DeviceAppManagementManagedAppRegistrationsCollectionRequestBuilder {
   983  	bb := &DeviceAppManagementManagedAppRegistrationsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   984  	bb.baseURL += "/managedAppRegistrations"
   985  	return bb
   986  }
   987  
   988  // DeviceAppManagementManagedAppRegistrationsCollectionRequestBuilder is request builder for ManagedAppRegistration collection
   989  type DeviceAppManagementManagedAppRegistrationsCollectionRequestBuilder struct{ BaseRequestBuilder }
   990  
   991  // Request returns request for ManagedAppRegistration collection
   992  func (b *DeviceAppManagementManagedAppRegistrationsCollectionRequestBuilder) Request() *DeviceAppManagementManagedAppRegistrationsCollectionRequest {
   993  	return &DeviceAppManagementManagedAppRegistrationsCollectionRequest{
   994  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   995  	}
   996  }
   997  
   998  // ID returns request builder for ManagedAppRegistration item
   999  func (b *DeviceAppManagementManagedAppRegistrationsCollectionRequestBuilder) ID(id string) *ManagedAppRegistrationRequestBuilder {
  1000  	bb := &ManagedAppRegistrationRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1001  	bb.baseURL += "/" + id
  1002  	return bb
  1003  }
  1004  
  1005  // DeviceAppManagementManagedAppRegistrationsCollectionRequest is request for ManagedAppRegistration collection
  1006  type DeviceAppManagementManagedAppRegistrationsCollectionRequest struct{ BaseRequest }
  1007  
  1008  // Paging perfoms paging operation for ManagedAppRegistration collection
  1009  func (r *DeviceAppManagementManagedAppRegistrationsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]ManagedAppRegistration, error) {
  1010  	req, err := r.NewJSONRequest(method, path, obj)
  1011  	if err != nil {
  1012  		return nil, err
  1013  	}
  1014  	if ctx != nil {
  1015  		req = req.WithContext(ctx)
  1016  	}
  1017  	res, err := r.client.Do(req)
  1018  	if err != nil {
  1019  		return nil, err
  1020  	}
  1021  	var values []ManagedAppRegistration
  1022  	for {
  1023  		if res.StatusCode != http.StatusOK {
  1024  			b, _ := ioutil.ReadAll(res.Body)
  1025  			res.Body.Close()
  1026  			errRes := &ErrorResponse{Response: res}
  1027  			err := jsonx.Unmarshal(b, errRes)
  1028  			if err != nil {
  1029  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  1030  			}
  1031  			return nil, errRes
  1032  		}
  1033  		var (
  1034  			paging Paging
  1035  			value  []ManagedAppRegistration
  1036  		)
  1037  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  1038  		res.Body.Close()
  1039  		if err != nil {
  1040  			return nil, err
  1041  		}
  1042  		err = jsonx.Unmarshal(paging.Value, &value)
  1043  		if err != nil {
  1044  			return nil, err
  1045  		}
  1046  		values = append(values, value...)
  1047  		if n >= 0 {
  1048  			n--
  1049  		}
  1050  		if n == 0 || len(paging.NextLink) == 0 {
  1051  			return values, nil
  1052  		}
  1053  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  1054  		if ctx != nil {
  1055  			req = req.WithContext(ctx)
  1056  		}
  1057  		res, err = r.client.Do(req)
  1058  		if err != nil {
  1059  			return nil, err
  1060  		}
  1061  	}
  1062  }
  1063  
  1064  // GetN performs GET request for ManagedAppRegistration collection, max N pages
  1065  func (r *DeviceAppManagementManagedAppRegistrationsCollectionRequest) GetN(ctx context.Context, n int) ([]ManagedAppRegistration, error) {
  1066  	var query string
  1067  	if r.query != nil {
  1068  		query = "?" + r.query.Encode()
  1069  	}
  1070  	return r.Paging(ctx, "GET", query, nil, n)
  1071  }
  1072  
  1073  // Get performs GET request for ManagedAppRegistration collection
  1074  func (r *DeviceAppManagementManagedAppRegistrationsCollectionRequest) Get(ctx context.Context) ([]ManagedAppRegistration, error) {
  1075  	return r.GetN(ctx, 0)
  1076  }
  1077  
  1078  // Add performs POST request for ManagedAppRegistration collection
  1079  func (r *DeviceAppManagementManagedAppRegistrationsCollectionRequest) Add(ctx context.Context, reqObj *ManagedAppRegistration) (resObj *ManagedAppRegistration, err error) {
  1080  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  1081  	return
  1082  }
  1083  
  1084  // ManagedAppStatuses returns request builder for ManagedAppStatus collection
  1085  func (b *DeviceAppManagementRequestBuilder) ManagedAppStatuses() *DeviceAppManagementManagedAppStatusesCollectionRequestBuilder {
  1086  	bb := &DeviceAppManagementManagedAppStatusesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1087  	bb.baseURL += "/managedAppStatuses"
  1088  	return bb
  1089  }
  1090  
  1091  // DeviceAppManagementManagedAppStatusesCollectionRequestBuilder is request builder for ManagedAppStatus collection
  1092  type DeviceAppManagementManagedAppStatusesCollectionRequestBuilder struct{ BaseRequestBuilder }
  1093  
  1094  // Request returns request for ManagedAppStatus collection
  1095  func (b *DeviceAppManagementManagedAppStatusesCollectionRequestBuilder) Request() *DeviceAppManagementManagedAppStatusesCollectionRequest {
  1096  	return &DeviceAppManagementManagedAppStatusesCollectionRequest{
  1097  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  1098  	}
  1099  }
  1100  
  1101  // ID returns request builder for ManagedAppStatus item
  1102  func (b *DeviceAppManagementManagedAppStatusesCollectionRequestBuilder) ID(id string) *ManagedAppStatusRequestBuilder {
  1103  	bb := &ManagedAppStatusRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1104  	bb.baseURL += "/" + id
  1105  	return bb
  1106  }
  1107  
  1108  // DeviceAppManagementManagedAppStatusesCollectionRequest is request for ManagedAppStatus collection
  1109  type DeviceAppManagementManagedAppStatusesCollectionRequest struct{ BaseRequest }
  1110  
  1111  // Paging perfoms paging operation for ManagedAppStatus collection
  1112  func (r *DeviceAppManagementManagedAppStatusesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]ManagedAppStatus, error) {
  1113  	req, err := r.NewJSONRequest(method, path, obj)
  1114  	if err != nil {
  1115  		return nil, err
  1116  	}
  1117  	if ctx != nil {
  1118  		req = req.WithContext(ctx)
  1119  	}
  1120  	res, err := r.client.Do(req)
  1121  	if err != nil {
  1122  		return nil, err
  1123  	}
  1124  	var values []ManagedAppStatus
  1125  	for {
  1126  		if res.StatusCode != http.StatusOK {
  1127  			b, _ := ioutil.ReadAll(res.Body)
  1128  			res.Body.Close()
  1129  			errRes := &ErrorResponse{Response: res}
  1130  			err := jsonx.Unmarshal(b, errRes)
  1131  			if err != nil {
  1132  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  1133  			}
  1134  			return nil, errRes
  1135  		}
  1136  		var (
  1137  			paging Paging
  1138  			value  []ManagedAppStatus
  1139  		)
  1140  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  1141  		res.Body.Close()
  1142  		if err != nil {
  1143  			return nil, err
  1144  		}
  1145  		err = jsonx.Unmarshal(paging.Value, &value)
  1146  		if err != nil {
  1147  			return nil, err
  1148  		}
  1149  		values = append(values, value...)
  1150  		if n >= 0 {
  1151  			n--
  1152  		}
  1153  		if n == 0 || len(paging.NextLink) == 0 {
  1154  			return values, nil
  1155  		}
  1156  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  1157  		if ctx != nil {
  1158  			req = req.WithContext(ctx)
  1159  		}
  1160  		res, err = r.client.Do(req)
  1161  		if err != nil {
  1162  			return nil, err
  1163  		}
  1164  	}
  1165  }
  1166  
  1167  // GetN performs GET request for ManagedAppStatus collection, max N pages
  1168  func (r *DeviceAppManagementManagedAppStatusesCollectionRequest) GetN(ctx context.Context, n int) ([]ManagedAppStatus, error) {
  1169  	var query string
  1170  	if r.query != nil {
  1171  		query = "?" + r.query.Encode()
  1172  	}
  1173  	return r.Paging(ctx, "GET", query, nil, n)
  1174  }
  1175  
  1176  // Get performs GET request for ManagedAppStatus collection
  1177  func (r *DeviceAppManagementManagedAppStatusesCollectionRequest) Get(ctx context.Context) ([]ManagedAppStatus, error) {
  1178  	return r.GetN(ctx, 0)
  1179  }
  1180  
  1181  // Add performs POST request for ManagedAppStatus collection
  1182  func (r *DeviceAppManagementManagedAppStatusesCollectionRequest) Add(ctx context.Context, reqObj *ManagedAppStatus) (resObj *ManagedAppStatus, err error) {
  1183  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  1184  	return
  1185  }
  1186  
  1187  // ManagedEBooks returns request builder for ManagedEBook collection
  1188  func (b *DeviceAppManagementRequestBuilder) ManagedEBooks() *DeviceAppManagementManagedEBooksCollectionRequestBuilder {
  1189  	bb := &DeviceAppManagementManagedEBooksCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1190  	bb.baseURL += "/managedEBooks"
  1191  	return bb
  1192  }
  1193  
  1194  // DeviceAppManagementManagedEBooksCollectionRequestBuilder is request builder for ManagedEBook collection
  1195  type DeviceAppManagementManagedEBooksCollectionRequestBuilder struct{ BaseRequestBuilder }
  1196  
  1197  // Request returns request for ManagedEBook collection
  1198  func (b *DeviceAppManagementManagedEBooksCollectionRequestBuilder) Request() *DeviceAppManagementManagedEBooksCollectionRequest {
  1199  	return &DeviceAppManagementManagedEBooksCollectionRequest{
  1200  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  1201  	}
  1202  }
  1203  
  1204  // ID returns request builder for ManagedEBook item
  1205  func (b *DeviceAppManagementManagedEBooksCollectionRequestBuilder) ID(id string) *ManagedEBookRequestBuilder {
  1206  	bb := &ManagedEBookRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1207  	bb.baseURL += "/" + id
  1208  	return bb
  1209  }
  1210  
  1211  // DeviceAppManagementManagedEBooksCollectionRequest is request for ManagedEBook collection
  1212  type DeviceAppManagementManagedEBooksCollectionRequest struct{ BaseRequest }
  1213  
  1214  // Paging perfoms paging operation for ManagedEBook collection
  1215  func (r *DeviceAppManagementManagedEBooksCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]ManagedEBook, error) {
  1216  	req, err := r.NewJSONRequest(method, path, obj)
  1217  	if err != nil {
  1218  		return nil, err
  1219  	}
  1220  	if ctx != nil {
  1221  		req = req.WithContext(ctx)
  1222  	}
  1223  	res, err := r.client.Do(req)
  1224  	if err != nil {
  1225  		return nil, err
  1226  	}
  1227  	var values []ManagedEBook
  1228  	for {
  1229  		if res.StatusCode != http.StatusOK {
  1230  			b, _ := ioutil.ReadAll(res.Body)
  1231  			res.Body.Close()
  1232  			errRes := &ErrorResponse{Response: res}
  1233  			err := jsonx.Unmarshal(b, errRes)
  1234  			if err != nil {
  1235  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  1236  			}
  1237  			return nil, errRes
  1238  		}
  1239  		var (
  1240  			paging Paging
  1241  			value  []ManagedEBook
  1242  		)
  1243  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  1244  		res.Body.Close()
  1245  		if err != nil {
  1246  			return nil, err
  1247  		}
  1248  		err = jsonx.Unmarshal(paging.Value, &value)
  1249  		if err != nil {
  1250  			return nil, err
  1251  		}
  1252  		values = append(values, value...)
  1253  		if n >= 0 {
  1254  			n--
  1255  		}
  1256  		if n == 0 || len(paging.NextLink) == 0 {
  1257  			return values, nil
  1258  		}
  1259  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  1260  		if ctx != nil {
  1261  			req = req.WithContext(ctx)
  1262  		}
  1263  		res, err = r.client.Do(req)
  1264  		if err != nil {
  1265  			return nil, err
  1266  		}
  1267  	}
  1268  }
  1269  
  1270  // GetN performs GET request for ManagedEBook collection, max N pages
  1271  func (r *DeviceAppManagementManagedEBooksCollectionRequest) GetN(ctx context.Context, n int) ([]ManagedEBook, error) {
  1272  	var query string
  1273  	if r.query != nil {
  1274  		query = "?" + r.query.Encode()
  1275  	}
  1276  	return r.Paging(ctx, "GET", query, nil, n)
  1277  }
  1278  
  1279  // Get performs GET request for ManagedEBook collection
  1280  func (r *DeviceAppManagementManagedEBooksCollectionRequest) Get(ctx context.Context) ([]ManagedEBook, error) {
  1281  	return r.GetN(ctx, 0)
  1282  }
  1283  
  1284  // Add performs POST request for ManagedEBook collection
  1285  func (r *DeviceAppManagementManagedEBooksCollectionRequest) Add(ctx context.Context, reqObj *ManagedEBook) (resObj *ManagedEBook, err error) {
  1286  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  1287  	return
  1288  }
  1289  
  1290  // MDMWindowsInformationProtectionPolicies returns request builder for MDMWindowsInformationProtectionPolicy collection
  1291  func (b *DeviceAppManagementRequestBuilder) MDMWindowsInformationProtectionPolicies() *DeviceAppManagementMDMWindowsInformationProtectionPoliciesCollectionRequestBuilder {
  1292  	bb := &DeviceAppManagementMDMWindowsInformationProtectionPoliciesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1293  	bb.baseURL += "/mdmWindowsInformationProtectionPolicies"
  1294  	return bb
  1295  }
  1296  
  1297  // DeviceAppManagementMDMWindowsInformationProtectionPoliciesCollectionRequestBuilder is request builder for MDMWindowsInformationProtectionPolicy collection
  1298  type DeviceAppManagementMDMWindowsInformationProtectionPoliciesCollectionRequestBuilder struct{ BaseRequestBuilder }
  1299  
  1300  // Request returns request for MDMWindowsInformationProtectionPolicy collection
  1301  func (b *DeviceAppManagementMDMWindowsInformationProtectionPoliciesCollectionRequestBuilder) Request() *DeviceAppManagementMDMWindowsInformationProtectionPoliciesCollectionRequest {
  1302  	return &DeviceAppManagementMDMWindowsInformationProtectionPoliciesCollectionRequest{
  1303  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  1304  	}
  1305  }
  1306  
  1307  // ID returns request builder for MDMWindowsInformationProtectionPolicy item
  1308  func (b *DeviceAppManagementMDMWindowsInformationProtectionPoliciesCollectionRequestBuilder) ID(id string) *MDMWindowsInformationProtectionPolicyRequestBuilder {
  1309  	bb := &MDMWindowsInformationProtectionPolicyRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1310  	bb.baseURL += "/" + id
  1311  	return bb
  1312  }
  1313  
  1314  // DeviceAppManagementMDMWindowsInformationProtectionPoliciesCollectionRequest is request for MDMWindowsInformationProtectionPolicy collection
  1315  type DeviceAppManagementMDMWindowsInformationProtectionPoliciesCollectionRequest struct{ BaseRequest }
  1316  
  1317  // Paging perfoms paging operation for MDMWindowsInformationProtectionPolicy collection
  1318  func (r *DeviceAppManagementMDMWindowsInformationProtectionPoliciesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]MDMWindowsInformationProtectionPolicy, error) {
  1319  	req, err := r.NewJSONRequest(method, path, obj)
  1320  	if err != nil {
  1321  		return nil, err
  1322  	}
  1323  	if ctx != nil {
  1324  		req = req.WithContext(ctx)
  1325  	}
  1326  	res, err := r.client.Do(req)
  1327  	if err != nil {
  1328  		return nil, err
  1329  	}
  1330  	var values []MDMWindowsInformationProtectionPolicy
  1331  	for {
  1332  		if res.StatusCode != http.StatusOK {
  1333  			b, _ := ioutil.ReadAll(res.Body)
  1334  			res.Body.Close()
  1335  			errRes := &ErrorResponse{Response: res}
  1336  			err := jsonx.Unmarshal(b, errRes)
  1337  			if err != nil {
  1338  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  1339  			}
  1340  			return nil, errRes
  1341  		}
  1342  		var (
  1343  			paging Paging
  1344  			value  []MDMWindowsInformationProtectionPolicy
  1345  		)
  1346  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  1347  		res.Body.Close()
  1348  		if err != nil {
  1349  			return nil, err
  1350  		}
  1351  		err = jsonx.Unmarshal(paging.Value, &value)
  1352  		if err != nil {
  1353  			return nil, err
  1354  		}
  1355  		values = append(values, value...)
  1356  		if n >= 0 {
  1357  			n--
  1358  		}
  1359  		if n == 0 || len(paging.NextLink) == 0 {
  1360  			return values, nil
  1361  		}
  1362  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  1363  		if ctx != nil {
  1364  			req = req.WithContext(ctx)
  1365  		}
  1366  		res, err = r.client.Do(req)
  1367  		if err != nil {
  1368  			return nil, err
  1369  		}
  1370  	}
  1371  }
  1372  
  1373  // GetN performs GET request for MDMWindowsInformationProtectionPolicy collection, max N pages
  1374  func (r *DeviceAppManagementMDMWindowsInformationProtectionPoliciesCollectionRequest) GetN(ctx context.Context, n int) ([]MDMWindowsInformationProtectionPolicy, error) {
  1375  	var query string
  1376  	if r.query != nil {
  1377  		query = "?" + r.query.Encode()
  1378  	}
  1379  	return r.Paging(ctx, "GET", query, nil, n)
  1380  }
  1381  
  1382  // Get performs GET request for MDMWindowsInformationProtectionPolicy collection
  1383  func (r *DeviceAppManagementMDMWindowsInformationProtectionPoliciesCollectionRequest) Get(ctx context.Context) ([]MDMWindowsInformationProtectionPolicy, error) {
  1384  	return r.GetN(ctx, 0)
  1385  }
  1386  
  1387  // Add performs POST request for MDMWindowsInformationProtectionPolicy collection
  1388  func (r *DeviceAppManagementMDMWindowsInformationProtectionPoliciesCollectionRequest) Add(ctx context.Context, reqObj *MDMWindowsInformationProtectionPolicy) (resObj *MDMWindowsInformationProtectionPolicy, err error) {
  1389  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  1390  	return
  1391  }
  1392  
  1393  // MobileAppCategories returns request builder for MobileAppCategory collection
  1394  func (b *DeviceAppManagementRequestBuilder) MobileAppCategories() *DeviceAppManagementMobileAppCategoriesCollectionRequestBuilder {
  1395  	bb := &DeviceAppManagementMobileAppCategoriesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1396  	bb.baseURL += "/mobileAppCategories"
  1397  	return bb
  1398  }
  1399  
  1400  // DeviceAppManagementMobileAppCategoriesCollectionRequestBuilder is request builder for MobileAppCategory collection
  1401  type DeviceAppManagementMobileAppCategoriesCollectionRequestBuilder struct{ BaseRequestBuilder }
  1402  
  1403  // Request returns request for MobileAppCategory collection
  1404  func (b *DeviceAppManagementMobileAppCategoriesCollectionRequestBuilder) Request() *DeviceAppManagementMobileAppCategoriesCollectionRequest {
  1405  	return &DeviceAppManagementMobileAppCategoriesCollectionRequest{
  1406  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  1407  	}
  1408  }
  1409  
  1410  // ID returns request builder for MobileAppCategory item
  1411  func (b *DeviceAppManagementMobileAppCategoriesCollectionRequestBuilder) ID(id string) *MobileAppCategoryRequestBuilder {
  1412  	bb := &MobileAppCategoryRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1413  	bb.baseURL += "/" + id
  1414  	return bb
  1415  }
  1416  
  1417  // DeviceAppManagementMobileAppCategoriesCollectionRequest is request for MobileAppCategory collection
  1418  type DeviceAppManagementMobileAppCategoriesCollectionRequest struct{ BaseRequest }
  1419  
  1420  // Paging perfoms paging operation for MobileAppCategory collection
  1421  func (r *DeviceAppManagementMobileAppCategoriesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]MobileAppCategory, error) {
  1422  	req, err := r.NewJSONRequest(method, path, obj)
  1423  	if err != nil {
  1424  		return nil, err
  1425  	}
  1426  	if ctx != nil {
  1427  		req = req.WithContext(ctx)
  1428  	}
  1429  	res, err := r.client.Do(req)
  1430  	if err != nil {
  1431  		return nil, err
  1432  	}
  1433  	var values []MobileAppCategory
  1434  	for {
  1435  		if res.StatusCode != http.StatusOK {
  1436  			b, _ := ioutil.ReadAll(res.Body)
  1437  			res.Body.Close()
  1438  			errRes := &ErrorResponse{Response: res}
  1439  			err := jsonx.Unmarshal(b, errRes)
  1440  			if err != nil {
  1441  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  1442  			}
  1443  			return nil, errRes
  1444  		}
  1445  		var (
  1446  			paging Paging
  1447  			value  []MobileAppCategory
  1448  		)
  1449  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  1450  		res.Body.Close()
  1451  		if err != nil {
  1452  			return nil, err
  1453  		}
  1454  		err = jsonx.Unmarshal(paging.Value, &value)
  1455  		if err != nil {
  1456  			return nil, err
  1457  		}
  1458  		values = append(values, value...)
  1459  		if n >= 0 {
  1460  			n--
  1461  		}
  1462  		if n == 0 || len(paging.NextLink) == 0 {
  1463  			return values, nil
  1464  		}
  1465  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  1466  		if ctx != nil {
  1467  			req = req.WithContext(ctx)
  1468  		}
  1469  		res, err = r.client.Do(req)
  1470  		if err != nil {
  1471  			return nil, err
  1472  		}
  1473  	}
  1474  }
  1475  
  1476  // GetN performs GET request for MobileAppCategory collection, max N pages
  1477  func (r *DeviceAppManagementMobileAppCategoriesCollectionRequest) GetN(ctx context.Context, n int) ([]MobileAppCategory, error) {
  1478  	var query string
  1479  	if r.query != nil {
  1480  		query = "?" + r.query.Encode()
  1481  	}
  1482  	return r.Paging(ctx, "GET", query, nil, n)
  1483  }
  1484  
  1485  // Get performs GET request for MobileAppCategory collection
  1486  func (r *DeviceAppManagementMobileAppCategoriesCollectionRequest) Get(ctx context.Context) ([]MobileAppCategory, error) {
  1487  	return r.GetN(ctx, 0)
  1488  }
  1489  
  1490  // Add performs POST request for MobileAppCategory collection
  1491  func (r *DeviceAppManagementMobileAppCategoriesCollectionRequest) Add(ctx context.Context, reqObj *MobileAppCategory) (resObj *MobileAppCategory, err error) {
  1492  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  1493  	return
  1494  }
  1495  
  1496  // MobileAppConfigurations returns request builder for ManagedDeviceMobileAppConfiguration collection
  1497  func (b *DeviceAppManagementRequestBuilder) MobileAppConfigurations() *DeviceAppManagementMobileAppConfigurationsCollectionRequestBuilder {
  1498  	bb := &DeviceAppManagementMobileAppConfigurationsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1499  	bb.baseURL += "/mobileAppConfigurations"
  1500  	return bb
  1501  }
  1502  
  1503  // DeviceAppManagementMobileAppConfigurationsCollectionRequestBuilder is request builder for ManagedDeviceMobileAppConfiguration collection
  1504  type DeviceAppManagementMobileAppConfigurationsCollectionRequestBuilder struct{ BaseRequestBuilder }
  1505  
  1506  // Request returns request for ManagedDeviceMobileAppConfiguration collection
  1507  func (b *DeviceAppManagementMobileAppConfigurationsCollectionRequestBuilder) Request() *DeviceAppManagementMobileAppConfigurationsCollectionRequest {
  1508  	return &DeviceAppManagementMobileAppConfigurationsCollectionRequest{
  1509  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  1510  	}
  1511  }
  1512  
  1513  // ID returns request builder for ManagedDeviceMobileAppConfiguration item
  1514  func (b *DeviceAppManagementMobileAppConfigurationsCollectionRequestBuilder) ID(id string) *ManagedDeviceMobileAppConfigurationRequestBuilder {
  1515  	bb := &ManagedDeviceMobileAppConfigurationRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1516  	bb.baseURL += "/" + id
  1517  	return bb
  1518  }
  1519  
  1520  // DeviceAppManagementMobileAppConfigurationsCollectionRequest is request for ManagedDeviceMobileAppConfiguration collection
  1521  type DeviceAppManagementMobileAppConfigurationsCollectionRequest struct{ BaseRequest }
  1522  
  1523  // Paging perfoms paging operation for ManagedDeviceMobileAppConfiguration collection
  1524  func (r *DeviceAppManagementMobileAppConfigurationsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]ManagedDeviceMobileAppConfiguration, error) {
  1525  	req, err := r.NewJSONRequest(method, path, obj)
  1526  	if err != nil {
  1527  		return nil, err
  1528  	}
  1529  	if ctx != nil {
  1530  		req = req.WithContext(ctx)
  1531  	}
  1532  	res, err := r.client.Do(req)
  1533  	if err != nil {
  1534  		return nil, err
  1535  	}
  1536  	var values []ManagedDeviceMobileAppConfiguration
  1537  	for {
  1538  		if res.StatusCode != http.StatusOK {
  1539  			b, _ := ioutil.ReadAll(res.Body)
  1540  			res.Body.Close()
  1541  			errRes := &ErrorResponse{Response: res}
  1542  			err := jsonx.Unmarshal(b, errRes)
  1543  			if err != nil {
  1544  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  1545  			}
  1546  			return nil, errRes
  1547  		}
  1548  		var (
  1549  			paging Paging
  1550  			value  []ManagedDeviceMobileAppConfiguration
  1551  		)
  1552  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  1553  		res.Body.Close()
  1554  		if err != nil {
  1555  			return nil, err
  1556  		}
  1557  		err = jsonx.Unmarshal(paging.Value, &value)
  1558  		if err != nil {
  1559  			return nil, err
  1560  		}
  1561  		values = append(values, value...)
  1562  		if n >= 0 {
  1563  			n--
  1564  		}
  1565  		if n == 0 || len(paging.NextLink) == 0 {
  1566  			return values, nil
  1567  		}
  1568  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  1569  		if ctx != nil {
  1570  			req = req.WithContext(ctx)
  1571  		}
  1572  		res, err = r.client.Do(req)
  1573  		if err != nil {
  1574  			return nil, err
  1575  		}
  1576  	}
  1577  }
  1578  
  1579  // GetN performs GET request for ManagedDeviceMobileAppConfiguration collection, max N pages
  1580  func (r *DeviceAppManagementMobileAppConfigurationsCollectionRequest) GetN(ctx context.Context, n int) ([]ManagedDeviceMobileAppConfiguration, error) {
  1581  	var query string
  1582  	if r.query != nil {
  1583  		query = "?" + r.query.Encode()
  1584  	}
  1585  	return r.Paging(ctx, "GET", query, nil, n)
  1586  }
  1587  
  1588  // Get performs GET request for ManagedDeviceMobileAppConfiguration collection
  1589  func (r *DeviceAppManagementMobileAppConfigurationsCollectionRequest) Get(ctx context.Context) ([]ManagedDeviceMobileAppConfiguration, error) {
  1590  	return r.GetN(ctx, 0)
  1591  }
  1592  
  1593  // Add performs POST request for ManagedDeviceMobileAppConfiguration collection
  1594  func (r *DeviceAppManagementMobileAppConfigurationsCollectionRequest) Add(ctx context.Context, reqObj *ManagedDeviceMobileAppConfiguration) (resObj *ManagedDeviceMobileAppConfiguration, err error) {
  1595  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  1596  	return
  1597  }
  1598  
  1599  // MobileApps returns request builder for MobileApp collection
  1600  func (b *DeviceAppManagementRequestBuilder) MobileApps() *DeviceAppManagementMobileAppsCollectionRequestBuilder {
  1601  	bb := &DeviceAppManagementMobileAppsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1602  	bb.baseURL += "/mobileApps"
  1603  	return bb
  1604  }
  1605  
  1606  // DeviceAppManagementMobileAppsCollectionRequestBuilder is request builder for MobileApp collection
  1607  type DeviceAppManagementMobileAppsCollectionRequestBuilder struct{ BaseRequestBuilder }
  1608  
  1609  // Request returns request for MobileApp collection
  1610  func (b *DeviceAppManagementMobileAppsCollectionRequestBuilder) Request() *DeviceAppManagementMobileAppsCollectionRequest {
  1611  	return &DeviceAppManagementMobileAppsCollectionRequest{
  1612  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  1613  	}
  1614  }
  1615  
  1616  // ID returns request builder for MobileApp item
  1617  func (b *DeviceAppManagementMobileAppsCollectionRequestBuilder) ID(id string) *MobileAppRequestBuilder {
  1618  	bb := &MobileAppRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1619  	bb.baseURL += "/" + id
  1620  	return bb
  1621  }
  1622  
  1623  // DeviceAppManagementMobileAppsCollectionRequest is request for MobileApp collection
  1624  type DeviceAppManagementMobileAppsCollectionRequest struct{ BaseRequest }
  1625  
  1626  // Paging perfoms paging operation for MobileApp collection
  1627  func (r *DeviceAppManagementMobileAppsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]MobileApp, error) {
  1628  	req, err := r.NewJSONRequest(method, path, obj)
  1629  	if err != nil {
  1630  		return nil, err
  1631  	}
  1632  	if ctx != nil {
  1633  		req = req.WithContext(ctx)
  1634  	}
  1635  	res, err := r.client.Do(req)
  1636  	if err != nil {
  1637  		return nil, err
  1638  	}
  1639  	var values []MobileApp
  1640  	for {
  1641  		if res.StatusCode != http.StatusOK {
  1642  			b, _ := ioutil.ReadAll(res.Body)
  1643  			res.Body.Close()
  1644  			errRes := &ErrorResponse{Response: res}
  1645  			err := jsonx.Unmarshal(b, errRes)
  1646  			if err != nil {
  1647  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  1648  			}
  1649  			return nil, errRes
  1650  		}
  1651  		var (
  1652  			paging Paging
  1653  			value  []MobileApp
  1654  		)
  1655  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  1656  		res.Body.Close()
  1657  		if err != nil {
  1658  			return nil, err
  1659  		}
  1660  		err = jsonx.Unmarshal(paging.Value, &value)
  1661  		if err != nil {
  1662  			return nil, err
  1663  		}
  1664  		values = append(values, value...)
  1665  		if n >= 0 {
  1666  			n--
  1667  		}
  1668  		if n == 0 || len(paging.NextLink) == 0 {
  1669  			return values, nil
  1670  		}
  1671  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  1672  		if ctx != nil {
  1673  			req = req.WithContext(ctx)
  1674  		}
  1675  		res, err = r.client.Do(req)
  1676  		if err != nil {
  1677  			return nil, err
  1678  		}
  1679  	}
  1680  }
  1681  
  1682  // GetN performs GET request for MobileApp collection, max N pages
  1683  func (r *DeviceAppManagementMobileAppsCollectionRequest) GetN(ctx context.Context, n int) ([]MobileApp, error) {
  1684  	var query string
  1685  	if r.query != nil {
  1686  		query = "?" + r.query.Encode()
  1687  	}
  1688  	return r.Paging(ctx, "GET", query, nil, n)
  1689  }
  1690  
  1691  // Get performs GET request for MobileApp collection
  1692  func (r *DeviceAppManagementMobileAppsCollectionRequest) Get(ctx context.Context) ([]MobileApp, error) {
  1693  	return r.GetN(ctx, 0)
  1694  }
  1695  
  1696  // Add performs POST request for MobileApp collection
  1697  func (r *DeviceAppManagementMobileAppsCollectionRequest) Add(ctx context.Context, reqObj *MobileApp) (resObj *MobileApp, err error) {
  1698  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  1699  	return
  1700  }
  1701  
  1702  // TargetedManagedAppConfigurations returns request builder for TargetedManagedAppConfiguration collection
  1703  func (b *DeviceAppManagementRequestBuilder) TargetedManagedAppConfigurations() *DeviceAppManagementTargetedManagedAppConfigurationsCollectionRequestBuilder {
  1704  	bb := &DeviceAppManagementTargetedManagedAppConfigurationsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1705  	bb.baseURL += "/targetedManagedAppConfigurations"
  1706  	return bb
  1707  }
  1708  
  1709  // DeviceAppManagementTargetedManagedAppConfigurationsCollectionRequestBuilder is request builder for TargetedManagedAppConfiguration collection
  1710  type DeviceAppManagementTargetedManagedAppConfigurationsCollectionRequestBuilder struct{ BaseRequestBuilder }
  1711  
  1712  // Request returns request for TargetedManagedAppConfiguration collection
  1713  func (b *DeviceAppManagementTargetedManagedAppConfigurationsCollectionRequestBuilder) Request() *DeviceAppManagementTargetedManagedAppConfigurationsCollectionRequest {
  1714  	return &DeviceAppManagementTargetedManagedAppConfigurationsCollectionRequest{
  1715  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  1716  	}
  1717  }
  1718  
  1719  // ID returns request builder for TargetedManagedAppConfiguration item
  1720  func (b *DeviceAppManagementTargetedManagedAppConfigurationsCollectionRequestBuilder) ID(id string) *TargetedManagedAppConfigurationRequestBuilder {
  1721  	bb := &TargetedManagedAppConfigurationRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1722  	bb.baseURL += "/" + id
  1723  	return bb
  1724  }
  1725  
  1726  // DeviceAppManagementTargetedManagedAppConfigurationsCollectionRequest is request for TargetedManagedAppConfiguration collection
  1727  type DeviceAppManagementTargetedManagedAppConfigurationsCollectionRequest struct{ BaseRequest }
  1728  
  1729  // Paging perfoms paging operation for TargetedManagedAppConfiguration collection
  1730  func (r *DeviceAppManagementTargetedManagedAppConfigurationsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]TargetedManagedAppConfiguration, error) {
  1731  	req, err := r.NewJSONRequest(method, path, obj)
  1732  	if err != nil {
  1733  		return nil, err
  1734  	}
  1735  	if ctx != nil {
  1736  		req = req.WithContext(ctx)
  1737  	}
  1738  	res, err := r.client.Do(req)
  1739  	if err != nil {
  1740  		return nil, err
  1741  	}
  1742  	var values []TargetedManagedAppConfiguration
  1743  	for {
  1744  		if res.StatusCode != http.StatusOK {
  1745  			b, _ := ioutil.ReadAll(res.Body)
  1746  			res.Body.Close()
  1747  			errRes := &ErrorResponse{Response: res}
  1748  			err := jsonx.Unmarshal(b, errRes)
  1749  			if err != nil {
  1750  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  1751  			}
  1752  			return nil, errRes
  1753  		}
  1754  		var (
  1755  			paging Paging
  1756  			value  []TargetedManagedAppConfiguration
  1757  		)
  1758  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  1759  		res.Body.Close()
  1760  		if err != nil {
  1761  			return nil, err
  1762  		}
  1763  		err = jsonx.Unmarshal(paging.Value, &value)
  1764  		if err != nil {
  1765  			return nil, err
  1766  		}
  1767  		values = append(values, value...)
  1768  		if n >= 0 {
  1769  			n--
  1770  		}
  1771  		if n == 0 || len(paging.NextLink) == 0 {
  1772  			return values, nil
  1773  		}
  1774  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  1775  		if ctx != nil {
  1776  			req = req.WithContext(ctx)
  1777  		}
  1778  		res, err = r.client.Do(req)
  1779  		if err != nil {
  1780  			return nil, err
  1781  		}
  1782  	}
  1783  }
  1784  
  1785  // GetN performs GET request for TargetedManagedAppConfiguration collection, max N pages
  1786  func (r *DeviceAppManagementTargetedManagedAppConfigurationsCollectionRequest) GetN(ctx context.Context, n int) ([]TargetedManagedAppConfiguration, error) {
  1787  	var query string
  1788  	if r.query != nil {
  1789  		query = "?" + r.query.Encode()
  1790  	}
  1791  	return r.Paging(ctx, "GET", query, nil, n)
  1792  }
  1793  
  1794  // Get performs GET request for TargetedManagedAppConfiguration collection
  1795  func (r *DeviceAppManagementTargetedManagedAppConfigurationsCollectionRequest) Get(ctx context.Context) ([]TargetedManagedAppConfiguration, error) {
  1796  	return r.GetN(ctx, 0)
  1797  }
  1798  
  1799  // Add performs POST request for TargetedManagedAppConfiguration collection
  1800  func (r *DeviceAppManagementTargetedManagedAppConfigurationsCollectionRequest) Add(ctx context.Context, reqObj *TargetedManagedAppConfiguration) (resObj *TargetedManagedAppConfiguration, err error) {
  1801  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  1802  	return
  1803  }
  1804  
  1805  // VPPTokens returns request builder for VPPToken collection
  1806  func (b *DeviceAppManagementRequestBuilder) VPPTokens() *DeviceAppManagementVPPTokensCollectionRequestBuilder {
  1807  	bb := &DeviceAppManagementVPPTokensCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1808  	bb.baseURL += "/vppTokens"
  1809  	return bb
  1810  }
  1811  
  1812  // DeviceAppManagementVPPTokensCollectionRequestBuilder is request builder for VPPToken collection
  1813  type DeviceAppManagementVPPTokensCollectionRequestBuilder struct{ BaseRequestBuilder }
  1814  
  1815  // Request returns request for VPPToken collection
  1816  func (b *DeviceAppManagementVPPTokensCollectionRequestBuilder) Request() *DeviceAppManagementVPPTokensCollectionRequest {
  1817  	return &DeviceAppManagementVPPTokensCollectionRequest{
  1818  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  1819  	}
  1820  }
  1821  
  1822  // ID returns request builder for VPPToken item
  1823  func (b *DeviceAppManagementVPPTokensCollectionRequestBuilder) ID(id string) *VPPTokenRequestBuilder {
  1824  	bb := &VPPTokenRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1825  	bb.baseURL += "/" + id
  1826  	return bb
  1827  }
  1828  
  1829  // DeviceAppManagementVPPTokensCollectionRequest is request for VPPToken collection
  1830  type DeviceAppManagementVPPTokensCollectionRequest struct{ BaseRequest }
  1831  
  1832  // Paging perfoms paging operation for VPPToken collection
  1833  func (r *DeviceAppManagementVPPTokensCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]VPPToken, error) {
  1834  	req, err := r.NewJSONRequest(method, path, obj)
  1835  	if err != nil {
  1836  		return nil, err
  1837  	}
  1838  	if ctx != nil {
  1839  		req = req.WithContext(ctx)
  1840  	}
  1841  	res, err := r.client.Do(req)
  1842  	if err != nil {
  1843  		return nil, err
  1844  	}
  1845  	var values []VPPToken
  1846  	for {
  1847  		if res.StatusCode != http.StatusOK {
  1848  			b, _ := ioutil.ReadAll(res.Body)
  1849  			res.Body.Close()
  1850  			errRes := &ErrorResponse{Response: res}
  1851  			err := jsonx.Unmarshal(b, errRes)
  1852  			if err != nil {
  1853  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  1854  			}
  1855  			return nil, errRes
  1856  		}
  1857  		var (
  1858  			paging Paging
  1859  			value  []VPPToken
  1860  		)
  1861  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  1862  		res.Body.Close()
  1863  		if err != nil {
  1864  			return nil, err
  1865  		}
  1866  		err = jsonx.Unmarshal(paging.Value, &value)
  1867  		if err != nil {
  1868  			return nil, err
  1869  		}
  1870  		values = append(values, value...)
  1871  		if n >= 0 {
  1872  			n--
  1873  		}
  1874  		if n == 0 || len(paging.NextLink) == 0 {
  1875  			return values, nil
  1876  		}
  1877  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  1878  		if ctx != nil {
  1879  			req = req.WithContext(ctx)
  1880  		}
  1881  		res, err = r.client.Do(req)
  1882  		if err != nil {
  1883  			return nil, err
  1884  		}
  1885  	}
  1886  }
  1887  
  1888  // GetN performs GET request for VPPToken collection, max N pages
  1889  func (r *DeviceAppManagementVPPTokensCollectionRequest) GetN(ctx context.Context, n int) ([]VPPToken, error) {
  1890  	var query string
  1891  	if r.query != nil {
  1892  		query = "?" + r.query.Encode()
  1893  	}
  1894  	return r.Paging(ctx, "GET", query, nil, n)
  1895  }
  1896  
  1897  // Get performs GET request for VPPToken collection
  1898  func (r *DeviceAppManagementVPPTokensCollectionRequest) Get(ctx context.Context) ([]VPPToken, error) {
  1899  	return r.GetN(ctx, 0)
  1900  }
  1901  
  1902  // Add performs POST request for VPPToken collection
  1903  func (r *DeviceAppManagementVPPTokensCollectionRequest) Add(ctx context.Context, reqObj *VPPToken) (resObj *VPPToken, err error) {
  1904  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  1905  	return
  1906  }
  1907  
  1908  // WindowsInformationProtectionPolicies returns request builder for WindowsInformationProtectionPolicy collection
  1909  func (b *DeviceAppManagementRequestBuilder) WindowsInformationProtectionPolicies() *DeviceAppManagementWindowsInformationProtectionPoliciesCollectionRequestBuilder {
  1910  	bb := &DeviceAppManagementWindowsInformationProtectionPoliciesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1911  	bb.baseURL += "/windowsInformationProtectionPolicies"
  1912  	return bb
  1913  }
  1914  
  1915  // DeviceAppManagementWindowsInformationProtectionPoliciesCollectionRequestBuilder is request builder for WindowsInformationProtectionPolicy collection
  1916  type DeviceAppManagementWindowsInformationProtectionPoliciesCollectionRequestBuilder struct{ BaseRequestBuilder }
  1917  
  1918  // Request returns request for WindowsInformationProtectionPolicy collection
  1919  func (b *DeviceAppManagementWindowsInformationProtectionPoliciesCollectionRequestBuilder) Request() *DeviceAppManagementWindowsInformationProtectionPoliciesCollectionRequest {
  1920  	return &DeviceAppManagementWindowsInformationProtectionPoliciesCollectionRequest{
  1921  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  1922  	}
  1923  }
  1924  
  1925  // ID returns request builder for WindowsInformationProtectionPolicy item
  1926  func (b *DeviceAppManagementWindowsInformationProtectionPoliciesCollectionRequestBuilder) ID(id string) *WindowsInformationProtectionPolicyRequestBuilder {
  1927  	bb := &WindowsInformationProtectionPolicyRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  1928  	bb.baseURL += "/" + id
  1929  	return bb
  1930  }
  1931  
  1932  // DeviceAppManagementWindowsInformationProtectionPoliciesCollectionRequest is request for WindowsInformationProtectionPolicy collection
  1933  type DeviceAppManagementWindowsInformationProtectionPoliciesCollectionRequest struct{ BaseRequest }
  1934  
  1935  // Paging perfoms paging operation for WindowsInformationProtectionPolicy collection
  1936  func (r *DeviceAppManagementWindowsInformationProtectionPoliciesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]WindowsInformationProtectionPolicy, error) {
  1937  	req, err := r.NewJSONRequest(method, path, obj)
  1938  	if err != nil {
  1939  		return nil, err
  1940  	}
  1941  	if ctx != nil {
  1942  		req = req.WithContext(ctx)
  1943  	}
  1944  	res, err := r.client.Do(req)
  1945  	if err != nil {
  1946  		return nil, err
  1947  	}
  1948  	var values []WindowsInformationProtectionPolicy
  1949  	for {
  1950  		if res.StatusCode != http.StatusOK {
  1951  			b, _ := ioutil.ReadAll(res.Body)
  1952  			res.Body.Close()
  1953  			errRes := &ErrorResponse{Response: res}
  1954  			err := jsonx.Unmarshal(b, errRes)
  1955  			if err != nil {
  1956  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  1957  			}
  1958  			return nil, errRes
  1959  		}
  1960  		var (
  1961  			paging Paging
  1962  			value  []WindowsInformationProtectionPolicy
  1963  		)
  1964  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  1965  		res.Body.Close()
  1966  		if err != nil {
  1967  			return nil, err
  1968  		}
  1969  		err = jsonx.Unmarshal(paging.Value, &value)
  1970  		if err != nil {
  1971  			return nil, err
  1972  		}
  1973  		values = append(values, value...)
  1974  		if n >= 0 {
  1975  			n--
  1976  		}
  1977  		if n == 0 || len(paging.NextLink) == 0 {
  1978  			return values, nil
  1979  		}
  1980  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  1981  		if ctx != nil {
  1982  			req = req.WithContext(ctx)
  1983  		}
  1984  		res, err = r.client.Do(req)
  1985  		if err != nil {
  1986  			return nil, err
  1987  		}
  1988  	}
  1989  }
  1990  
  1991  // GetN performs GET request for WindowsInformationProtectionPolicy collection, max N pages
  1992  func (r *DeviceAppManagementWindowsInformationProtectionPoliciesCollectionRequest) GetN(ctx context.Context, n int) ([]WindowsInformationProtectionPolicy, error) {
  1993  	var query string
  1994  	if r.query != nil {
  1995  		query = "?" + r.query.Encode()
  1996  	}
  1997  	return r.Paging(ctx, "GET", query, nil, n)
  1998  }
  1999  
  2000  // Get performs GET request for WindowsInformationProtectionPolicy collection
  2001  func (r *DeviceAppManagementWindowsInformationProtectionPoliciesCollectionRequest) Get(ctx context.Context) ([]WindowsInformationProtectionPolicy, error) {
  2002  	return r.GetN(ctx, 0)
  2003  }
  2004  
  2005  // Add performs POST request for WindowsInformationProtectionPolicy collection
  2006  func (r *DeviceAppManagementWindowsInformationProtectionPoliciesCollectionRequest) Add(ctx context.Context, reqObj *WindowsInformationProtectionPolicy) (resObj *WindowsInformationProtectionPolicy, err error) {
  2007  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  2008  	return
  2009  }
  2010  
  2011  // Assignments returns request builder for DeviceCompliancePolicyAssignment collection
  2012  func (b *DeviceCompliancePolicyRequestBuilder) Assignments() *DeviceCompliancePolicyAssignmentsCollectionRequestBuilder {
  2013  	bb := &DeviceCompliancePolicyAssignmentsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2014  	bb.baseURL += "/assignments"
  2015  	return bb
  2016  }
  2017  
  2018  // DeviceCompliancePolicyAssignmentsCollectionRequestBuilder is request builder for DeviceCompliancePolicyAssignment collection
  2019  type DeviceCompliancePolicyAssignmentsCollectionRequestBuilder struct{ BaseRequestBuilder }
  2020  
  2021  // Request returns request for DeviceCompliancePolicyAssignment collection
  2022  func (b *DeviceCompliancePolicyAssignmentsCollectionRequestBuilder) Request() *DeviceCompliancePolicyAssignmentsCollectionRequest {
  2023  	return &DeviceCompliancePolicyAssignmentsCollectionRequest{
  2024  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  2025  	}
  2026  }
  2027  
  2028  // ID returns request builder for DeviceCompliancePolicyAssignment item
  2029  func (b *DeviceCompliancePolicyAssignmentsCollectionRequestBuilder) ID(id string) *DeviceCompliancePolicyAssignmentRequestBuilder {
  2030  	bb := &DeviceCompliancePolicyAssignmentRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2031  	bb.baseURL += "/" + id
  2032  	return bb
  2033  }
  2034  
  2035  // DeviceCompliancePolicyAssignmentsCollectionRequest is request for DeviceCompliancePolicyAssignment collection
  2036  type DeviceCompliancePolicyAssignmentsCollectionRequest struct{ BaseRequest }
  2037  
  2038  // Paging perfoms paging operation for DeviceCompliancePolicyAssignment collection
  2039  func (r *DeviceCompliancePolicyAssignmentsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]DeviceCompliancePolicyAssignment, error) {
  2040  	req, err := r.NewJSONRequest(method, path, obj)
  2041  	if err != nil {
  2042  		return nil, err
  2043  	}
  2044  	if ctx != nil {
  2045  		req = req.WithContext(ctx)
  2046  	}
  2047  	res, err := r.client.Do(req)
  2048  	if err != nil {
  2049  		return nil, err
  2050  	}
  2051  	var values []DeviceCompliancePolicyAssignment
  2052  	for {
  2053  		if res.StatusCode != http.StatusOK {
  2054  			b, _ := ioutil.ReadAll(res.Body)
  2055  			res.Body.Close()
  2056  			errRes := &ErrorResponse{Response: res}
  2057  			err := jsonx.Unmarshal(b, errRes)
  2058  			if err != nil {
  2059  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  2060  			}
  2061  			return nil, errRes
  2062  		}
  2063  		var (
  2064  			paging Paging
  2065  			value  []DeviceCompliancePolicyAssignment
  2066  		)
  2067  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  2068  		res.Body.Close()
  2069  		if err != nil {
  2070  			return nil, err
  2071  		}
  2072  		err = jsonx.Unmarshal(paging.Value, &value)
  2073  		if err != nil {
  2074  			return nil, err
  2075  		}
  2076  		values = append(values, value...)
  2077  		if n >= 0 {
  2078  			n--
  2079  		}
  2080  		if n == 0 || len(paging.NextLink) == 0 {
  2081  			return values, nil
  2082  		}
  2083  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  2084  		if ctx != nil {
  2085  			req = req.WithContext(ctx)
  2086  		}
  2087  		res, err = r.client.Do(req)
  2088  		if err != nil {
  2089  			return nil, err
  2090  		}
  2091  	}
  2092  }
  2093  
  2094  // GetN performs GET request for DeviceCompliancePolicyAssignment collection, max N pages
  2095  func (r *DeviceCompliancePolicyAssignmentsCollectionRequest) GetN(ctx context.Context, n int) ([]DeviceCompliancePolicyAssignment, error) {
  2096  	var query string
  2097  	if r.query != nil {
  2098  		query = "?" + r.query.Encode()
  2099  	}
  2100  	return r.Paging(ctx, "GET", query, nil, n)
  2101  }
  2102  
  2103  // Get performs GET request for DeviceCompliancePolicyAssignment collection
  2104  func (r *DeviceCompliancePolicyAssignmentsCollectionRequest) Get(ctx context.Context) ([]DeviceCompliancePolicyAssignment, error) {
  2105  	return r.GetN(ctx, 0)
  2106  }
  2107  
  2108  // Add performs POST request for DeviceCompliancePolicyAssignment collection
  2109  func (r *DeviceCompliancePolicyAssignmentsCollectionRequest) Add(ctx context.Context, reqObj *DeviceCompliancePolicyAssignment) (resObj *DeviceCompliancePolicyAssignment, err error) {
  2110  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  2111  	return
  2112  }
  2113  
  2114  // DeviceSettingStateSummaries returns request builder for SettingStateDeviceSummary collection
  2115  func (b *DeviceCompliancePolicyRequestBuilder) DeviceSettingStateSummaries() *DeviceCompliancePolicyDeviceSettingStateSummariesCollectionRequestBuilder {
  2116  	bb := &DeviceCompliancePolicyDeviceSettingStateSummariesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2117  	bb.baseURL += "/deviceSettingStateSummaries"
  2118  	return bb
  2119  }
  2120  
  2121  // DeviceCompliancePolicyDeviceSettingStateSummariesCollectionRequestBuilder is request builder for SettingStateDeviceSummary collection
  2122  type DeviceCompliancePolicyDeviceSettingStateSummariesCollectionRequestBuilder struct{ BaseRequestBuilder }
  2123  
  2124  // Request returns request for SettingStateDeviceSummary collection
  2125  func (b *DeviceCompliancePolicyDeviceSettingStateSummariesCollectionRequestBuilder) Request() *DeviceCompliancePolicyDeviceSettingStateSummariesCollectionRequest {
  2126  	return &DeviceCompliancePolicyDeviceSettingStateSummariesCollectionRequest{
  2127  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  2128  	}
  2129  }
  2130  
  2131  // ID returns request builder for SettingStateDeviceSummary item
  2132  func (b *DeviceCompliancePolicyDeviceSettingStateSummariesCollectionRequestBuilder) ID(id string) *SettingStateDeviceSummaryRequestBuilder {
  2133  	bb := &SettingStateDeviceSummaryRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2134  	bb.baseURL += "/" + id
  2135  	return bb
  2136  }
  2137  
  2138  // DeviceCompliancePolicyDeviceSettingStateSummariesCollectionRequest is request for SettingStateDeviceSummary collection
  2139  type DeviceCompliancePolicyDeviceSettingStateSummariesCollectionRequest struct{ BaseRequest }
  2140  
  2141  // Paging perfoms paging operation for SettingStateDeviceSummary collection
  2142  func (r *DeviceCompliancePolicyDeviceSettingStateSummariesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]SettingStateDeviceSummary, error) {
  2143  	req, err := r.NewJSONRequest(method, path, obj)
  2144  	if err != nil {
  2145  		return nil, err
  2146  	}
  2147  	if ctx != nil {
  2148  		req = req.WithContext(ctx)
  2149  	}
  2150  	res, err := r.client.Do(req)
  2151  	if err != nil {
  2152  		return nil, err
  2153  	}
  2154  	var values []SettingStateDeviceSummary
  2155  	for {
  2156  		if res.StatusCode != http.StatusOK {
  2157  			b, _ := ioutil.ReadAll(res.Body)
  2158  			res.Body.Close()
  2159  			errRes := &ErrorResponse{Response: res}
  2160  			err := jsonx.Unmarshal(b, errRes)
  2161  			if err != nil {
  2162  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  2163  			}
  2164  			return nil, errRes
  2165  		}
  2166  		var (
  2167  			paging Paging
  2168  			value  []SettingStateDeviceSummary
  2169  		)
  2170  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  2171  		res.Body.Close()
  2172  		if err != nil {
  2173  			return nil, err
  2174  		}
  2175  		err = jsonx.Unmarshal(paging.Value, &value)
  2176  		if err != nil {
  2177  			return nil, err
  2178  		}
  2179  		values = append(values, value...)
  2180  		if n >= 0 {
  2181  			n--
  2182  		}
  2183  		if n == 0 || len(paging.NextLink) == 0 {
  2184  			return values, nil
  2185  		}
  2186  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  2187  		if ctx != nil {
  2188  			req = req.WithContext(ctx)
  2189  		}
  2190  		res, err = r.client.Do(req)
  2191  		if err != nil {
  2192  			return nil, err
  2193  		}
  2194  	}
  2195  }
  2196  
  2197  // GetN performs GET request for SettingStateDeviceSummary collection, max N pages
  2198  func (r *DeviceCompliancePolicyDeviceSettingStateSummariesCollectionRequest) GetN(ctx context.Context, n int) ([]SettingStateDeviceSummary, error) {
  2199  	var query string
  2200  	if r.query != nil {
  2201  		query = "?" + r.query.Encode()
  2202  	}
  2203  	return r.Paging(ctx, "GET", query, nil, n)
  2204  }
  2205  
  2206  // Get performs GET request for SettingStateDeviceSummary collection
  2207  func (r *DeviceCompliancePolicyDeviceSettingStateSummariesCollectionRequest) Get(ctx context.Context) ([]SettingStateDeviceSummary, error) {
  2208  	return r.GetN(ctx, 0)
  2209  }
  2210  
  2211  // Add performs POST request for SettingStateDeviceSummary collection
  2212  func (r *DeviceCompliancePolicyDeviceSettingStateSummariesCollectionRequest) Add(ctx context.Context, reqObj *SettingStateDeviceSummary) (resObj *SettingStateDeviceSummary, err error) {
  2213  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  2214  	return
  2215  }
  2216  
  2217  // DeviceStatusOverview is navigation property
  2218  func (b *DeviceCompliancePolicyRequestBuilder) DeviceStatusOverview() *DeviceComplianceDeviceOverviewRequestBuilder {
  2219  	bb := &DeviceComplianceDeviceOverviewRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2220  	bb.baseURL += "/deviceStatusOverview"
  2221  	return bb
  2222  }
  2223  
  2224  // DeviceStatuses returns request builder for DeviceComplianceDeviceStatus collection
  2225  func (b *DeviceCompliancePolicyRequestBuilder) DeviceStatuses() *DeviceCompliancePolicyDeviceStatusesCollectionRequestBuilder {
  2226  	bb := &DeviceCompliancePolicyDeviceStatusesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2227  	bb.baseURL += "/deviceStatuses"
  2228  	return bb
  2229  }
  2230  
  2231  // DeviceCompliancePolicyDeviceStatusesCollectionRequestBuilder is request builder for DeviceComplianceDeviceStatus collection
  2232  type DeviceCompliancePolicyDeviceStatusesCollectionRequestBuilder struct{ BaseRequestBuilder }
  2233  
  2234  // Request returns request for DeviceComplianceDeviceStatus collection
  2235  func (b *DeviceCompliancePolicyDeviceStatusesCollectionRequestBuilder) Request() *DeviceCompliancePolicyDeviceStatusesCollectionRequest {
  2236  	return &DeviceCompliancePolicyDeviceStatusesCollectionRequest{
  2237  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  2238  	}
  2239  }
  2240  
  2241  // ID returns request builder for DeviceComplianceDeviceStatus item
  2242  func (b *DeviceCompliancePolicyDeviceStatusesCollectionRequestBuilder) ID(id string) *DeviceComplianceDeviceStatusRequestBuilder {
  2243  	bb := &DeviceComplianceDeviceStatusRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2244  	bb.baseURL += "/" + id
  2245  	return bb
  2246  }
  2247  
  2248  // DeviceCompliancePolicyDeviceStatusesCollectionRequest is request for DeviceComplianceDeviceStatus collection
  2249  type DeviceCompliancePolicyDeviceStatusesCollectionRequest struct{ BaseRequest }
  2250  
  2251  // Paging perfoms paging operation for DeviceComplianceDeviceStatus collection
  2252  func (r *DeviceCompliancePolicyDeviceStatusesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]DeviceComplianceDeviceStatus, error) {
  2253  	req, err := r.NewJSONRequest(method, path, obj)
  2254  	if err != nil {
  2255  		return nil, err
  2256  	}
  2257  	if ctx != nil {
  2258  		req = req.WithContext(ctx)
  2259  	}
  2260  	res, err := r.client.Do(req)
  2261  	if err != nil {
  2262  		return nil, err
  2263  	}
  2264  	var values []DeviceComplianceDeviceStatus
  2265  	for {
  2266  		if res.StatusCode != http.StatusOK {
  2267  			b, _ := ioutil.ReadAll(res.Body)
  2268  			res.Body.Close()
  2269  			errRes := &ErrorResponse{Response: res}
  2270  			err := jsonx.Unmarshal(b, errRes)
  2271  			if err != nil {
  2272  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  2273  			}
  2274  			return nil, errRes
  2275  		}
  2276  		var (
  2277  			paging Paging
  2278  			value  []DeviceComplianceDeviceStatus
  2279  		)
  2280  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  2281  		res.Body.Close()
  2282  		if err != nil {
  2283  			return nil, err
  2284  		}
  2285  		err = jsonx.Unmarshal(paging.Value, &value)
  2286  		if err != nil {
  2287  			return nil, err
  2288  		}
  2289  		values = append(values, value...)
  2290  		if n >= 0 {
  2291  			n--
  2292  		}
  2293  		if n == 0 || len(paging.NextLink) == 0 {
  2294  			return values, nil
  2295  		}
  2296  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  2297  		if ctx != nil {
  2298  			req = req.WithContext(ctx)
  2299  		}
  2300  		res, err = r.client.Do(req)
  2301  		if err != nil {
  2302  			return nil, err
  2303  		}
  2304  	}
  2305  }
  2306  
  2307  // GetN performs GET request for DeviceComplianceDeviceStatus collection, max N pages
  2308  func (r *DeviceCompliancePolicyDeviceStatusesCollectionRequest) GetN(ctx context.Context, n int) ([]DeviceComplianceDeviceStatus, error) {
  2309  	var query string
  2310  	if r.query != nil {
  2311  		query = "?" + r.query.Encode()
  2312  	}
  2313  	return r.Paging(ctx, "GET", query, nil, n)
  2314  }
  2315  
  2316  // Get performs GET request for DeviceComplianceDeviceStatus collection
  2317  func (r *DeviceCompliancePolicyDeviceStatusesCollectionRequest) Get(ctx context.Context) ([]DeviceComplianceDeviceStatus, error) {
  2318  	return r.GetN(ctx, 0)
  2319  }
  2320  
  2321  // Add performs POST request for DeviceComplianceDeviceStatus collection
  2322  func (r *DeviceCompliancePolicyDeviceStatusesCollectionRequest) Add(ctx context.Context, reqObj *DeviceComplianceDeviceStatus) (resObj *DeviceComplianceDeviceStatus, err error) {
  2323  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  2324  	return
  2325  }
  2326  
  2327  // ScheduledActionsForRule returns request builder for DeviceComplianceScheduledActionForRule collection
  2328  func (b *DeviceCompliancePolicyRequestBuilder) ScheduledActionsForRule() *DeviceCompliancePolicyScheduledActionsForRuleCollectionRequestBuilder {
  2329  	bb := &DeviceCompliancePolicyScheduledActionsForRuleCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2330  	bb.baseURL += "/scheduledActionsForRule"
  2331  	return bb
  2332  }
  2333  
  2334  // DeviceCompliancePolicyScheduledActionsForRuleCollectionRequestBuilder is request builder for DeviceComplianceScheduledActionForRule collection
  2335  type DeviceCompliancePolicyScheduledActionsForRuleCollectionRequestBuilder struct{ BaseRequestBuilder }
  2336  
  2337  // Request returns request for DeviceComplianceScheduledActionForRule collection
  2338  func (b *DeviceCompliancePolicyScheduledActionsForRuleCollectionRequestBuilder) Request() *DeviceCompliancePolicyScheduledActionsForRuleCollectionRequest {
  2339  	return &DeviceCompliancePolicyScheduledActionsForRuleCollectionRequest{
  2340  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  2341  	}
  2342  }
  2343  
  2344  // ID returns request builder for DeviceComplianceScheduledActionForRule item
  2345  func (b *DeviceCompliancePolicyScheduledActionsForRuleCollectionRequestBuilder) ID(id string) *DeviceComplianceScheduledActionForRuleRequestBuilder {
  2346  	bb := &DeviceComplianceScheduledActionForRuleRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2347  	bb.baseURL += "/" + id
  2348  	return bb
  2349  }
  2350  
  2351  // DeviceCompliancePolicyScheduledActionsForRuleCollectionRequest is request for DeviceComplianceScheduledActionForRule collection
  2352  type DeviceCompliancePolicyScheduledActionsForRuleCollectionRequest struct{ BaseRequest }
  2353  
  2354  // Paging perfoms paging operation for DeviceComplianceScheduledActionForRule collection
  2355  func (r *DeviceCompliancePolicyScheduledActionsForRuleCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]DeviceComplianceScheduledActionForRule, error) {
  2356  	req, err := r.NewJSONRequest(method, path, obj)
  2357  	if err != nil {
  2358  		return nil, err
  2359  	}
  2360  	if ctx != nil {
  2361  		req = req.WithContext(ctx)
  2362  	}
  2363  	res, err := r.client.Do(req)
  2364  	if err != nil {
  2365  		return nil, err
  2366  	}
  2367  	var values []DeviceComplianceScheduledActionForRule
  2368  	for {
  2369  		if res.StatusCode != http.StatusOK {
  2370  			b, _ := ioutil.ReadAll(res.Body)
  2371  			res.Body.Close()
  2372  			errRes := &ErrorResponse{Response: res}
  2373  			err := jsonx.Unmarshal(b, errRes)
  2374  			if err != nil {
  2375  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  2376  			}
  2377  			return nil, errRes
  2378  		}
  2379  		var (
  2380  			paging Paging
  2381  			value  []DeviceComplianceScheduledActionForRule
  2382  		)
  2383  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  2384  		res.Body.Close()
  2385  		if err != nil {
  2386  			return nil, err
  2387  		}
  2388  		err = jsonx.Unmarshal(paging.Value, &value)
  2389  		if err != nil {
  2390  			return nil, err
  2391  		}
  2392  		values = append(values, value...)
  2393  		if n >= 0 {
  2394  			n--
  2395  		}
  2396  		if n == 0 || len(paging.NextLink) == 0 {
  2397  			return values, nil
  2398  		}
  2399  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  2400  		if ctx != nil {
  2401  			req = req.WithContext(ctx)
  2402  		}
  2403  		res, err = r.client.Do(req)
  2404  		if err != nil {
  2405  			return nil, err
  2406  		}
  2407  	}
  2408  }
  2409  
  2410  // GetN performs GET request for DeviceComplianceScheduledActionForRule collection, max N pages
  2411  func (r *DeviceCompliancePolicyScheduledActionsForRuleCollectionRequest) GetN(ctx context.Context, n int) ([]DeviceComplianceScheduledActionForRule, error) {
  2412  	var query string
  2413  	if r.query != nil {
  2414  		query = "?" + r.query.Encode()
  2415  	}
  2416  	return r.Paging(ctx, "GET", query, nil, n)
  2417  }
  2418  
  2419  // Get performs GET request for DeviceComplianceScheduledActionForRule collection
  2420  func (r *DeviceCompliancePolicyScheduledActionsForRuleCollectionRequest) Get(ctx context.Context) ([]DeviceComplianceScheduledActionForRule, error) {
  2421  	return r.GetN(ctx, 0)
  2422  }
  2423  
  2424  // Add performs POST request for DeviceComplianceScheduledActionForRule collection
  2425  func (r *DeviceCompliancePolicyScheduledActionsForRuleCollectionRequest) Add(ctx context.Context, reqObj *DeviceComplianceScheduledActionForRule) (resObj *DeviceComplianceScheduledActionForRule, err error) {
  2426  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  2427  	return
  2428  }
  2429  
  2430  // UserStatusOverview is navigation property
  2431  func (b *DeviceCompliancePolicyRequestBuilder) UserStatusOverview() *DeviceComplianceUserOverviewRequestBuilder {
  2432  	bb := &DeviceComplianceUserOverviewRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2433  	bb.baseURL += "/userStatusOverview"
  2434  	return bb
  2435  }
  2436  
  2437  // UserStatuses returns request builder for DeviceComplianceUserStatus collection
  2438  func (b *DeviceCompliancePolicyRequestBuilder) UserStatuses() *DeviceCompliancePolicyUserStatusesCollectionRequestBuilder {
  2439  	bb := &DeviceCompliancePolicyUserStatusesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2440  	bb.baseURL += "/userStatuses"
  2441  	return bb
  2442  }
  2443  
  2444  // DeviceCompliancePolicyUserStatusesCollectionRequestBuilder is request builder for DeviceComplianceUserStatus collection
  2445  type DeviceCompliancePolicyUserStatusesCollectionRequestBuilder struct{ BaseRequestBuilder }
  2446  
  2447  // Request returns request for DeviceComplianceUserStatus collection
  2448  func (b *DeviceCompliancePolicyUserStatusesCollectionRequestBuilder) Request() *DeviceCompliancePolicyUserStatusesCollectionRequest {
  2449  	return &DeviceCompliancePolicyUserStatusesCollectionRequest{
  2450  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  2451  	}
  2452  }
  2453  
  2454  // ID returns request builder for DeviceComplianceUserStatus item
  2455  func (b *DeviceCompliancePolicyUserStatusesCollectionRequestBuilder) ID(id string) *DeviceComplianceUserStatusRequestBuilder {
  2456  	bb := &DeviceComplianceUserStatusRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2457  	bb.baseURL += "/" + id
  2458  	return bb
  2459  }
  2460  
  2461  // DeviceCompliancePolicyUserStatusesCollectionRequest is request for DeviceComplianceUserStatus collection
  2462  type DeviceCompliancePolicyUserStatusesCollectionRequest struct{ BaseRequest }
  2463  
  2464  // Paging perfoms paging operation for DeviceComplianceUserStatus collection
  2465  func (r *DeviceCompliancePolicyUserStatusesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]DeviceComplianceUserStatus, error) {
  2466  	req, err := r.NewJSONRequest(method, path, obj)
  2467  	if err != nil {
  2468  		return nil, err
  2469  	}
  2470  	if ctx != nil {
  2471  		req = req.WithContext(ctx)
  2472  	}
  2473  	res, err := r.client.Do(req)
  2474  	if err != nil {
  2475  		return nil, err
  2476  	}
  2477  	var values []DeviceComplianceUserStatus
  2478  	for {
  2479  		if res.StatusCode != http.StatusOK {
  2480  			b, _ := ioutil.ReadAll(res.Body)
  2481  			res.Body.Close()
  2482  			errRes := &ErrorResponse{Response: res}
  2483  			err := jsonx.Unmarshal(b, errRes)
  2484  			if err != nil {
  2485  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  2486  			}
  2487  			return nil, errRes
  2488  		}
  2489  		var (
  2490  			paging Paging
  2491  			value  []DeviceComplianceUserStatus
  2492  		)
  2493  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  2494  		res.Body.Close()
  2495  		if err != nil {
  2496  			return nil, err
  2497  		}
  2498  		err = jsonx.Unmarshal(paging.Value, &value)
  2499  		if err != nil {
  2500  			return nil, err
  2501  		}
  2502  		values = append(values, value...)
  2503  		if n >= 0 {
  2504  			n--
  2505  		}
  2506  		if n == 0 || len(paging.NextLink) == 0 {
  2507  			return values, nil
  2508  		}
  2509  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  2510  		if ctx != nil {
  2511  			req = req.WithContext(ctx)
  2512  		}
  2513  		res, err = r.client.Do(req)
  2514  		if err != nil {
  2515  			return nil, err
  2516  		}
  2517  	}
  2518  }
  2519  
  2520  // GetN performs GET request for DeviceComplianceUserStatus collection, max N pages
  2521  func (r *DeviceCompliancePolicyUserStatusesCollectionRequest) GetN(ctx context.Context, n int) ([]DeviceComplianceUserStatus, error) {
  2522  	var query string
  2523  	if r.query != nil {
  2524  		query = "?" + r.query.Encode()
  2525  	}
  2526  	return r.Paging(ctx, "GET", query, nil, n)
  2527  }
  2528  
  2529  // Get performs GET request for DeviceComplianceUserStatus collection
  2530  func (r *DeviceCompliancePolicyUserStatusesCollectionRequest) Get(ctx context.Context) ([]DeviceComplianceUserStatus, error) {
  2531  	return r.GetN(ctx, 0)
  2532  }
  2533  
  2534  // Add performs POST request for DeviceComplianceUserStatus collection
  2535  func (r *DeviceCompliancePolicyUserStatusesCollectionRequest) Add(ctx context.Context, reqObj *DeviceComplianceUserStatus) (resObj *DeviceComplianceUserStatus, err error) {
  2536  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  2537  	return
  2538  }
  2539  
  2540  // DeviceComplianceSettingStates returns request builder for DeviceComplianceSettingState collection
  2541  func (b *DeviceCompliancePolicySettingStateSummaryRequestBuilder) DeviceComplianceSettingStates() *DeviceCompliancePolicySettingStateSummaryDeviceComplianceSettingStatesCollectionRequestBuilder {
  2542  	bb := &DeviceCompliancePolicySettingStateSummaryDeviceComplianceSettingStatesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2543  	bb.baseURL += "/deviceComplianceSettingStates"
  2544  	return bb
  2545  }
  2546  
  2547  // DeviceCompliancePolicySettingStateSummaryDeviceComplianceSettingStatesCollectionRequestBuilder is request builder for DeviceComplianceSettingState collection
  2548  type DeviceCompliancePolicySettingStateSummaryDeviceComplianceSettingStatesCollectionRequestBuilder struct{ BaseRequestBuilder }
  2549  
  2550  // Request returns request for DeviceComplianceSettingState collection
  2551  func (b *DeviceCompliancePolicySettingStateSummaryDeviceComplianceSettingStatesCollectionRequestBuilder) Request() *DeviceCompliancePolicySettingStateSummaryDeviceComplianceSettingStatesCollectionRequest {
  2552  	return &DeviceCompliancePolicySettingStateSummaryDeviceComplianceSettingStatesCollectionRequest{
  2553  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  2554  	}
  2555  }
  2556  
  2557  // ID returns request builder for DeviceComplianceSettingState item
  2558  func (b *DeviceCompliancePolicySettingStateSummaryDeviceComplianceSettingStatesCollectionRequestBuilder) ID(id string) *DeviceComplianceSettingStateRequestBuilder {
  2559  	bb := &DeviceComplianceSettingStateRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2560  	bb.baseURL += "/" + id
  2561  	return bb
  2562  }
  2563  
  2564  // DeviceCompliancePolicySettingStateSummaryDeviceComplianceSettingStatesCollectionRequest is request for DeviceComplianceSettingState collection
  2565  type DeviceCompliancePolicySettingStateSummaryDeviceComplianceSettingStatesCollectionRequest struct{ BaseRequest }
  2566  
  2567  // Paging perfoms paging operation for DeviceComplianceSettingState collection
  2568  func (r *DeviceCompliancePolicySettingStateSummaryDeviceComplianceSettingStatesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]DeviceComplianceSettingState, error) {
  2569  	req, err := r.NewJSONRequest(method, path, obj)
  2570  	if err != nil {
  2571  		return nil, err
  2572  	}
  2573  	if ctx != nil {
  2574  		req = req.WithContext(ctx)
  2575  	}
  2576  	res, err := r.client.Do(req)
  2577  	if err != nil {
  2578  		return nil, err
  2579  	}
  2580  	var values []DeviceComplianceSettingState
  2581  	for {
  2582  		if res.StatusCode != http.StatusOK {
  2583  			b, _ := ioutil.ReadAll(res.Body)
  2584  			res.Body.Close()
  2585  			errRes := &ErrorResponse{Response: res}
  2586  			err := jsonx.Unmarshal(b, errRes)
  2587  			if err != nil {
  2588  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  2589  			}
  2590  			return nil, errRes
  2591  		}
  2592  		var (
  2593  			paging Paging
  2594  			value  []DeviceComplianceSettingState
  2595  		)
  2596  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  2597  		res.Body.Close()
  2598  		if err != nil {
  2599  			return nil, err
  2600  		}
  2601  		err = jsonx.Unmarshal(paging.Value, &value)
  2602  		if err != nil {
  2603  			return nil, err
  2604  		}
  2605  		values = append(values, value...)
  2606  		if n >= 0 {
  2607  			n--
  2608  		}
  2609  		if n == 0 || len(paging.NextLink) == 0 {
  2610  			return values, nil
  2611  		}
  2612  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  2613  		if ctx != nil {
  2614  			req = req.WithContext(ctx)
  2615  		}
  2616  		res, err = r.client.Do(req)
  2617  		if err != nil {
  2618  			return nil, err
  2619  		}
  2620  	}
  2621  }
  2622  
  2623  // GetN performs GET request for DeviceComplianceSettingState collection, max N pages
  2624  func (r *DeviceCompliancePolicySettingStateSummaryDeviceComplianceSettingStatesCollectionRequest) GetN(ctx context.Context, n int) ([]DeviceComplianceSettingState, error) {
  2625  	var query string
  2626  	if r.query != nil {
  2627  		query = "?" + r.query.Encode()
  2628  	}
  2629  	return r.Paging(ctx, "GET", query, nil, n)
  2630  }
  2631  
  2632  // Get performs GET request for DeviceComplianceSettingState collection
  2633  func (r *DeviceCompliancePolicySettingStateSummaryDeviceComplianceSettingStatesCollectionRequest) Get(ctx context.Context) ([]DeviceComplianceSettingState, error) {
  2634  	return r.GetN(ctx, 0)
  2635  }
  2636  
  2637  // Add performs POST request for DeviceComplianceSettingState collection
  2638  func (r *DeviceCompliancePolicySettingStateSummaryDeviceComplianceSettingStatesCollectionRequest) Add(ctx context.Context, reqObj *DeviceComplianceSettingState) (resObj *DeviceComplianceSettingState, err error) {
  2639  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  2640  	return
  2641  }
  2642  
  2643  // ScheduledActionConfigurations returns request builder for DeviceComplianceActionItem collection
  2644  func (b *DeviceComplianceScheduledActionForRuleRequestBuilder) ScheduledActionConfigurations() *DeviceComplianceScheduledActionForRuleScheduledActionConfigurationsCollectionRequestBuilder {
  2645  	bb := &DeviceComplianceScheduledActionForRuleScheduledActionConfigurationsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2646  	bb.baseURL += "/scheduledActionConfigurations"
  2647  	return bb
  2648  }
  2649  
  2650  // DeviceComplianceScheduledActionForRuleScheduledActionConfigurationsCollectionRequestBuilder is request builder for DeviceComplianceActionItem collection
  2651  type DeviceComplianceScheduledActionForRuleScheduledActionConfigurationsCollectionRequestBuilder struct{ BaseRequestBuilder }
  2652  
  2653  // Request returns request for DeviceComplianceActionItem collection
  2654  func (b *DeviceComplianceScheduledActionForRuleScheduledActionConfigurationsCollectionRequestBuilder) Request() *DeviceComplianceScheduledActionForRuleScheduledActionConfigurationsCollectionRequest {
  2655  	return &DeviceComplianceScheduledActionForRuleScheduledActionConfigurationsCollectionRequest{
  2656  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  2657  	}
  2658  }
  2659  
  2660  // ID returns request builder for DeviceComplianceActionItem item
  2661  func (b *DeviceComplianceScheduledActionForRuleScheduledActionConfigurationsCollectionRequestBuilder) ID(id string) *DeviceComplianceActionItemRequestBuilder {
  2662  	bb := &DeviceComplianceActionItemRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2663  	bb.baseURL += "/" + id
  2664  	return bb
  2665  }
  2666  
  2667  // DeviceComplianceScheduledActionForRuleScheduledActionConfigurationsCollectionRequest is request for DeviceComplianceActionItem collection
  2668  type DeviceComplianceScheduledActionForRuleScheduledActionConfigurationsCollectionRequest struct{ BaseRequest }
  2669  
  2670  // Paging perfoms paging operation for DeviceComplianceActionItem collection
  2671  func (r *DeviceComplianceScheduledActionForRuleScheduledActionConfigurationsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]DeviceComplianceActionItem, error) {
  2672  	req, err := r.NewJSONRequest(method, path, obj)
  2673  	if err != nil {
  2674  		return nil, err
  2675  	}
  2676  	if ctx != nil {
  2677  		req = req.WithContext(ctx)
  2678  	}
  2679  	res, err := r.client.Do(req)
  2680  	if err != nil {
  2681  		return nil, err
  2682  	}
  2683  	var values []DeviceComplianceActionItem
  2684  	for {
  2685  		if res.StatusCode != http.StatusOK {
  2686  			b, _ := ioutil.ReadAll(res.Body)
  2687  			res.Body.Close()
  2688  			errRes := &ErrorResponse{Response: res}
  2689  			err := jsonx.Unmarshal(b, errRes)
  2690  			if err != nil {
  2691  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  2692  			}
  2693  			return nil, errRes
  2694  		}
  2695  		var (
  2696  			paging Paging
  2697  			value  []DeviceComplianceActionItem
  2698  		)
  2699  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  2700  		res.Body.Close()
  2701  		if err != nil {
  2702  			return nil, err
  2703  		}
  2704  		err = jsonx.Unmarshal(paging.Value, &value)
  2705  		if err != nil {
  2706  			return nil, err
  2707  		}
  2708  		values = append(values, value...)
  2709  		if n >= 0 {
  2710  			n--
  2711  		}
  2712  		if n == 0 || len(paging.NextLink) == 0 {
  2713  			return values, nil
  2714  		}
  2715  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  2716  		if ctx != nil {
  2717  			req = req.WithContext(ctx)
  2718  		}
  2719  		res, err = r.client.Do(req)
  2720  		if err != nil {
  2721  			return nil, err
  2722  		}
  2723  	}
  2724  }
  2725  
  2726  // GetN performs GET request for DeviceComplianceActionItem collection, max N pages
  2727  func (r *DeviceComplianceScheduledActionForRuleScheduledActionConfigurationsCollectionRequest) GetN(ctx context.Context, n int) ([]DeviceComplianceActionItem, error) {
  2728  	var query string
  2729  	if r.query != nil {
  2730  		query = "?" + r.query.Encode()
  2731  	}
  2732  	return r.Paging(ctx, "GET", query, nil, n)
  2733  }
  2734  
  2735  // Get performs GET request for DeviceComplianceActionItem collection
  2736  func (r *DeviceComplianceScheduledActionForRuleScheduledActionConfigurationsCollectionRequest) Get(ctx context.Context) ([]DeviceComplianceActionItem, error) {
  2737  	return r.GetN(ctx, 0)
  2738  }
  2739  
  2740  // Add performs POST request for DeviceComplianceActionItem collection
  2741  func (r *DeviceComplianceScheduledActionForRuleScheduledActionConfigurationsCollectionRequest) Add(ctx context.Context, reqObj *DeviceComplianceActionItem) (resObj *DeviceComplianceActionItem, err error) {
  2742  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  2743  	return
  2744  }
  2745  
  2746  // Assignments returns request builder for DeviceConfigurationAssignment collection
  2747  func (b *DeviceConfigurationRequestBuilder) Assignments() *DeviceConfigurationAssignmentsCollectionRequestBuilder {
  2748  	bb := &DeviceConfigurationAssignmentsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2749  	bb.baseURL += "/assignments"
  2750  	return bb
  2751  }
  2752  
  2753  // DeviceConfigurationAssignmentsCollectionRequestBuilder is request builder for DeviceConfigurationAssignment collection
  2754  type DeviceConfigurationAssignmentsCollectionRequestBuilder struct{ BaseRequestBuilder }
  2755  
  2756  // Request returns request for DeviceConfigurationAssignment collection
  2757  func (b *DeviceConfigurationAssignmentsCollectionRequestBuilder) Request() *DeviceConfigurationAssignmentsCollectionRequest {
  2758  	return &DeviceConfigurationAssignmentsCollectionRequest{
  2759  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  2760  	}
  2761  }
  2762  
  2763  // ID returns request builder for DeviceConfigurationAssignment item
  2764  func (b *DeviceConfigurationAssignmentsCollectionRequestBuilder) ID(id string) *DeviceConfigurationAssignmentRequestBuilder {
  2765  	bb := &DeviceConfigurationAssignmentRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2766  	bb.baseURL += "/" + id
  2767  	return bb
  2768  }
  2769  
  2770  // DeviceConfigurationAssignmentsCollectionRequest is request for DeviceConfigurationAssignment collection
  2771  type DeviceConfigurationAssignmentsCollectionRequest struct{ BaseRequest }
  2772  
  2773  // Paging perfoms paging operation for DeviceConfigurationAssignment collection
  2774  func (r *DeviceConfigurationAssignmentsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]DeviceConfigurationAssignment, error) {
  2775  	req, err := r.NewJSONRequest(method, path, obj)
  2776  	if err != nil {
  2777  		return nil, err
  2778  	}
  2779  	if ctx != nil {
  2780  		req = req.WithContext(ctx)
  2781  	}
  2782  	res, err := r.client.Do(req)
  2783  	if err != nil {
  2784  		return nil, err
  2785  	}
  2786  	var values []DeviceConfigurationAssignment
  2787  	for {
  2788  		if res.StatusCode != http.StatusOK {
  2789  			b, _ := ioutil.ReadAll(res.Body)
  2790  			res.Body.Close()
  2791  			errRes := &ErrorResponse{Response: res}
  2792  			err := jsonx.Unmarshal(b, errRes)
  2793  			if err != nil {
  2794  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  2795  			}
  2796  			return nil, errRes
  2797  		}
  2798  		var (
  2799  			paging Paging
  2800  			value  []DeviceConfigurationAssignment
  2801  		)
  2802  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  2803  		res.Body.Close()
  2804  		if err != nil {
  2805  			return nil, err
  2806  		}
  2807  		err = jsonx.Unmarshal(paging.Value, &value)
  2808  		if err != nil {
  2809  			return nil, err
  2810  		}
  2811  		values = append(values, value...)
  2812  		if n >= 0 {
  2813  			n--
  2814  		}
  2815  		if n == 0 || len(paging.NextLink) == 0 {
  2816  			return values, nil
  2817  		}
  2818  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  2819  		if ctx != nil {
  2820  			req = req.WithContext(ctx)
  2821  		}
  2822  		res, err = r.client.Do(req)
  2823  		if err != nil {
  2824  			return nil, err
  2825  		}
  2826  	}
  2827  }
  2828  
  2829  // GetN performs GET request for DeviceConfigurationAssignment collection, max N pages
  2830  func (r *DeviceConfigurationAssignmentsCollectionRequest) GetN(ctx context.Context, n int) ([]DeviceConfigurationAssignment, error) {
  2831  	var query string
  2832  	if r.query != nil {
  2833  		query = "?" + r.query.Encode()
  2834  	}
  2835  	return r.Paging(ctx, "GET", query, nil, n)
  2836  }
  2837  
  2838  // Get performs GET request for DeviceConfigurationAssignment collection
  2839  func (r *DeviceConfigurationAssignmentsCollectionRequest) Get(ctx context.Context) ([]DeviceConfigurationAssignment, error) {
  2840  	return r.GetN(ctx, 0)
  2841  }
  2842  
  2843  // Add performs POST request for DeviceConfigurationAssignment collection
  2844  func (r *DeviceConfigurationAssignmentsCollectionRequest) Add(ctx context.Context, reqObj *DeviceConfigurationAssignment) (resObj *DeviceConfigurationAssignment, err error) {
  2845  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  2846  	return
  2847  }
  2848  
  2849  // DeviceSettingStateSummaries returns request builder for SettingStateDeviceSummary collection
  2850  func (b *DeviceConfigurationRequestBuilder) DeviceSettingStateSummaries() *DeviceConfigurationDeviceSettingStateSummariesCollectionRequestBuilder {
  2851  	bb := &DeviceConfigurationDeviceSettingStateSummariesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2852  	bb.baseURL += "/deviceSettingStateSummaries"
  2853  	return bb
  2854  }
  2855  
  2856  // DeviceConfigurationDeviceSettingStateSummariesCollectionRequestBuilder is request builder for SettingStateDeviceSummary collection
  2857  type DeviceConfigurationDeviceSettingStateSummariesCollectionRequestBuilder struct{ BaseRequestBuilder }
  2858  
  2859  // Request returns request for SettingStateDeviceSummary collection
  2860  func (b *DeviceConfigurationDeviceSettingStateSummariesCollectionRequestBuilder) Request() *DeviceConfigurationDeviceSettingStateSummariesCollectionRequest {
  2861  	return &DeviceConfigurationDeviceSettingStateSummariesCollectionRequest{
  2862  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  2863  	}
  2864  }
  2865  
  2866  // ID returns request builder for SettingStateDeviceSummary item
  2867  func (b *DeviceConfigurationDeviceSettingStateSummariesCollectionRequestBuilder) ID(id string) *SettingStateDeviceSummaryRequestBuilder {
  2868  	bb := &SettingStateDeviceSummaryRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2869  	bb.baseURL += "/" + id
  2870  	return bb
  2871  }
  2872  
  2873  // DeviceConfigurationDeviceSettingStateSummariesCollectionRequest is request for SettingStateDeviceSummary collection
  2874  type DeviceConfigurationDeviceSettingStateSummariesCollectionRequest struct{ BaseRequest }
  2875  
  2876  // Paging perfoms paging operation for SettingStateDeviceSummary collection
  2877  func (r *DeviceConfigurationDeviceSettingStateSummariesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]SettingStateDeviceSummary, error) {
  2878  	req, err := r.NewJSONRequest(method, path, obj)
  2879  	if err != nil {
  2880  		return nil, err
  2881  	}
  2882  	if ctx != nil {
  2883  		req = req.WithContext(ctx)
  2884  	}
  2885  	res, err := r.client.Do(req)
  2886  	if err != nil {
  2887  		return nil, err
  2888  	}
  2889  	var values []SettingStateDeviceSummary
  2890  	for {
  2891  		if res.StatusCode != http.StatusOK {
  2892  			b, _ := ioutil.ReadAll(res.Body)
  2893  			res.Body.Close()
  2894  			errRes := &ErrorResponse{Response: res}
  2895  			err := jsonx.Unmarshal(b, errRes)
  2896  			if err != nil {
  2897  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  2898  			}
  2899  			return nil, errRes
  2900  		}
  2901  		var (
  2902  			paging Paging
  2903  			value  []SettingStateDeviceSummary
  2904  		)
  2905  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  2906  		res.Body.Close()
  2907  		if err != nil {
  2908  			return nil, err
  2909  		}
  2910  		err = jsonx.Unmarshal(paging.Value, &value)
  2911  		if err != nil {
  2912  			return nil, err
  2913  		}
  2914  		values = append(values, value...)
  2915  		if n >= 0 {
  2916  			n--
  2917  		}
  2918  		if n == 0 || len(paging.NextLink) == 0 {
  2919  			return values, nil
  2920  		}
  2921  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  2922  		if ctx != nil {
  2923  			req = req.WithContext(ctx)
  2924  		}
  2925  		res, err = r.client.Do(req)
  2926  		if err != nil {
  2927  			return nil, err
  2928  		}
  2929  	}
  2930  }
  2931  
  2932  // GetN performs GET request for SettingStateDeviceSummary collection, max N pages
  2933  func (r *DeviceConfigurationDeviceSettingStateSummariesCollectionRequest) GetN(ctx context.Context, n int) ([]SettingStateDeviceSummary, error) {
  2934  	var query string
  2935  	if r.query != nil {
  2936  		query = "?" + r.query.Encode()
  2937  	}
  2938  	return r.Paging(ctx, "GET", query, nil, n)
  2939  }
  2940  
  2941  // Get performs GET request for SettingStateDeviceSummary collection
  2942  func (r *DeviceConfigurationDeviceSettingStateSummariesCollectionRequest) Get(ctx context.Context) ([]SettingStateDeviceSummary, error) {
  2943  	return r.GetN(ctx, 0)
  2944  }
  2945  
  2946  // Add performs POST request for SettingStateDeviceSummary collection
  2947  func (r *DeviceConfigurationDeviceSettingStateSummariesCollectionRequest) Add(ctx context.Context, reqObj *SettingStateDeviceSummary) (resObj *SettingStateDeviceSummary, err error) {
  2948  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  2949  	return
  2950  }
  2951  
  2952  // DeviceStatusOverview is navigation property
  2953  func (b *DeviceConfigurationRequestBuilder) DeviceStatusOverview() *DeviceConfigurationDeviceOverviewRequestBuilder {
  2954  	bb := &DeviceConfigurationDeviceOverviewRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2955  	bb.baseURL += "/deviceStatusOverview"
  2956  	return bb
  2957  }
  2958  
  2959  // DeviceStatuses returns request builder for DeviceConfigurationDeviceStatus collection
  2960  func (b *DeviceConfigurationRequestBuilder) DeviceStatuses() *DeviceConfigurationDeviceStatusesCollectionRequestBuilder {
  2961  	bb := &DeviceConfigurationDeviceStatusesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2962  	bb.baseURL += "/deviceStatuses"
  2963  	return bb
  2964  }
  2965  
  2966  // DeviceConfigurationDeviceStatusesCollectionRequestBuilder is request builder for DeviceConfigurationDeviceStatus collection
  2967  type DeviceConfigurationDeviceStatusesCollectionRequestBuilder struct{ BaseRequestBuilder }
  2968  
  2969  // Request returns request for DeviceConfigurationDeviceStatus collection
  2970  func (b *DeviceConfigurationDeviceStatusesCollectionRequestBuilder) Request() *DeviceConfigurationDeviceStatusesCollectionRequest {
  2971  	return &DeviceConfigurationDeviceStatusesCollectionRequest{
  2972  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  2973  	}
  2974  }
  2975  
  2976  // ID returns request builder for DeviceConfigurationDeviceStatus item
  2977  func (b *DeviceConfigurationDeviceStatusesCollectionRequestBuilder) ID(id string) *DeviceConfigurationDeviceStatusRequestBuilder {
  2978  	bb := &DeviceConfigurationDeviceStatusRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  2979  	bb.baseURL += "/" + id
  2980  	return bb
  2981  }
  2982  
  2983  // DeviceConfigurationDeviceStatusesCollectionRequest is request for DeviceConfigurationDeviceStatus collection
  2984  type DeviceConfigurationDeviceStatusesCollectionRequest struct{ BaseRequest }
  2985  
  2986  // Paging perfoms paging operation for DeviceConfigurationDeviceStatus collection
  2987  func (r *DeviceConfigurationDeviceStatusesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]DeviceConfigurationDeviceStatus, error) {
  2988  	req, err := r.NewJSONRequest(method, path, obj)
  2989  	if err != nil {
  2990  		return nil, err
  2991  	}
  2992  	if ctx != nil {
  2993  		req = req.WithContext(ctx)
  2994  	}
  2995  	res, err := r.client.Do(req)
  2996  	if err != nil {
  2997  		return nil, err
  2998  	}
  2999  	var values []DeviceConfigurationDeviceStatus
  3000  	for {
  3001  		if res.StatusCode != http.StatusOK {
  3002  			b, _ := ioutil.ReadAll(res.Body)
  3003  			res.Body.Close()
  3004  			errRes := &ErrorResponse{Response: res}
  3005  			err := jsonx.Unmarshal(b, errRes)
  3006  			if err != nil {
  3007  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  3008  			}
  3009  			return nil, errRes
  3010  		}
  3011  		var (
  3012  			paging Paging
  3013  			value  []DeviceConfigurationDeviceStatus
  3014  		)
  3015  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  3016  		res.Body.Close()
  3017  		if err != nil {
  3018  			return nil, err
  3019  		}
  3020  		err = jsonx.Unmarshal(paging.Value, &value)
  3021  		if err != nil {
  3022  			return nil, err
  3023  		}
  3024  		values = append(values, value...)
  3025  		if n >= 0 {
  3026  			n--
  3027  		}
  3028  		if n == 0 || len(paging.NextLink) == 0 {
  3029  			return values, nil
  3030  		}
  3031  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  3032  		if ctx != nil {
  3033  			req = req.WithContext(ctx)
  3034  		}
  3035  		res, err = r.client.Do(req)
  3036  		if err != nil {
  3037  			return nil, err
  3038  		}
  3039  	}
  3040  }
  3041  
  3042  // GetN performs GET request for DeviceConfigurationDeviceStatus collection, max N pages
  3043  func (r *DeviceConfigurationDeviceStatusesCollectionRequest) GetN(ctx context.Context, n int) ([]DeviceConfigurationDeviceStatus, error) {
  3044  	var query string
  3045  	if r.query != nil {
  3046  		query = "?" + r.query.Encode()
  3047  	}
  3048  	return r.Paging(ctx, "GET", query, nil, n)
  3049  }
  3050  
  3051  // Get performs GET request for DeviceConfigurationDeviceStatus collection
  3052  func (r *DeviceConfigurationDeviceStatusesCollectionRequest) Get(ctx context.Context) ([]DeviceConfigurationDeviceStatus, error) {
  3053  	return r.GetN(ctx, 0)
  3054  }
  3055  
  3056  // Add performs POST request for DeviceConfigurationDeviceStatus collection
  3057  func (r *DeviceConfigurationDeviceStatusesCollectionRequest) Add(ctx context.Context, reqObj *DeviceConfigurationDeviceStatus) (resObj *DeviceConfigurationDeviceStatus, err error) {
  3058  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  3059  	return
  3060  }
  3061  
  3062  // UserStatusOverview is navigation property
  3063  func (b *DeviceConfigurationRequestBuilder) UserStatusOverview() *DeviceConfigurationUserOverviewRequestBuilder {
  3064  	bb := &DeviceConfigurationUserOverviewRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  3065  	bb.baseURL += "/userStatusOverview"
  3066  	return bb
  3067  }
  3068  
  3069  // UserStatuses returns request builder for DeviceConfigurationUserStatus collection
  3070  func (b *DeviceConfigurationRequestBuilder) UserStatuses() *DeviceConfigurationUserStatusesCollectionRequestBuilder {
  3071  	bb := &DeviceConfigurationUserStatusesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  3072  	bb.baseURL += "/userStatuses"
  3073  	return bb
  3074  }
  3075  
  3076  // DeviceConfigurationUserStatusesCollectionRequestBuilder is request builder for DeviceConfigurationUserStatus collection
  3077  type DeviceConfigurationUserStatusesCollectionRequestBuilder struct{ BaseRequestBuilder }
  3078  
  3079  // Request returns request for DeviceConfigurationUserStatus collection
  3080  func (b *DeviceConfigurationUserStatusesCollectionRequestBuilder) Request() *DeviceConfigurationUserStatusesCollectionRequest {
  3081  	return &DeviceConfigurationUserStatusesCollectionRequest{
  3082  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  3083  	}
  3084  }
  3085  
  3086  // ID returns request builder for DeviceConfigurationUserStatus item
  3087  func (b *DeviceConfigurationUserStatusesCollectionRequestBuilder) ID(id string) *DeviceConfigurationUserStatusRequestBuilder {
  3088  	bb := &DeviceConfigurationUserStatusRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  3089  	bb.baseURL += "/" + id
  3090  	return bb
  3091  }
  3092  
  3093  // DeviceConfigurationUserStatusesCollectionRequest is request for DeviceConfigurationUserStatus collection
  3094  type DeviceConfigurationUserStatusesCollectionRequest struct{ BaseRequest }
  3095  
  3096  // Paging perfoms paging operation for DeviceConfigurationUserStatus collection
  3097  func (r *DeviceConfigurationUserStatusesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]DeviceConfigurationUserStatus, error) {
  3098  	req, err := r.NewJSONRequest(method, path, obj)
  3099  	if err != nil {
  3100  		return nil, err
  3101  	}
  3102  	if ctx != nil {
  3103  		req = req.WithContext(ctx)
  3104  	}
  3105  	res, err := r.client.Do(req)
  3106  	if err != nil {
  3107  		return nil, err
  3108  	}
  3109  	var values []DeviceConfigurationUserStatus
  3110  	for {
  3111  		if res.StatusCode != http.StatusOK {
  3112  			b, _ := ioutil.ReadAll(res.Body)
  3113  			res.Body.Close()
  3114  			errRes := &ErrorResponse{Response: res}
  3115  			err := jsonx.Unmarshal(b, errRes)
  3116  			if err != nil {
  3117  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  3118  			}
  3119  			return nil, errRes
  3120  		}
  3121  		var (
  3122  			paging Paging
  3123  			value  []DeviceConfigurationUserStatus
  3124  		)
  3125  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  3126  		res.Body.Close()
  3127  		if err != nil {
  3128  			return nil, err
  3129  		}
  3130  		err = jsonx.Unmarshal(paging.Value, &value)
  3131  		if err != nil {
  3132  			return nil, err
  3133  		}
  3134  		values = append(values, value...)
  3135  		if n >= 0 {
  3136  			n--
  3137  		}
  3138  		if n == 0 || len(paging.NextLink) == 0 {
  3139  			return values, nil
  3140  		}
  3141  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  3142  		if ctx != nil {
  3143  			req = req.WithContext(ctx)
  3144  		}
  3145  		res, err = r.client.Do(req)
  3146  		if err != nil {
  3147  			return nil, err
  3148  		}
  3149  	}
  3150  }
  3151  
  3152  // GetN performs GET request for DeviceConfigurationUserStatus collection, max N pages
  3153  func (r *DeviceConfigurationUserStatusesCollectionRequest) GetN(ctx context.Context, n int) ([]DeviceConfigurationUserStatus, error) {
  3154  	var query string
  3155  	if r.query != nil {
  3156  		query = "?" + r.query.Encode()
  3157  	}
  3158  	return r.Paging(ctx, "GET", query, nil, n)
  3159  }
  3160  
  3161  // Get performs GET request for DeviceConfigurationUserStatus collection
  3162  func (r *DeviceConfigurationUserStatusesCollectionRequest) Get(ctx context.Context) ([]DeviceConfigurationUserStatus, error) {
  3163  	return r.GetN(ctx, 0)
  3164  }
  3165  
  3166  // Add performs POST request for DeviceConfigurationUserStatus collection
  3167  func (r *DeviceConfigurationUserStatusesCollectionRequest) Add(ctx context.Context, reqObj *DeviceConfigurationUserStatus) (resObj *DeviceConfigurationUserStatus, err error) {
  3168  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  3169  	return
  3170  }
  3171  
  3172  // Assignments returns request builder for EnrollmentConfigurationAssignment collection
  3173  func (b *DeviceEnrollmentConfigurationRequestBuilder) Assignments() *DeviceEnrollmentConfigurationAssignmentsCollectionRequestBuilder {
  3174  	bb := &DeviceEnrollmentConfigurationAssignmentsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  3175  	bb.baseURL += "/assignments"
  3176  	return bb
  3177  }
  3178  
  3179  // DeviceEnrollmentConfigurationAssignmentsCollectionRequestBuilder is request builder for EnrollmentConfigurationAssignment collection
  3180  type DeviceEnrollmentConfigurationAssignmentsCollectionRequestBuilder struct{ BaseRequestBuilder }
  3181  
  3182  // Request returns request for EnrollmentConfigurationAssignment collection
  3183  func (b *DeviceEnrollmentConfigurationAssignmentsCollectionRequestBuilder) Request() *DeviceEnrollmentConfigurationAssignmentsCollectionRequest {
  3184  	return &DeviceEnrollmentConfigurationAssignmentsCollectionRequest{
  3185  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  3186  	}
  3187  }
  3188  
  3189  // ID returns request builder for EnrollmentConfigurationAssignment item
  3190  func (b *DeviceEnrollmentConfigurationAssignmentsCollectionRequestBuilder) ID(id string) *EnrollmentConfigurationAssignmentRequestBuilder {
  3191  	bb := &EnrollmentConfigurationAssignmentRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  3192  	bb.baseURL += "/" + id
  3193  	return bb
  3194  }
  3195  
  3196  // DeviceEnrollmentConfigurationAssignmentsCollectionRequest is request for EnrollmentConfigurationAssignment collection
  3197  type DeviceEnrollmentConfigurationAssignmentsCollectionRequest struct{ BaseRequest }
  3198  
  3199  // Paging perfoms paging operation for EnrollmentConfigurationAssignment collection
  3200  func (r *DeviceEnrollmentConfigurationAssignmentsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]EnrollmentConfigurationAssignment, error) {
  3201  	req, err := r.NewJSONRequest(method, path, obj)
  3202  	if err != nil {
  3203  		return nil, err
  3204  	}
  3205  	if ctx != nil {
  3206  		req = req.WithContext(ctx)
  3207  	}
  3208  	res, err := r.client.Do(req)
  3209  	if err != nil {
  3210  		return nil, err
  3211  	}
  3212  	var values []EnrollmentConfigurationAssignment
  3213  	for {
  3214  		if res.StatusCode != http.StatusOK {
  3215  			b, _ := ioutil.ReadAll(res.Body)
  3216  			res.Body.Close()
  3217  			errRes := &ErrorResponse{Response: res}
  3218  			err := jsonx.Unmarshal(b, errRes)
  3219  			if err != nil {
  3220  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  3221  			}
  3222  			return nil, errRes
  3223  		}
  3224  		var (
  3225  			paging Paging
  3226  			value  []EnrollmentConfigurationAssignment
  3227  		)
  3228  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  3229  		res.Body.Close()
  3230  		if err != nil {
  3231  			return nil, err
  3232  		}
  3233  		err = jsonx.Unmarshal(paging.Value, &value)
  3234  		if err != nil {
  3235  			return nil, err
  3236  		}
  3237  		values = append(values, value...)
  3238  		if n >= 0 {
  3239  			n--
  3240  		}
  3241  		if n == 0 || len(paging.NextLink) == 0 {
  3242  			return values, nil
  3243  		}
  3244  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  3245  		if ctx != nil {
  3246  			req = req.WithContext(ctx)
  3247  		}
  3248  		res, err = r.client.Do(req)
  3249  		if err != nil {
  3250  			return nil, err
  3251  		}
  3252  	}
  3253  }
  3254  
  3255  // GetN performs GET request for EnrollmentConfigurationAssignment collection, max N pages
  3256  func (r *DeviceEnrollmentConfigurationAssignmentsCollectionRequest) GetN(ctx context.Context, n int) ([]EnrollmentConfigurationAssignment, error) {
  3257  	var query string
  3258  	if r.query != nil {
  3259  		query = "?" + r.query.Encode()
  3260  	}
  3261  	return r.Paging(ctx, "GET", query, nil, n)
  3262  }
  3263  
  3264  // Get performs GET request for EnrollmentConfigurationAssignment collection
  3265  func (r *DeviceEnrollmentConfigurationAssignmentsCollectionRequest) Get(ctx context.Context) ([]EnrollmentConfigurationAssignment, error) {
  3266  	return r.GetN(ctx, 0)
  3267  }
  3268  
  3269  // Add performs POST request for EnrollmentConfigurationAssignment collection
  3270  func (r *DeviceEnrollmentConfigurationAssignmentsCollectionRequest) Add(ctx context.Context, reqObj *EnrollmentConfigurationAssignment) (resObj *EnrollmentConfigurationAssignment, err error) {
  3271  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  3272  	return
  3273  }
  3274  
  3275  // ApplePushNotificationCertificate is navigation property
  3276  func (b *DeviceManagementRequestBuilder) ApplePushNotificationCertificate() *ApplePushNotificationCertificateRequestBuilder {
  3277  	bb := &ApplePushNotificationCertificateRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  3278  	bb.baseURL += "/applePushNotificationCertificate"
  3279  	return bb
  3280  }
  3281  
  3282  // ConditionalAccessSettings is navigation property
  3283  func (b *DeviceManagementRequestBuilder) ConditionalAccessSettings() *OnPremisesConditionalAccessSettingsRequestBuilder {
  3284  	bb := &OnPremisesConditionalAccessSettingsRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  3285  	bb.baseURL += "/conditionalAccessSettings"
  3286  	return bb
  3287  }
  3288  
  3289  // DetectedApps returns request builder for DetectedApp collection
  3290  func (b *DeviceManagementRequestBuilder) DetectedApps() *DeviceManagementDetectedAppsCollectionRequestBuilder {
  3291  	bb := &DeviceManagementDetectedAppsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  3292  	bb.baseURL += "/detectedApps"
  3293  	return bb
  3294  }
  3295  
  3296  // DeviceManagementDetectedAppsCollectionRequestBuilder is request builder for DetectedApp collection
  3297  type DeviceManagementDetectedAppsCollectionRequestBuilder struct{ BaseRequestBuilder }
  3298  
  3299  // Request returns request for DetectedApp collection
  3300  func (b *DeviceManagementDetectedAppsCollectionRequestBuilder) Request() *DeviceManagementDetectedAppsCollectionRequest {
  3301  	return &DeviceManagementDetectedAppsCollectionRequest{
  3302  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  3303  	}
  3304  }
  3305  
  3306  // ID returns request builder for DetectedApp item
  3307  func (b *DeviceManagementDetectedAppsCollectionRequestBuilder) ID(id string) *DetectedAppRequestBuilder {
  3308  	bb := &DetectedAppRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  3309  	bb.baseURL += "/" + id
  3310  	return bb
  3311  }
  3312  
  3313  // DeviceManagementDetectedAppsCollectionRequest is request for DetectedApp collection
  3314  type DeviceManagementDetectedAppsCollectionRequest struct{ BaseRequest }
  3315  
  3316  // Paging perfoms paging operation for DetectedApp collection
  3317  func (r *DeviceManagementDetectedAppsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]DetectedApp, error) {
  3318  	req, err := r.NewJSONRequest(method, path, obj)
  3319  	if err != nil {
  3320  		return nil, err
  3321  	}
  3322  	if ctx != nil {
  3323  		req = req.WithContext(ctx)
  3324  	}
  3325  	res, err := r.client.Do(req)
  3326  	if err != nil {
  3327  		return nil, err
  3328  	}
  3329  	var values []DetectedApp
  3330  	for {
  3331  		if res.StatusCode != http.StatusOK {
  3332  			b, _ := ioutil.ReadAll(res.Body)
  3333  			res.Body.Close()
  3334  			errRes := &ErrorResponse{Response: res}
  3335  			err := jsonx.Unmarshal(b, errRes)
  3336  			if err != nil {
  3337  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  3338  			}
  3339  			return nil, errRes
  3340  		}
  3341  		var (
  3342  			paging Paging
  3343  			value  []DetectedApp
  3344  		)
  3345  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  3346  		res.Body.Close()
  3347  		if err != nil {
  3348  			return nil, err
  3349  		}
  3350  		err = jsonx.Unmarshal(paging.Value, &value)
  3351  		if err != nil {
  3352  			return nil, err
  3353  		}
  3354  		values = append(values, value...)
  3355  		if n >= 0 {
  3356  			n--
  3357  		}
  3358  		if n == 0 || len(paging.NextLink) == 0 {
  3359  			return values, nil
  3360  		}
  3361  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  3362  		if ctx != nil {
  3363  			req = req.WithContext(ctx)
  3364  		}
  3365  		res, err = r.client.Do(req)
  3366  		if err != nil {
  3367  			return nil, err
  3368  		}
  3369  	}
  3370  }
  3371  
  3372  // GetN performs GET request for DetectedApp collection, max N pages
  3373  func (r *DeviceManagementDetectedAppsCollectionRequest) GetN(ctx context.Context, n int) ([]DetectedApp, error) {
  3374  	var query string
  3375  	if r.query != nil {
  3376  		query = "?" + r.query.Encode()
  3377  	}
  3378  	return r.Paging(ctx, "GET", query, nil, n)
  3379  }
  3380  
  3381  // Get performs GET request for DetectedApp collection
  3382  func (r *DeviceManagementDetectedAppsCollectionRequest) Get(ctx context.Context) ([]DetectedApp, error) {
  3383  	return r.GetN(ctx, 0)
  3384  }
  3385  
  3386  // Add performs POST request for DetectedApp collection
  3387  func (r *DeviceManagementDetectedAppsCollectionRequest) Add(ctx context.Context, reqObj *DetectedApp) (resObj *DetectedApp, err error) {
  3388  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  3389  	return
  3390  }
  3391  
  3392  // DeviceCategories returns request builder for DeviceCategory collection
  3393  func (b *DeviceManagementRequestBuilder) DeviceCategories() *DeviceManagementDeviceCategoriesCollectionRequestBuilder {
  3394  	bb := &DeviceManagementDeviceCategoriesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  3395  	bb.baseURL += "/deviceCategories"
  3396  	return bb
  3397  }
  3398  
  3399  // DeviceManagementDeviceCategoriesCollectionRequestBuilder is request builder for DeviceCategory collection
  3400  type DeviceManagementDeviceCategoriesCollectionRequestBuilder struct{ BaseRequestBuilder }
  3401  
  3402  // Request returns request for DeviceCategory collection
  3403  func (b *DeviceManagementDeviceCategoriesCollectionRequestBuilder) Request() *DeviceManagementDeviceCategoriesCollectionRequest {
  3404  	return &DeviceManagementDeviceCategoriesCollectionRequest{
  3405  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  3406  	}
  3407  }
  3408  
  3409  // ID returns request builder for DeviceCategory item
  3410  func (b *DeviceManagementDeviceCategoriesCollectionRequestBuilder) ID(id string) *DeviceCategoryRequestBuilder {
  3411  	bb := &DeviceCategoryRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  3412  	bb.baseURL += "/" + id
  3413  	return bb
  3414  }
  3415  
  3416  // DeviceManagementDeviceCategoriesCollectionRequest is request for DeviceCategory collection
  3417  type DeviceManagementDeviceCategoriesCollectionRequest struct{ BaseRequest }
  3418  
  3419  // Paging perfoms paging operation for DeviceCategory collection
  3420  func (r *DeviceManagementDeviceCategoriesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]DeviceCategory, error) {
  3421  	req, err := r.NewJSONRequest(method, path, obj)
  3422  	if err != nil {
  3423  		return nil, err
  3424  	}
  3425  	if ctx != nil {
  3426  		req = req.WithContext(ctx)
  3427  	}
  3428  	res, err := r.client.Do(req)
  3429  	if err != nil {
  3430  		return nil, err
  3431  	}
  3432  	var values []DeviceCategory
  3433  	for {
  3434  		if res.StatusCode != http.StatusOK {
  3435  			b, _ := ioutil.ReadAll(res.Body)
  3436  			res.Body.Close()
  3437  			errRes := &ErrorResponse{Response: res}
  3438  			err := jsonx.Unmarshal(b, errRes)
  3439  			if err != nil {
  3440  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  3441  			}
  3442  			return nil, errRes
  3443  		}
  3444  		var (
  3445  			paging Paging
  3446  			value  []DeviceCategory
  3447  		)
  3448  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  3449  		res.Body.Close()
  3450  		if err != nil {
  3451  			return nil, err
  3452  		}
  3453  		err = jsonx.Unmarshal(paging.Value, &value)
  3454  		if err != nil {
  3455  			return nil, err
  3456  		}
  3457  		values = append(values, value...)
  3458  		if n >= 0 {
  3459  			n--
  3460  		}
  3461  		if n == 0 || len(paging.NextLink) == 0 {
  3462  			return values, nil
  3463  		}
  3464  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  3465  		if ctx != nil {
  3466  			req = req.WithContext(ctx)
  3467  		}
  3468  		res, err = r.client.Do(req)
  3469  		if err != nil {
  3470  			return nil, err
  3471  		}
  3472  	}
  3473  }
  3474  
  3475  // GetN performs GET request for DeviceCategory collection, max N pages
  3476  func (r *DeviceManagementDeviceCategoriesCollectionRequest) GetN(ctx context.Context, n int) ([]DeviceCategory, error) {
  3477  	var query string
  3478  	if r.query != nil {
  3479  		query = "?" + r.query.Encode()
  3480  	}
  3481  	return r.Paging(ctx, "GET", query, nil, n)
  3482  }
  3483  
  3484  // Get performs GET request for DeviceCategory collection
  3485  func (r *DeviceManagementDeviceCategoriesCollectionRequest) Get(ctx context.Context) ([]DeviceCategory, error) {
  3486  	return r.GetN(ctx, 0)
  3487  }
  3488  
  3489  // Add performs POST request for DeviceCategory collection
  3490  func (r *DeviceManagementDeviceCategoriesCollectionRequest) Add(ctx context.Context, reqObj *DeviceCategory) (resObj *DeviceCategory, err error) {
  3491  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  3492  	return
  3493  }
  3494  
  3495  // DeviceCompliancePolicies returns request builder for DeviceCompliancePolicy collection
  3496  func (b *DeviceManagementRequestBuilder) DeviceCompliancePolicies() *DeviceManagementDeviceCompliancePoliciesCollectionRequestBuilder {
  3497  	bb := &DeviceManagementDeviceCompliancePoliciesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  3498  	bb.baseURL += "/deviceCompliancePolicies"
  3499  	return bb
  3500  }
  3501  
  3502  // DeviceManagementDeviceCompliancePoliciesCollectionRequestBuilder is request builder for DeviceCompliancePolicy collection
  3503  type DeviceManagementDeviceCompliancePoliciesCollectionRequestBuilder struct{ BaseRequestBuilder }
  3504  
  3505  // Request returns request for DeviceCompliancePolicy collection
  3506  func (b *DeviceManagementDeviceCompliancePoliciesCollectionRequestBuilder) Request() *DeviceManagementDeviceCompliancePoliciesCollectionRequest {
  3507  	return &DeviceManagementDeviceCompliancePoliciesCollectionRequest{
  3508  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  3509  	}
  3510  }
  3511  
  3512  // ID returns request builder for DeviceCompliancePolicy item
  3513  func (b *DeviceManagementDeviceCompliancePoliciesCollectionRequestBuilder) ID(id string) *DeviceCompliancePolicyRequestBuilder {
  3514  	bb := &DeviceCompliancePolicyRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  3515  	bb.baseURL += "/" + id
  3516  	return bb
  3517  }
  3518  
  3519  // DeviceManagementDeviceCompliancePoliciesCollectionRequest is request for DeviceCompliancePolicy collection
  3520  type DeviceManagementDeviceCompliancePoliciesCollectionRequest struct{ BaseRequest }
  3521  
  3522  // Paging perfoms paging operation for DeviceCompliancePolicy collection
  3523  func (r *DeviceManagementDeviceCompliancePoliciesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]DeviceCompliancePolicy, error) {
  3524  	req, err := r.NewJSONRequest(method, path, obj)
  3525  	if err != nil {
  3526  		return nil, err
  3527  	}
  3528  	if ctx != nil {
  3529  		req = req.WithContext(ctx)
  3530  	}
  3531  	res, err := r.client.Do(req)
  3532  	if err != nil {
  3533  		return nil, err
  3534  	}
  3535  	var values []DeviceCompliancePolicy
  3536  	for {
  3537  		if res.StatusCode != http.StatusOK {
  3538  			b, _ := ioutil.ReadAll(res.Body)
  3539  			res.Body.Close()
  3540  			errRes := &ErrorResponse{Response: res}
  3541  			err := jsonx.Unmarshal(b, errRes)
  3542  			if err != nil {
  3543  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  3544  			}
  3545  			return nil, errRes
  3546  		}
  3547  		var (
  3548  			paging Paging
  3549  			value  []DeviceCompliancePolicy
  3550  		)
  3551  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  3552  		res.Body.Close()
  3553  		if err != nil {
  3554  			return nil, err
  3555  		}
  3556  		err = jsonx.Unmarshal(paging.Value, &value)
  3557  		if err != nil {
  3558  			return nil, err
  3559  		}
  3560  		values = append(values, value...)
  3561  		if n >= 0 {
  3562  			n--
  3563  		}
  3564  		if n == 0 || len(paging.NextLink) == 0 {
  3565  			return values, nil
  3566  		}
  3567  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  3568  		if ctx != nil {
  3569  			req = req.WithContext(ctx)
  3570  		}
  3571  		res, err = r.client.Do(req)
  3572  		if err != nil {
  3573  			return nil, err
  3574  		}
  3575  	}
  3576  }
  3577  
  3578  // GetN performs GET request for DeviceCompliancePolicy collection, max N pages
  3579  func (r *DeviceManagementDeviceCompliancePoliciesCollectionRequest) GetN(ctx context.Context, n int) ([]DeviceCompliancePolicy, error) {
  3580  	var query string
  3581  	if r.query != nil {
  3582  		query = "?" + r.query.Encode()
  3583  	}
  3584  	return r.Paging(ctx, "GET", query, nil, n)
  3585  }
  3586  
  3587  // Get performs GET request for DeviceCompliancePolicy collection
  3588  func (r *DeviceManagementDeviceCompliancePoliciesCollectionRequest) Get(ctx context.Context) ([]DeviceCompliancePolicy, error) {
  3589  	return r.GetN(ctx, 0)
  3590  }
  3591  
  3592  // Add performs POST request for DeviceCompliancePolicy collection
  3593  func (r *DeviceManagementDeviceCompliancePoliciesCollectionRequest) Add(ctx context.Context, reqObj *DeviceCompliancePolicy) (resObj *DeviceCompliancePolicy, err error) {
  3594  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  3595  	return
  3596  }
  3597  
  3598  // DeviceCompliancePolicyDeviceStateSummary is navigation property
  3599  func (b *DeviceManagementRequestBuilder) DeviceCompliancePolicyDeviceStateSummary() *DeviceCompliancePolicyDeviceStateSummaryRequestBuilder {
  3600  	bb := &DeviceCompliancePolicyDeviceStateSummaryRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  3601  	bb.baseURL += "/deviceCompliancePolicyDeviceStateSummary"
  3602  	return bb
  3603  }
  3604  
  3605  // DeviceCompliancePolicySettingStateSummaries returns request builder for DeviceCompliancePolicySettingStateSummary collection
  3606  func (b *DeviceManagementRequestBuilder) DeviceCompliancePolicySettingStateSummaries() *DeviceManagementDeviceCompliancePolicySettingStateSummariesCollectionRequestBuilder {
  3607  	bb := &DeviceManagementDeviceCompliancePolicySettingStateSummariesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  3608  	bb.baseURL += "/deviceCompliancePolicySettingStateSummaries"
  3609  	return bb
  3610  }
  3611  
  3612  // DeviceManagementDeviceCompliancePolicySettingStateSummariesCollectionRequestBuilder is request builder for DeviceCompliancePolicySettingStateSummary collection
  3613  type DeviceManagementDeviceCompliancePolicySettingStateSummariesCollectionRequestBuilder struct{ BaseRequestBuilder }
  3614  
  3615  // Request returns request for DeviceCompliancePolicySettingStateSummary collection
  3616  func (b *DeviceManagementDeviceCompliancePolicySettingStateSummariesCollectionRequestBuilder) Request() *DeviceManagementDeviceCompliancePolicySettingStateSummariesCollectionRequest {
  3617  	return &DeviceManagementDeviceCompliancePolicySettingStateSummariesCollectionRequest{
  3618  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  3619  	}
  3620  }
  3621  
  3622  // ID returns request builder for DeviceCompliancePolicySettingStateSummary item
  3623  func (b *DeviceManagementDeviceCompliancePolicySettingStateSummariesCollectionRequestBuilder) ID(id string) *DeviceCompliancePolicySettingStateSummaryRequestBuilder {
  3624  	bb := &DeviceCompliancePolicySettingStateSummaryRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  3625  	bb.baseURL += "/" + id
  3626  	return bb
  3627  }
  3628  
  3629  // DeviceManagementDeviceCompliancePolicySettingStateSummariesCollectionRequest is request for DeviceCompliancePolicySettingStateSummary collection
  3630  type DeviceManagementDeviceCompliancePolicySettingStateSummariesCollectionRequest struct{ BaseRequest }
  3631  
  3632  // Paging perfoms paging operation for DeviceCompliancePolicySettingStateSummary collection
  3633  func (r *DeviceManagementDeviceCompliancePolicySettingStateSummariesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]DeviceCompliancePolicySettingStateSummary, error) {
  3634  	req, err := r.NewJSONRequest(method, path, obj)
  3635  	if err != nil {
  3636  		return nil, err
  3637  	}
  3638  	if ctx != nil {
  3639  		req = req.WithContext(ctx)
  3640  	}
  3641  	res, err := r.client.Do(req)
  3642  	if err != nil {
  3643  		return nil, err
  3644  	}
  3645  	var values []DeviceCompliancePolicySettingStateSummary
  3646  	for {
  3647  		if res.StatusCode != http.StatusOK {
  3648  			b, _ := ioutil.ReadAll(res.Body)
  3649  			res.Body.Close()
  3650  			errRes := &ErrorResponse{Response: res}
  3651  			err := jsonx.Unmarshal(b, errRes)
  3652  			if err != nil {
  3653  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  3654  			}
  3655  			return nil, errRes
  3656  		}
  3657  		var (
  3658  			paging Paging
  3659  			value  []DeviceCompliancePolicySettingStateSummary
  3660  		)
  3661  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  3662  		res.Body.Close()
  3663  		if err != nil {
  3664  			return nil, err
  3665  		}
  3666  		err = jsonx.Unmarshal(paging.Value, &value)
  3667  		if err != nil {
  3668  			return nil, err
  3669  		}
  3670  		values = append(values, value...)
  3671  		if n >= 0 {
  3672  			n--
  3673  		}
  3674  		if n == 0 || len(paging.NextLink) == 0 {
  3675  			return values, nil
  3676  		}
  3677  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  3678  		if ctx != nil {
  3679  			req = req.WithContext(ctx)
  3680  		}
  3681  		res, err = r.client.Do(req)
  3682  		if err != nil {
  3683  			return nil, err
  3684  		}
  3685  	}
  3686  }
  3687  
  3688  // GetN performs GET request for DeviceCompliancePolicySettingStateSummary collection, max N pages
  3689  func (r *DeviceManagementDeviceCompliancePolicySettingStateSummariesCollectionRequest) GetN(ctx context.Context, n int) ([]DeviceCompliancePolicySettingStateSummary, error) {
  3690  	var query string
  3691  	if r.query != nil {
  3692  		query = "?" + r.query.Encode()
  3693  	}
  3694  	return r.Paging(ctx, "GET", query, nil, n)
  3695  }
  3696  
  3697  // Get performs GET request for DeviceCompliancePolicySettingStateSummary collection
  3698  func (r *DeviceManagementDeviceCompliancePolicySettingStateSummariesCollectionRequest) Get(ctx context.Context) ([]DeviceCompliancePolicySettingStateSummary, error) {
  3699  	return r.GetN(ctx, 0)
  3700  }
  3701  
  3702  // Add performs POST request for DeviceCompliancePolicySettingStateSummary collection
  3703  func (r *DeviceManagementDeviceCompliancePolicySettingStateSummariesCollectionRequest) Add(ctx context.Context, reqObj *DeviceCompliancePolicySettingStateSummary) (resObj *DeviceCompliancePolicySettingStateSummary, err error) {
  3704  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  3705  	return
  3706  }
  3707  
  3708  // DeviceConfigurationDeviceStateSummaries is navigation property
  3709  func (b *DeviceManagementRequestBuilder) DeviceConfigurationDeviceStateSummaries() *DeviceConfigurationDeviceStateSummaryRequestBuilder {
  3710  	bb := &DeviceConfigurationDeviceStateSummaryRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  3711  	bb.baseURL += "/deviceConfigurationDeviceStateSummaries"
  3712  	return bb
  3713  }
  3714  
  3715  // DeviceConfigurations returns request builder for DeviceConfiguration collection
  3716  func (b *DeviceManagementRequestBuilder) DeviceConfigurations() *DeviceManagementDeviceConfigurationsCollectionRequestBuilder {
  3717  	bb := &DeviceManagementDeviceConfigurationsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  3718  	bb.baseURL += "/deviceConfigurations"
  3719  	return bb
  3720  }
  3721  
  3722  // DeviceManagementDeviceConfigurationsCollectionRequestBuilder is request builder for DeviceConfiguration collection
  3723  type DeviceManagementDeviceConfigurationsCollectionRequestBuilder struct{ BaseRequestBuilder }
  3724  
  3725  // Request returns request for DeviceConfiguration collection
  3726  func (b *DeviceManagementDeviceConfigurationsCollectionRequestBuilder) Request() *DeviceManagementDeviceConfigurationsCollectionRequest {
  3727  	return &DeviceManagementDeviceConfigurationsCollectionRequest{
  3728  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  3729  	}
  3730  }
  3731  
  3732  // ID returns request builder for DeviceConfiguration item
  3733  func (b *DeviceManagementDeviceConfigurationsCollectionRequestBuilder) ID(id string) *DeviceConfigurationRequestBuilder {
  3734  	bb := &DeviceConfigurationRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  3735  	bb.baseURL += "/" + id
  3736  	return bb
  3737  }
  3738  
  3739  // DeviceManagementDeviceConfigurationsCollectionRequest is request for DeviceConfiguration collection
  3740  type DeviceManagementDeviceConfigurationsCollectionRequest struct{ BaseRequest }
  3741  
  3742  // Paging perfoms paging operation for DeviceConfiguration collection
  3743  func (r *DeviceManagementDeviceConfigurationsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]DeviceConfiguration, error) {
  3744  	req, err := r.NewJSONRequest(method, path, obj)
  3745  	if err != nil {
  3746  		return nil, err
  3747  	}
  3748  	if ctx != nil {
  3749  		req = req.WithContext(ctx)
  3750  	}
  3751  	res, err := r.client.Do(req)
  3752  	if err != nil {
  3753  		return nil, err
  3754  	}
  3755  	var values []DeviceConfiguration
  3756  	for {
  3757  		if res.StatusCode != http.StatusOK {
  3758  			b, _ := ioutil.ReadAll(res.Body)
  3759  			res.Body.Close()
  3760  			errRes := &ErrorResponse{Response: res}
  3761  			err := jsonx.Unmarshal(b, errRes)
  3762  			if err != nil {
  3763  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  3764  			}
  3765  			return nil, errRes
  3766  		}
  3767  		var (
  3768  			paging Paging
  3769  			value  []DeviceConfiguration
  3770  		)
  3771  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  3772  		res.Body.Close()
  3773  		if err != nil {
  3774  			return nil, err
  3775  		}
  3776  		err = jsonx.Unmarshal(paging.Value, &value)
  3777  		if err != nil {
  3778  			return nil, err
  3779  		}
  3780  		values = append(values, value...)
  3781  		if n >= 0 {
  3782  			n--
  3783  		}
  3784  		if n == 0 || len(paging.NextLink) == 0 {
  3785  			return values, nil
  3786  		}
  3787  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  3788  		if ctx != nil {
  3789  			req = req.WithContext(ctx)
  3790  		}
  3791  		res, err = r.client.Do(req)
  3792  		if err != nil {
  3793  			return nil, err
  3794  		}
  3795  	}
  3796  }
  3797  
  3798  // GetN performs GET request for DeviceConfiguration collection, max N pages
  3799  func (r *DeviceManagementDeviceConfigurationsCollectionRequest) GetN(ctx context.Context, n int) ([]DeviceConfiguration, error) {
  3800  	var query string
  3801  	if r.query != nil {
  3802  		query = "?" + r.query.Encode()
  3803  	}
  3804  	return r.Paging(ctx, "GET", query, nil, n)
  3805  }
  3806  
  3807  // Get performs GET request for DeviceConfiguration collection
  3808  func (r *DeviceManagementDeviceConfigurationsCollectionRequest) Get(ctx context.Context) ([]DeviceConfiguration, error) {
  3809  	return r.GetN(ctx, 0)
  3810  }
  3811  
  3812  // Add performs POST request for DeviceConfiguration collection
  3813  func (r *DeviceManagementDeviceConfigurationsCollectionRequest) Add(ctx context.Context, reqObj *DeviceConfiguration) (resObj *DeviceConfiguration, err error) {
  3814  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  3815  	return
  3816  }
  3817  
  3818  // DeviceEnrollmentConfigurations returns request builder for DeviceEnrollmentConfiguration collection
  3819  func (b *DeviceManagementRequestBuilder) DeviceEnrollmentConfigurations() *DeviceManagementDeviceEnrollmentConfigurationsCollectionRequestBuilder {
  3820  	bb := &DeviceManagementDeviceEnrollmentConfigurationsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  3821  	bb.baseURL += "/deviceEnrollmentConfigurations"
  3822  	return bb
  3823  }
  3824  
  3825  // DeviceManagementDeviceEnrollmentConfigurationsCollectionRequestBuilder is request builder for DeviceEnrollmentConfiguration collection
  3826  type DeviceManagementDeviceEnrollmentConfigurationsCollectionRequestBuilder struct{ BaseRequestBuilder }
  3827  
  3828  // Request returns request for DeviceEnrollmentConfiguration collection
  3829  func (b *DeviceManagementDeviceEnrollmentConfigurationsCollectionRequestBuilder) Request() *DeviceManagementDeviceEnrollmentConfigurationsCollectionRequest {
  3830  	return &DeviceManagementDeviceEnrollmentConfigurationsCollectionRequest{
  3831  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  3832  	}
  3833  }
  3834  
  3835  // ID returns request builder for DeviceEnrollmentConfiguration item
  3836  func (b *DeviceManagementDeviceEnrollmentConfigurationsCollectionRequestBuilder) ID(id string) *DeviceEnrollmentConfigurationRequestBuilder {
  3837  	bb := &DeviceEnrollmentConfigurationRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  3838  	bb.baseURL += "/" + id
  3839  	return bb
  3840  }
  3841  
  3842  // DeviceManagementDeviceEnrollmentConfigurationsCollectionRequest is request for DeviceEnrollmentConfiguration collection
  3843  type DeviceManagementDeviceEnrollmentConfigurationsCollectionRequest struct{ BaseRequest }
  3844  
  3845  // Paging perfoms paging operation for DeviceEnrollmentConfiguration collection
  3846  func (r *DeviceManagementDeviceEnrollmentConfigurationsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]DeviceEnrollmentConfiguration, error) {
  3847  	req, err := r.NewJSONRequest(method, path, obj)
  3848  	if err != nil {
  3849  		return nil, err
  3850  	}
  3851  	if ctx != nil {
  3852  		req = req.WithContext(ctx)
  3853  	}
  3854  	res, err := r.client.Do(req)
  3855  	if err != nil {
  3856  		return nil, err
  3857  	}
  3858  	var values []DeviceEnrollmentConfiguration
  3859  	for {
  3860  		if res.StatusCode != http.StatusOK {
  3861  			b, _ := ioutil.ReadAll(res.Body)
  3862  			res.Body.Close()
  3863  			errRes := &ErrorResponse{Response: res}
  3864  			err := jsonx.Unmarshal(b, errRes)
  3865  			if err != nil {
  3866  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  3867  			}
  3868  			return nil, errRes
  3869  		}
  3870  		var (
  3871  			paging Paging
  3872  			value  []DeviceEnrollmentConfiguration
  3873  		)
  3874  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  3875  		res.Body.Close()
  3876  		if err != nil {
  3877  			return nil, err
  3878  		}
  3879  		err = jsonx.Unmarshal(paging.Value, &value)
  3880  		if err != nil {
  3881  			return nil, err
  3882  		}
  3883  		values = append(values, value...)
  3884  		if n >= 0 {
  3885  			n--
  3886  		}
  3887  		if n == 0 || len(paging.NextLink) == 0 {
  3888  			return values, nil
  3889  		}
  3890  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  3891  		if ctx != nil {
  3892  			req = req.WithContext(ctx)
  3893  		}
  3894  		res, err = r.client.Do(req)
  3895  		if err != nil {
  3896  			return nil, err
  3897  		}
  3898  	}
  3899  }
  3900  
  3901  // GetN performs GET request for DeviceEnrollmentConfiguration collection, max N pages
  3902  func (r *DeviceManagementDeviceEnrollmentConfigurationsCollectionRequest) GetN(ctx context.Context, n int) ([]DeviceEnrollmentConfiguration, error) {
  3903  	var query string
  3904  	if r.query != nil {
  3905  		query = "?" + r.query.Encode()
  3906  	}
  3907  	return r.Paging(ctx, "GET", query, nil, n)
  3908  }
  3909  
  3910  // Get performs GET request for DeviceEnrollmentConfiguration collection
  3911  func (r *DeviceManagementDeviceEnrollmentConfigurationsCollectionRequest) Get(ctx context.Context) ([]DeviceEnrollmentConfiguration, error) {
  3912  	return r.GetN(ctx, 0)
  3913  }
  3914  
  3915  // Add performs POST request for DeviceEnrollmentConfiguration collection
  3916  func (r *DeviceManagementDeviceEnrollmentConfigurationsCollectionRequest) Add(ctx context.Context, reqObj *DeviceEnrollmentConfiguration) (resObj *DeviceEnrollmentConfiguration, err error) {
  3917  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  3918  	return
  3919  }
  3920  
  3921  // DeviceManagementPartners returns request builder for DeviceManagementPartner collection
  3922  func (b *DeviceManagementRequestBuilder) DeviceManagementPartners() *DeviceManagementDeviceManagementPartnersCollectionRequestBuilder {
  3923  	bb := &DeviceManagementDeviceManagementPartnersCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  3924  	bb.baseURL += "/deviceManagementPartners"
  3925  	return bb
  3926  }
  3927  
  3928  // DeviceManagementDeviceManagementPartnersCollectionRequestBuilder is request builder for DeviceManagementPartner collection
  3929  type DeviceManagementDeviceManagementPartnersCollectionRequestBuilder struct{ BaseRequestBuilder }
  3930  
  3931  // Request returns request for DeviceManagementPartner collection
  3932  func (b *DeviceManagementDeviceManagementPartnersCollectionRequestBuilder) Request() *DeviceManagementDeviceManagementPartnersCollectionRequest {
  3933  	return &DeviceManagementDeviceManagementPartnersCollectionRequest{
  3934  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  3935  	}
  3936  }
  3937  
  3938  // ID returns request builder for DeviceManagementPartner item
  3939  func (b *DeviceManagementDeviceManagementPartnersCollectionRequestBuilder) ID(id string) *DeviceManagementPartnerRequestBuilder {
  3940  	bb := &DeviceManagementPartnerRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  3941  	bb.baseURL += "/" + id
  3942  	return bb
  3943  }
  3944  
  3945  // DeviceManagementDeviceManagementPartnersCollectionRequest is request for DeviceManagementPartner collection
  3946  type DeviceManagementDeviceManagementPartnersCollectionRequest struct{ BaseRequest }
  3947  
  3948  // Paging perfoms paging operation for DeviceManagementPartner collection
  3949  func (r *DeviceManagementDeviceManagementPartnersCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]DeviceManagementPartner, error) {
  3950  	req, err := r.NewJSONRequest(method, path, obj)
  3951  	if err != nil {
  3952  		return nil, err
  3953  	}
  3954  	if ctx != nil {
  3955  		req = req.WithContext(ctx)
  3956  	}
  3957  	res, err := r.client.Do(req)
  3958  	if err != nil {
  3959  		return nil, err
  3960  	}
  3961  	var values []DeviceManagementPartner
  3962  	for {
  3963  		if res.StatusCode != http.StatusOK {
  3964  			b, _ := ioutil.ReadAll(res.Body)
  3965  			res.Body.Close()
  3966  			errRes := &ErrorResponse{Response: res}
  3967  			err := jsonx.Unmarshal(b, errRes)
  3968  			if err != nil {
  3969  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  3970  			}
  3971  			return nil, errRes
  3972  		}
  3973  		var (
  3974  			paging Paging
  3975  			value  []DeviceManagementPartner
  3976  		)
  3977  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  3978  		res.Body.Close()
  3979  		if err != nil {
  3980  			return nil, err
  3981  		}
  3982  		err = jsonx.Unmarshal(paging.Value, &value)
  3983  		if err != nil {
  3984  			return nil, err
  3985  		}
  3986  		values = append(values, value...)
  3987  		if n >= 0 {
  3988  			n--
  3989  		}
  3990  		if n == 0 || len(paging.NextLink) == 0 {
  3991  			return values, nil
  3992  		}
  3993  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  3994  		if ctx != nil {
  3995  			req = req.WithContext(ctx)
  3996  		}
  3997  		res, err = r.client.Do(req)
  3998  		if err != nil {
  3999  			return nil, err
  4000  		}
  4001  	}
  4002  }
  4003  
  4004  // GetN performs GET request for DeviceManagementPartner collection, max N pages
  4005  func (r *DeviceManagementDeviceManagementPartnersCollectionRequest) GetN(ctx context.Context, n int) ([]DeviceManagementPartner, error) {
  4006  	var query string
  4007  	if r.query != nil {
  4008  		query = "?" + r.query.Encode()
  4009  	}
  4010  	return r.Paging(ctx, "GET", query, nil, n)
  4011  }
  4012  
  4013  // Get performs GET request for DeviceManagementPartner collection
  4014  func (r *DeviceManagementDeviceManagementPartnersCollectionRequest) Get(ctx context.Context) ([]DeviceManagementPartner, error) {
  4015  	return r.GetN(ctx, 0)
  4016  }
  4017  
  4018  // Add performs POST request for DeviceManagementPartner collection
  4019  func (r *DeviceManagementDeviceManagementPartnersCollectionRequest) Add(ctx context.Context, reqObj *DeviceManagementPartner) (resObj *DeviceManagementPartner, err error) {
  4020  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  4021  	return
  4022  }
  4023  
  4024  // ExchangeConnectors returns request builder for DeviceManagementExchangeConnector collection
  4025  func (b *DeviceManagementRequestBuilder) ExchangeConnectors() *DeviceManagementExchangeConnectorsCollectionRequestBuilder {
  4026  	bb := &DeviceManagementExchangeConnectorsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  4027  	bb.baseURL += "/exchangeConnectors"
  4028  	return bb
  4029  }
  4030  
  4031  // DeviceManagementExchangeConnectorsCollectionRequestBuilder is request builder for DeviceManagementExchangeConnector collection
  4032  type DeviceManagementExchangeConnectorsCollectionRequestBuilder struct{ BaseRequestBuilder }
  4033  
  4034  // Request returns request for DeviceManagementExchangeConnector collection
  4035  func (b *DeviceManagementExchangeConnectorsCollectionRequestBuilder) Request() *DeviceManagementExchangeConnectorsCollectionRequest {
  4036  	return &DeviceManagementExchangeConnectorsCollectionRequest{
  4037  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  4038  	}
  4039  }
  4040  
  4041  // ID returns request builder for DeviceManagementExchangeConnector item
  4042  func (b *DeviceManagementExchangeConnectorsCollectionRequestBuilder) ID(id string) *DeviceManagementExchangeConnectorRequestBuilder {
  4043  	bb := &DeviceManagementExchangeConnectorRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  4044  	bb.baseURL += "/" + id
  4045  	return bb
  4046  }
  4047  
  4048  // DeviceManagementExchangeConnectorsCollectionRequest is request for DeviceManagementExchangeConnector collection
  4049  type DeviceManagementExchangeConnectorsCollectionRequest struct{ BaseRequest }
  4050  
  4051  // Paging perfoms paging operation for DeviceManagementExchangeConnector collection
  4052  func (r *DeviceManagementExchangeConnectorsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]DeviceManagementExchangeConnector, error) {
  4053  	req, err := r.NewJSONRequest(method, path, obj)
  4054  	if err != nil {
  4055  		return nil, err
  4056  	}
  4057  	if ctx != nil {
  4058  		req = req.WithContext(ctx)
  4059  	}
  4060  	res, err := r.client.Do(req)
  4061  	if err != nil {
  4062  		return nil, err
  4063  	}
  4064  	var values []DeviceManagementExchangeConnector
  4065  	for {
  4066  		if res.StatusCode != http.StatusOK {
  4067  			b, _ := ioutil.ReadAll(res.Body)
  4068  			res.Body.Close()
  4069  			errRes := &ErrorResponse{Response: res}
  4070  			err := jsonx.Unmarshal(b, errRes)
  4071  			if err != nil {
  4072  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  4073  			}
  4074  			return nil, errRes
  4075  		}
  4076  		var (
  4077  			paging Paging
  4078  			value  []DeviceManagementExchangeConnector
  4079  		)
  4080  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  4081  		res.Body.Close()
  4082  		if err != nil {
  4083  			return nil, err
  4084  		}
  4085  		err = jsonx.Unmarshal(paging.Value, &value)
  4086  		if err != nil {
  4087  			return nil, err
  4088  		}
  4089  		values = append(values, value...)
  4090  		if n >= 0 {
  4091  			n--
  4092  		}
  4093  		if n == 0 || len(paging.NextLink) == 0 {
  4094  			return values, nil
  4095  		}
  4096  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  4097  		if ctx != nil {
  4098  			req = req.WithContext(ctx)
  4099  		}
  4100  		res, err = r.client.Do(req)
  4101  		if err != nil {
  4102  			return nil, err
  4103  		}
  4104  	}
  4105  }
  4106  
  4107  // GetN performs GET request for DeviceManagementExchangeConnector collection, max N pages
  4108  func (r *DeviceManagementExchangeConnectorsCollectionRequest) GetN(ctx context.Context, n int) ([]DeviceManagementExchangeConnector, error) {
  4109  	var query string
  4110  	if r.query != nil {
  4111  		query = "?" + r.query.Encode()
  4112  	}
  4113  	return r.Paging(ctx, "GET", query, nil, n)
  4114  }
  4115  
  4116  // Get performs GET request for DeviceManagementExchangeConnector collection
  4117  func (r *DeviceManagementExchangeConnectorsCollectionRequest) Get(ctx context.Context) ([]DeviceManagementExchangeConnector, error) {
  4118  	return r.GetN(ctx, 0)
  4119  }
  4120  
  4121  // Add performs POST request for DeviceManagementExchangeConnector collection
  4122  func (r *DeviceManagementExchangeConnectorsCollectionRequest) Add(ctx context.Context, reqObj *DeviceManagementExchangeConnector) (resObj *DeviceManagementExchangeConnector, err error) {
  4123  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  4124  	return
  4125  }
  4126  
  4127  // IOSUpdateStatuses returns request builder for IOSUpdateDeviceStatus collection
  4128  func (b *DeviceManagementRequestBuilder) IOSUpdateStatuses() *DeviceManagementIOSUpdateStatusesCollectionRequestBuilder {
  4129  	bb := &DeviceManagementIOSUpdateStatusesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  4130  	bb.baseURL += "/iosUpdateStatuses"
  4131  	return bb
  4132  }
  4133  
  4134  // DeviceManagementIOSUpdateStatusesCollectionRequestBuilder is request builder for IOSUpdateDeviceStatus collection
  4135  type DeviceManagementIOSUpdateStatusesCollectionRequestBuilder struct{ BaseRequestBuilder }
  4136  
  4137  // Request returns request for IOSUpdateDeviceStatus collection
  4138  func (b *DeviceManagementIOSUpdateStatusesCollectionRequestBuilder) Request() *DeviceManagementIOSUpdateStatusesCollectionRequest {
  4139  	return &DeviceManagementIOSUpdateStatusesCollectionRequest{
  4140  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  4141  	}
  4142  }
  4143  
  4144  // ID returns request builder for IOSUpdateDeviceStatus item
  4145  func (b *DeviceManagementIOSUpdateStatusesCollectionRequestBuilder) ID(id string) *IOSUpdateDeviceStatusRequestBuilder {
  4146  	bb := &IOSUpdateDeviceStatusRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  4147  	bb.baseURL += "/" + id
  4148  	return bb
  4149  }
  4150  
  4151  // DeviceManagementIOSUpdateStatusesCollectionRequest is request for IOSUpdateDeviceStatus collection
  4152  type DeviceManagementIOSUpdateStatusesCollectionRequest struct{ BaseRequest }
  4153  
  4154  // Paging perfoms paging operation for IOSUpdateDeviceStatus collection
  4155  func (r *DeviceManagementIOSUpdateStatusesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]IOSUpdateDeviceStatus, error) {
  4156  	req, err := r.NewJSONRequest(method, path, obj)
  4157  	if err != nil {
  4158  		return nil, err
  4159  	}
  4160  	if ctx != nil {
  4161  		req = req.WithContext(ctx)
  4162  	}
  4163  	res, err := r.client.Do(req)
  4164  	if err != nil {
  4165  		return nil, err
  4166  	}
  4167  	var values []IOSUpdateDeviceStatus
  4168  	for {
  4169  		if res.StatusCode != http.StatusOK {
  4170  			b, _ := ioutil.ReadAll(res.Body)
  4171  			res.Body.Close()
  4172  			errRes := &ErrorResponse{Response: res}
  4173  			err := jsonx.Unmarshal(b, errRes)
  4174  			if err != nil {
  4175  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  4176  			}
  4177  			return nil, errRes
  4178  		}
  4179  		var (
  4180  			paging Paging
  4181  			value  []IOSUpdateDeviceStatus
  4182  		)
  4183  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  4184  		res.Body.Close()
  4185  		if err != nil {
  4186  			return nil, err
  4187  		}
  4188  		err = jsonx.Unmarshal(paging.Value, &value)
  4189  		if err != nil {
  4190  			return nil, err
  4191  		}
  4192  		values = append(values, value...)
  4193  		if n >= 0 {
  4194  			n--
  4195  		}
  4196  		if n == 0 || len(paging.NextLink) == 0 {
  4197  			return values, nil
  4198  		}
  4199  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  4200  		if ctx != nil {
  4201  			req = req.WithContext(ctx)
  4202  		}
  4203  		res, err = r.client.Do(req)
  4204  		if err != nil {
  4205  			return nil, err
  4206  		}
  4207  	}
  4208  }
  4209  
  4210  // GetN performs GET request for IOSUpdateDeviceStatus collection, max N pages
  4211  func (r *DeviceManagementIOSUpdateStatusesCollectionRequest) GetN(ctx context.Context, n int) ([]IOSUpdateDeviceStatus, error) {
  4212  	var query string
  4213  	if r.query != nil {
  4214  		query = "?" + r.query.Encode()
  4215  	}
  4216  	return r.Paging(ctx, "GET", query, nil, n)
  4217  }
  4218  
  4219  // Get performs GET request for IOSUpdateDeviceStatus collection
  4220  func (r *DeviceManagementIOSUpdateStatusesCollectionRequest) Get(ctx context.Context) ([]IOSUpdateDeviceStatus, error) {
  4221  	return r.GetN(ctx, 0)
  4222  }
  4223  
  4224  // Add performs POST request for IOSUpdateDeviceStatus collection
  4225  func (r *DeviceManagementIOSUpdateStatusesCollectionRequest) Add(ctx context.Context, reqObj *IOSUpdateDeviceStatus) (resObj *IOSUpdateDeviceStatus, err error) {
  4226  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  4227  	return
  4228  }
  4229  
  4230  // ManagedDeviceOverview is navigation property
  4231  func (b *DeviceManagementRequestBuilder) ManagedDeviceOverview() *ManagedDeviceOverviewRequestBuilder {
  4232  	bb := &ManagedDeviceOverviewRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  4233  	bb.baseURL += "/managedDeviceOverview"
  4234  	return bb
  4235  }
  4236  
  4237  // ManagedDevices returns request builder for ManagedDevice collection
  4238  func (b *DeviceManagementRequestBuilder) ManagedDevices() *DeviceManagementManagedDevicesCollectionRequestBuilder {
  4239  	bb := &DeviceManagementManagedDevicesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  4240  	bb.baseURL += "/managedDevices"
  4241  	return bb
  4242  }
  4243  
  4244  // DeviceManagementManagedDevicesCollectionRequestBuilder is request builder for ManagedDevice collection
  4245  type DeviceManagementManagedDevicesCollectionRequestBuilder struct{ BaseRequestBuilder }
  4246  
  4247  // Request returns request for ManagedDevice collection
  4248  func (b *DeviceManagementManagedDevicesCollectionRequestBuilder) Request() *DeviceManagementManagedDevicesCollectionRequest {
  4249  	return &DeviceManagementManagedDevicesCollectionRequest{
  4250  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  4251  	}
  4252  }
  4253  
  4254  // ID returns request builder for ManagedDevice item
  4255  func (b *DeviceManagementManagedDevicesCollectionRequestBuilder) ID(id string) *ManagedDeviceRequestBuilder {
  4256  	bb := &ManagedDeviceRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  4257  	bb.baseURL += "/" + id
  4258  	return bb
  4259  }
  4260  
  4261  // DeviceManagementManagedDevicesCollectionRequest is request for ManagedDevice collection
  4262  type DeviceManagementManagedDevicesCollectionRequest struct{ BaseRequest }
  4263  
  4264  // Paging perfoms paging operation for ManagedDevice collection
  4265  func (r *DeviceManagementManagedDevicesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]ManagedDevice, error) {
  4266  	req, err := r.NewJSONRequest(method, path, obj)
  4267  	if err != nil {
  4268  		return nil, err
  4269  	}
  4270  	if ctx != nil {
  4271  		req = req.WithContext(ctx)
  4272  	}
  4273  	res, err := r.client.Do(req)
  4274  	if err != nil {
  4275  		return nil, err
  4276  	}
  4277  	var values []ManagedDevice
  4278  	for {
  4279  		if res.StatusCode != http.StatusOK {
  4280  			b, _ := ioutil.ReadAll(res.Body)
  4281  			res.Body.Close()
  4282  			errRes := &ErrorResponse{Response: res}
  4283  			err := jsonx.Unmarshal(b, errRes)
  4284  			if err != nil {
  4285  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  4286  			}
  4287  			return nil, errRes
  4288  		}
  4289  		var (
  4290  			paging Paging
  4291  			value  []ManagedDevice
  4292  		)
  4293  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  4294  		res.Body.Close()
  4295  		if err != nil {
  4296  			return nil, err
  4297  		}
  4298  		err = jsonx.Unmarshal(paging.Value, &value)
  4299  		if err != nil {
  4300  			return nil, err
  4301  		}
  4302  		values = append(values, value...)
  4303  		if n >= 0 {
  4304  			n--
  4305  		}
  4306  		if n == 0 || len(paging.NextLink) == 0 {
  4307  			return values, nil
  4308  		}
  4309  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  4310  		if ctx != nil {
  4311  			req = req.WithContext(ctx)
  4312  		}
  4313  		res, err = r.client.Do(req)
  4314  		if err != nil {
  4315  			return nil, err
  4316  		}
  4317  	}
  4318  }
  4319  
  4320  // GetN performs GET request for ManagedDevice collection, max N pages
  4321  func (r *DeviceManagementManagedDevicesCollectionRequest) GetN(ctx context.Context, n int) ([]ManagedDevice, error) {
  4322  	var query string
  4323  	if r.query != nil {
  4324  		query = "?" + r.query.Encode()
  4325  	}
  4326  	return r.Paging(ctx, "GET", query, nil, n)
  4327  }
  4328  
  4329  // Get performs GET request for ManagedDevice collection
  4330  func (r *DeviceManagementManagedDevicesCollectionRequest) Get(ctx context.Context) ([]ManagedDevice, error) {
  4331  	return r.GetN(ctx, 0)
  4332  }
  4333  
  4334  // Add performs POST request for ManagedDevice collection
  4335  func (r *DeviceManagementManagedDevicesCollectionRequest) Add(ctx context.Context, reqObj *ManagedDevice) (resObj *ManagedDevice, err error) {
  4336  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  4337  	return
  4338  }
  4339  
  4340  // MobileThreatDefenseConnectors returns request builder for MobileThreatDefenseConnector collection
  4341  func (b *DeviceManagementRequestBuilder) MobileThreatDefenseConnectors() *DeviceManagementMobileThreatDefenseConnectorsCollectionRequestBuilder {
  4342  	bb := &DeviceManagementMobileThreatDefenseConnectorsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  4343  	bb.baseURL += "/mobileThreatDefenseConnectors"
  4344  	return bb
  4345  }
  4346  
  4347  // DeviceManagementMobileThreatDefenseConnectorsCollectionRequestBuilder is request builder for MobileThreatDefenseConnector collection
  4348  type DeviceManagementMobileThreatDefenseConnectorsCollectionRequestBuilder struct{ BaseRequestBuilder }
  4349  
  4350  // Request returns request for MobileThreatDefenseConnector collection
  4351  func (b *DeviceManagementMobileThreatDefenseConnectorsCollectionRequestBuilder) Request() *DeviceManagementMobileThreatDefenseConnectorsCollectionRequest {
  4352  	return &DeviceManagementMobileThreatDefenseConnectorsCollectionRequest{
  4353  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  4354  	}
  4355  }
  4356  
  4357  // ID returns request builder for MobileThreatDefenseConnector item
  4358  func (b *DeviceManagementMobileThreatDefenseConnectorsCollectionRequestBuilder) ID(id string) *MobileThreatDefenseConnectorRequestBuilder {
  4359  	bb := &MobileThreatDefenseConnectorRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  4360  	bb.baseURL += "/" + id
  4361  	return bb
  4362  }
  4363  
  4364  // DeviceManagementMobileThreatDefenseConnectorsCollectionRequest is request for MobileThreatDefenseConnector collection
  4365  type DeviceManagementMobileThreatDefenseConnectorsCollectionRequest struct{ BaseRequest }
  4366  
  4367  // Paging perfoms paging operation for MobileThreatDefenseConnector collection
  4368  func (r *DeviceManagementMobileThreatDefenseConnectorsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]MobileThreatDefenseConnector, error) {
  4369  	req, err := r.NewJSONRequest(method, path, obj)
  4370  	if err != nil {
  4371  		return nil, err
  4372  	}
  4373  	if ctx != nil {
  4374  		req = req.WithContext(ctx)
  4375  	}
  4376  	res, err := r.client.Do(req)
  4377  	if err != nil {
  4378  		return nil, err
  4379  	}
  4380  	var values []MobileThreatDefenseConnector
  4381  	for {
  4382  		if res.StatusCode != http.StatusOK {
  4383  			b, _ := ioutil.ReadAll(res.Body)
  4384  			res.Body.Close()
  4385  			errRes := &ErrorResponse{Response: res}
  4386  			err := jsonx.Unmarshal(b, errRes)
  4387  			if err != nil {
  4388  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  4389  			}
  4390  			return nil, errRes
  4391  		}
  4392  		var (
  4393  			paging Paging
  4394  			value  []MobileThreatDefenseConnector
  4395  		)
  4396  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  4397  		res.Body.Close()
  4398  		if err != nil {
  4399  			return nil, err
  4400  		}
  4401  		err = jsonx.Unmarshal(paging.Value, &value)
  4402  		if err != nil {
  4403  			return nil, err
  4404  		}
  4405  		values = append(values, value...)
  4406  		if n >= 0 {
  4407  			n--
  4408  		}
  4409  		if n == 0 || len(paging.NextLink) == 0 {
  4410  			return values, nil
  4411  		}
  4412  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  4413  		if ctx != nil {
  4414  			req = req.WithContext(ctx)
  4415  		}
  4416  		res, err = r.client.Do(req)
  4417  		if err != nil {
  4418  			return nil, err
  4419  		}
  4420  	}
  4421  }
  4422  
  4423  // GetN performs GET request for MobileThreatDefenseConnector collection, max N pages
  4424  func (r *DeviceManagementMobileThreatDefenseConnectorsCollectionRequest) GetN(ctx context.Context, n int) ([]MobileThreatDefenseConnector, error) {
  4425  	var query string
  4426  	if r.query != nil {
  4427  		query = "?" + r.query.Encode()
  4428  	}
  4429  	return r.Paging(ctx, "GET", query, nil, n)
  4430  }
  4431  
  4432  // Get performs GET request for MobileThreatDefenseConnector collection
  4433  func (r *DeviceManagementMobileThreatDefenseConnectorsCollectionRequest) Get(ctx context.Context) ([]MobileThreatDefenseConnector, error) {
  4434  	return r.GetN(ctx, 0)
  4435  }
  4436  
  4437  // Add performs POST request for MobileThreatDefenseConnector collection
  4438  func (r *DeviceManagementMobileThreatDefenseConnectorsCollectionRequest) Add(ctx context.Context, reqObj *MobileThreatDefenseConnector) (resObj *MobileThreatDefenseConnector, err error) {
  4439  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  4440  	return
  4441  }
  4442  
  4443  // NotificationMessageTemplates returns request builder for NotificationMessageTemplate collection
  4444  func (b *DeviceManagementRequestBuilder) NotificationMessageTemplates() *DeviceManagementNotificationMessageTemplatesCollectionRequestBuilder {
  4445  	bb := &DeviceManagementNotificationMessageTemplatesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  4446  	bb.baseURL += "/notificationMessageTemplates"
  4447  	return bb
  4448  }
  4449  
  4450  // DeviceManagementNotificationMessageTemplatesCollectionRequestBuilder is request builder for NotificationMessageTemplate collection
  4451  type DeviceManagementNotificationMessageTemplatesCollectionRequestBuilder struct{ BaseRequestBuilder }
  4452  
  4453  // Request returns request for NotificationMessageTemplate collection
  4454  func (b *DeviceManagementNotificationMessageTemplatesCollectionRequestBuilder) Request() *DeviceManagementNotificationMessageTemplatesCollectionRequest {
  4455  	return &DeviceManagementNotificationMessageTemplatesCollectionRequest{
  4456  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  4457  	}
  4458  }
  4459  
  4460  // ID returns request builder for NotificationMessageTemplate item
  4461  func (b *DeviceManagementNotificationMessageTemplatesCollectionRequestBuilder) ID(id string) *NotificationMessageTemplateRequestBuilder {
  4462  	bb := &NotificationMessageTemplateRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  4463  	bb.baseURL += "/" + id
  4464  	return bb
  4465  }
  4466  
  4467  // DeviceManagementNotificationMessageTemplatesCollectionRequest is request for NotificationMessageTemplate collection
  4468  type DeviceManagementNotificationMessageTemplatesCollectionRequest struct{ BaseRequest }
  4469  
  4470  // Paging perfoms paging operation for NotificationMessageTemplate collection
  4471  func (r *DeviceManagementNotificationMessageTemplatesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]NotificationMessageTemplate, error) {
  4472  	req, err := r.NewJSONRequest(method, path, obj)
  4473  	if err != nil {
  4474  		return nil, err
  4475  	}
  4476  	if ctx != nil {
  4477  		req = req.WithContext(ctx)
  4478  	}
  4479  	res, err := r.client.Do(req)
  4480  	if err != nil {
  4481  		return nil, err
  4482  	}
  4483  	var values []NotificationMessageTemplate
  4484  	for {
  4485  		if res.StatusCode != http.StatusOK {
  4486  			b, _ := ioutil.ReadAll(res.Body)
  4487  			res.Body.Close()
  4488  			errRes := &ErrorResponse{Response: res}
  4489  			err := jsonx.Unmarshal(b, errRes)
  4490  			if err != nil {
  4491  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  4492  			}
  4493  			return nil, errRes
  4494  		}
  4495  		var (
  4496  			paging Paging
  4497  			value  []NotificationMessageTemplate
  4498  		)
  4499  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  4500  		res.Body.Close()
  4501  		if err != nil {
  4502  			return nil, err
  4503  		}
  4504  		err = jsonx.Unmarshal(paging.Value, &value)
  4505  		if err != nil {
  4506  			return nil, err
  4507  		}
  4508  		values = append(values, value...)
  4509  		if n >= 0 {
  4510  			n--
  4511  		}
  4512  		if n == 0 || len(paging.NextLink) == 0 {
  4513  			return values, nil
  4514  		}
  4515  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  4516  		if ctx != nil {
  4517  			req = req.WithContext(ctx)
  4518  		}
  4519  		res, err = r.client.Do(req)
  4520  		if err != nil {
  4521  			return nil, err
  4522  		}
  4523  	}
  4524  }
  4525  
  4526  // GetN performs GET request for NotificationMessageTemplate collection, max N pages
  4527  func (r *DeviceManagementNotificationMessageTemplatesCollectionRequest) GetN(ctx context.Context, n int) ([]NotificationMessageTemplate, error) {
  4528  	var query string
  4529  	if r.query != nil {
  4530  		query = "?" + r.query.Encode()
  4531  	}
  4532  	return r.Paging(ctx, "GET", query, nil, n)
  4533  }
  4534  
  4535  // Get performs GET request for NotificationMessageTemplate collection
  4536  func (r *DeviceManagementNotificationMessageTemplatesCollectionRequest) Get(ctx context.Context) ([]NotificationMessageTemplate, error) {
  4537  	return r.GetN(ctx, 0)
  4538  }
  4539  
  4540  // Add performs POST request for NotificationMessageTemplate collection
  4541  func (r *DeviceManagementNotificationMessageTemplatesCollectionRequest) Add(ctx context.Context, reqObj *NotificationMessageTemplate) (resObj *NotificationMessageTemplate, err error) {
  4542  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  4543  	return
  4544  }
  4545  
  4546  // RemoteAssistancePartners returns request builder for RemoteAssistancePartner collection
  4547  func (b *DeviceManagementRequestBuilder) RemoteAssistancePartners() *DeviceManagementRemoteAssistancePartnersCollectionRequestBuilder {
  4548  	bb := &DeviceManagementRemoteAssistancePartnersCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  4549  	bb.baseURL += "/remoteAssistancePartners"
  4550  	return bb
  4551  }
  4552  
  4553  // DeviceManagementRemoteAssistancePartnersCollectionRequestBuilder is request builder for RemoteAssistancePartner collection
  4554  type DeviceManagementRemoteAssistancePartnersCollectionRequestBuilder struct{ BaseRequestBuilder }
  4555  
  4556  // Request returns request for RemoteAssistancePartner collection
  4557  func (b *DeviceManagementRemoteAssistancePartnersCollectionRequestBuilder) Request() *DeviceManagementRemoteAssistancePartnersCollectionRequest {
  4558  	return &DeviceManagementRemoteAssistancePartnersCollectionRequest{
  4559  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  4560  	}
  4561  }
  4562  
  4563  // ID returns request builder for RemoteAssistancePartner item
  4564  func (b *DeviceManagementRemoteAssistancePartnersCollectionRequestBuilder) ID(id string) *RemoteAssistancePartnerRequestBuilder {
  4565  	bb := &RemoteAssistancePartnerRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  4566  	bb.baseURL += "/" + id
  4567  	return bb
  4568  }
  4569  
  4570  // DeviceManagementRemoteAssistancePartnersCollectionRequest is request for RemoteAssistancePartner collection
  4571  type DeviceManagementRemoteAssistancePartnersCollectionRequest struct{ BaseRequest }
  4572  
  4573  // Paging perfoms paging operation for RemoteAssistancePartner collection
  4574  func (r *DeviceManagementRemoteAssistancePartnersCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]RemoteAssistancePartner, error) {
  4575  	req, err := r.NewJSONRequest(method, path, obj)
  4576  	if err != nil {
  4577  		return nil, err
  4578  	}
  4579  	if ctx != nil {
  4580  		req = req.WithContext(ctx)
  4581  	}
  4582  	res, err := r.client.Do(req)
  4583  	if err != nil {
  4584  		return nil, err
  4585  	}
  4586  	var values []RemoteAssistancePartner
  4587  	for {
  4588  		if res.StatusCode != http.StatusOK {
  4589  			b, _ := ioutil.ReadAll(res.Body)
  4590  			res.Body.Close()
  4591  			errRes := &ErrorResponse{Response: res}
  4592  			err := jsonx.Unmarshal(b, errRes)
  4593  			if err != nil {
  4594  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  4595  			}
  4596  			return nil, errRes
  4597  		}
  4598  		var (
  4599  			paging Paging
  4600  			value  []RemoteAssistancePartner
  4601  		)
  4602  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  4603  		res.Body.Close()
  4604  		if err != nil {
  4605  			return nil, err
  4606  		}
  4607  		err = jsonx.Unmarshal(paging.Value, &value)
  4608  		if err != nil {
  4609  			return nil, err
  4610  		}
  4611  		values = append(values, value...)
  4612  		if n >= 0 {
  4613  			n--
  4614  		}
  4615  		if n == 0 || len(paging.NextLink) == 0 {
  4616  			return values, nil
  4617  		}
  4618  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  4619  		if ctx != nil {
  4620  			req = req.WithContext(ctx)
  4621  		}
  4622  		res, err = r.client.Do(req)
  4623  		if err != nil {
  4624  			return nil, err
  4625  		}
  4626  	}
  4627  }
  4628  
  4629  // GetN performs GET request for RemoteAssistancePartner collection, max N pages
  4630  func (r *DeviceManagementRemoteAssistancePartnersCollectionRequest) GetN(ctx context.Context, n int) ([]RemoteAssistancePartner, error) {
  4631  	var query string
  4632  	if r.query != nil {
  4633  		query = "?" + r.query.Encode()
  4634  	}
  4635  	return r.Paging(ctx, "GET", query, nil, n)
  4636  }
  4637  
  4638  // Get performs GET request for RemoteAssistancePartner collection
  4639  func (r *DeviceManagementRemoteAssistancePartnersCollectionRequest) Get(ctx context.Context) ([]RemoteAssistancePartner, error) {
  4640  	return r.GetN(ctx, 0)
  4641  }
  4642  
  4643  // Add performs POST request for RemoteAssistancePartner collection
  4644  func (r *DeviceManagementRemoteAssistancePartnersCollectionRequest) Add(ctx context.Context, reqObj *RemoteAssistancePartner) (resObj *RemoteAssistancePartner, err error) {
  4645  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  4646  	return
  4647  }
  4648  
  4649  // ResourceOperations returns request builder for ResourceOperation collection
  4650  func (b *DeviceManagementRequestBuilder) ResourceOperations() *DeviceManagementResourceOperationsCollectionRequestBuilder {
  4651  	bb := &DeviceManagementResourceOperationsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  4652  	bb.baseURL += "/resourceOperations"
  4653  	return bb
  4654  }
  4655  
  4656  // DeviceManagementResourceOperationsCollectionRequestBuilder is request builder for ResourceOperation collection
  4657  type DeviceManagementResourceOperationsCollectionRequestBuilder struct{ BaseRequestBuilder }
  4658  
  4659  // Request returns request for ResourceOperation collection
  4660  func (b *DeviceManagementResourceOperationsCollectionRequestBuilder) Request() *DeviceManagementResourceOperationsCollectionRequest {
  4661  	return &DeviceManagementResourceOperationsCollectionRequest{
  4662  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  4663  	}
  4664  }
  4665  
  4666  // ID returns request builder for ResourceOperation item
  4667  func (b *DeviceManagementResourceOperationsCollectionRequestBuilder) ID(id string) *ResourceOperationRequestBuilder {
  4668  	bb := &ResourceOperationRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  4669  	bb.baseURL += "/" + id
  4670  	return bb
  4671  }
  4672  
  4673  // DeviceManagementResourceOperationsCollectionRequest is request for ResourceOperation collection
  4674  type DeviceManagementResourceOperationsCollectionRequest struct{ BaseRequest }
  4675  
  4676  // Paging perfoms paging operation for ResourceOperation collection
  4677  func (r *DeviceManagementResourceOperationsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]ResourceOperation, error) {
  4678  	req, err := r.NewJSONRequest(method, path, obj)
  4679  	if err != nil {
  4680  		return nil, err
  4681  	}
  4682  	if ctx != nil {
  4683  		req = req.WithContext(ctx)
  4684  	}
  4685  	res, err := r.client.Do(req)
  4686  	if err != nil {
  4687  		return nil, err
  4688  	}
  4689  	var values []ResourceOperation
  4690  	for {
  4691  		if res.StatusCode != http.StatusOK {
  4692  			b, _ := ioutil.ReadAll(res.Body)
  4693  			res.Body.Close()
  4694  			errRes := &ErrorResponse{Response: res}
  4695  			err := jsonx.Unmarshal(b, errRes)
  4696  			if err != nil {
  4697  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  4698  			}
  4699  			return nil, errRes
  4700  		}
  4701  		var (
  4702  			paging Paging
  4703  			value  []ResourceOperation
  4704  		)
  4705  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  4706  		res.Body.Close()
  4707  		if err != nil {
  4708  			return nil, err
  4709  		}
  4710  		err = jsonx.Unmarshal(paging.Value, &value)
  4711  		if err != nil {
  4712  			return nil, err
  4713  		}
  4714  		values = append(values, value...)
  4715  		if n >= 0 {
  4716  			n--
  4717  		}
  4718  		if n == 0 || len(paging.NextLink) == 0 {
  4719  			return values, nil
  4720  		}
  4721  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  4722  		if ctx != nil {
  4723  			req = req.WithContext(ctx)
  4724  		}
  4725  		res, err = r.client.Do(req)
  4726  		if err != nil {
  4727  			return nil, err
  4728  		}
  4729  	}
  4730  }
  4731  
  4732  // GetN performs GET request for ResourceOperation collection, max N pages
  4733  func (r *DeviceManagementResourceOperationsCollectionRequest) GetN(ctx context.Context, n int) ([]ResourceOperation, error) {
  4734  	var query string
  4735  	if r.query != nil {
  4736  		query = "?" + r.query.Encode()
  4737  	}
  4738  	return r.Paging(ctx, "GET", query, nil, n)
  4739  }
  4740  
  4741  // Get performs GET request for ResourceOperation collection
  4742  func (r *DeviceManagementResourceOperationsCollectionRequest) Get(ctx context.Context) ([]ResourceOperation, error) {
  4743  	return r.GetN(ctx, 0)
  4744  }
  4745  
  4746  // Add performs POST request for ResourceOperation collection
  4747  func (r *DeviceManagementResourceOperationsCollectionRequest) Add(ctx context.Context, reqObj *ResourceOperation) (resObj *ResourceOperation, err error) {
  4748  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  4749  	return
  4750  }
  4751  
  4752  // RoleAssignments returns request builder for DeviceAndAppManagementRoleAssignment collection
  4753  func (b *DeviceManagementRequestBuilder) RoleAssignments() *DeviceManagementRoleAssignmentsCollectionRequestBuilder {
  4754  	bb := &DeviceManagementRoleAssignmentsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  4755  	bb.baseURL += "/roleAssignments"
  4756  	return bb
  4757  }
  4758  
  4759  // DeviceManagementRoleAssignmentsCollectionRequestBuilder is request builder for DeviceAndAppManagementRoleAssignment collection
  4760  type DeviceManagementRoleAssignmentsCollectionRequestBuilder struct{ BaseRequestBuilder }
  4761  
  4762  // Request returns request for DeviceAndAppManagementRoleAssignment collection
  4763  func (b *DeviceManagementRoleAssignmentsCollectionRequestBuilder) Request() *DeviceManagementRoleAssignmentsCollectionRequest {
  4764  	return &DeviceManagementRoleAssignmentsCollectionRequest{
  4765  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  4766  	}
  4767  }
  4768  
  4769  // ID returns request builder for DeviceAndAppManagementRoleAssignment item
  4770  func (b *DeviceManagementRoleAssignmentsCollectionRequestBuilder) ID(id string) *DeviceAndAppManagementRoleAssignmentRequestBuilder {
  4771  	bb := &DeviceAndAppManagementRoleAssignmentRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  4772  	bb.baseURL += "/" + id
  4773  	return bb
  4774  }
  4775  
  4776  // DeviceManagementRoleAssignmentsCollectionRequest is request for DeviceAndAppManagementRoleAssignment collection
  4777  type DeviceManagementRoleAssignmentsCollectionRequest struct{ BaseRequest }
  4778  
  4779  // Paging perfoms paging operation for DeviceAndAppManagementRoleAssignment collection
  4780  func (r *DeviceManagementRoleAssignmentsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]DeviceAndAppManagementRoleAssignment, error) {
  4781  	req, err := r.NewJSONRequest(method, path, obj)
  4782  	if err != nil {
  4783  		return nil, err
  4784  	}
  4785  	if ctx != nil {
  4786  		req = req.WithContext(ctx)
  4787  	}
  4788  	res, err := r.client.Do(req)
  4789  	if err != nil {
  4790  		return nil, err
  4791  	}
  4792  	var values []DeviceAndAppManagementRoleAssignment
  4793  	for {
  4794  		if res.StatusCode != http.StatusOK {
  4795  			b, _ := ioutil.ReadAll(res.Body)
  4796  			res.Body.Close()
  4797  			errRes := &ErrorResponse{Response: res}
  4798  			err := jsonx.Unmarshal(b, errRes)
  4799  			if err != nil {
  4800  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  4801  			}
  4802  			return nil, errRes
  4803  		}
  4804  		var (
  4805  			paging Paging
  4806  			value  []DeviceAndAppManagementRoleAssignment
  4807  		)
  4808  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  4809  		res.Body.Close()
  4810  		if err != nil {
  4811  			return nil, err
  4812  		}
  4813  		err = jsonx.Unmarshal(paging.Value, &value)
  4814  		if err != nil {
  4815  			return nil, err
  4816  		}
  4817  		values = append(values, value...)
  4818  		if n >= 0 {
  4819  			n--
  4820  		}
  4821  		if n == 0 || len(paging.NextLink) == 0 {
  4822  			return values, nil
  4823  		}
  4824  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  4825  		if ctx != nil {
  4826  			req = req.WithContext(ctx)
  4827  		}
  4828  		res, err = r.client.Do(req)
  4829  		if err != nil {
  4830  			return nil, err
  4831  		}
  4832  	}
  4833  }
  4834  
  4835  // GetN performs GET request for DeviceAndAppManagementRoleAssignment collection, max N pages
  4836  func (r *DeviceManagementRoleAssignmentsCollectionRequest) GetN(ctx context.Context, n int) ([]DeviceAndAppManagementRoleAssignment, error) {
  4837  	var query string
  4838  	if r.query != nil {
  4839  		query = "?" + r.query.Encode()
  4840  	}
  4841  	return r.Paging(ctx, "GET", query, nil, n)
  4842  }
  4843  
  4844  // Get performs GET request for DeviceAndAppManagementRoleAssignment collection
  4845  func (r *DeviceManagementRoleAssignmentsCollectionRequest) Get(ctx context.Context) ([]DeviceAndAppManagementRoleAssignment, error) {
  4846  	return r.GetN(ctx, 0)
  4847  }
  4848  
  4849  // Add performs POST request for DeviceAndAppManagementRoleAssignment collection
  4850  func (r *DeviceManagementRoleAssignmentsCollectionRequest) Add(ctx context.Context, reqObj *DeviceAndAppManagementRoleAssignment) (resObj *DeviceAndAppManagementRoleAssignment, err error) {
  4851  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  4852  	return
  4853  }
  4854  
  4855  // RoleDefinitions returns request builder for RoleDefinition collection
  4856  func (b *DeviceManagementRequestBuilder) RoleDefinitions() *DeviceManagementRoleDefinitionsCollectionRequestBuilder {
  4857  	bb := &DeviceManagementRoleDefinitionsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  4858  	bb.baseURL += "/roleDefinitions"
  4859  	return bb
  4860  }
  4861  
  4862  // DeviceManagementRoleDefinitionsCollectionRequestBuilder is request builder for RoleDefinition collection
  4863  type DeviceManagementRoleDefinitionsCollectionRequestBuilder struct{ BaseRequestBuilder }
  4864  
  4865  // Request returns request for RoleDefinition collection
  4866  func (b *DeviceManagementRoleDefinitionsCollectionRequestBuilder) Request() *DeviceManagementRoleDefinitionsCollectionRequest {
  4867  	return &DeviceManagementRoleDefinitionsCollectionRequest{
  4868  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  4869  	}
  4870  }
  4871  
  4872  // ID returns request builder for RoleDefinition item
  4873  func (b *DeviceManagementRoleDefinitionsCollectionRequestBuilder) ID(id string) *RoleDefinitionRequestBuilder {
  4874  	bb := &RoleDefinitionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  4875  	bb.baseURL += "/" + id
  4876  	return bb
  4877  }
  4878  
  4879  // DeviceManagementRoleDefinitionsCollectionRequest is request for RoleDefinition collection
  4880  type DeviceManagementRoleDefinitionsCollectionRequest struct{ BaseRequest }
  4881  
  4882  // Paging perfoms paging operation for RoleDefinition collection
  4883  func (r *DeviceManagementRoleDefinitionsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]RoleDefinition, error) {
  4884  	req, err := r.NewJSONRequest(method, path, obj)
  4885  	if err != nil {
  4886  		return nil, err
  4887  	}
  4888  	if ctx != nil {
  4889  		req = req.WithContext(ctx)
  4890  	}
  4891  	res, err := r.client.Do(req)
  4892  	if err != nil {
  4893  		return nil, err
  4894  	}
  4895  	var values []RoleDefinition
  4896  	for {
  4897  		if res.StatusCode != http.StatusOK {
  4898  			b, _ := ioutil.ReadAll(res.Body)
  4899  			res.Body.Close()
  4900  			errRes := &ErrorResponse{Response: res}
  4901  			err := jsonx.Unmarshal(b, errRes)
  4902  			if err != nil {
  4903  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  4904  			}
  4905  			return nil, errRes
  4906  		}
  4907  		var (
  4908  			paging Paging
  4909  			value  []RoleDefinition
  4910  		)
  4911  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  4912  		res.Body.Close()
  4913  		if err != nil {
  4914  			return nil, err
  4915  		}
  4916  		err = jsonx.Unmarshal(paging.Value, &value)
  4917  		if err != nil {
  4918  			return nil, err
  4919  		}
  4920  		values = append(values, value...)
  4921  		if n >= 0 {
  4922  			n--
  4923  		}
  4924  		if n == 0 || len(paging.NextLink) == 0 {
  4925  			return values, nil
  4926  		}
  4927  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  4928  		if ctx != nil {
  4929  			req = req.WithContext(ctx)
  4930  		}
  4931  		res, err = r.client.Do(req)
  4932  		if err != nil {
  4933  			return nil, err
  4934  		}
  4935  	}
  4936  }
  4937  
  4938  // GetN performs GET request for RoleDefinition collection, max N pages
  4939  func (r *DeviceManagementRoleDefinitionsCollectionRequest) GetN(ctx context.Context, n int) ([]RoleDefinition, error) {
  4940  	var query string
  4941  	if r.query != nil {
  4942  		query = "?" + r.query.Encode()
  4943  	}
  4944  	return r.Paging(ctx, "GET", query, nil, n)
  4945  }
  4946  
  4947  // Get performs GET request for RoleDefinition collection
  4948  func (r *DeviceManagementRoleDefinitionsCollectionRequest) Get(ctx context.Context) ([]RoleDefinition, error) {
  4949  	return r.GetN(ctx, 0)
  4950  }
  4951  
  4952  // Add performs POST request for RoleDefinition collection
  4953  func (r *DeviceManagementRoleDefinitionsCollectionRequest) Add(ctx context.Context, reqObj *RoleDefinition) (resObj *RoleDefinition, err error) {
  4954  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  4955  	return
  4956  }
  4957  
  4958  // SoftwareUpdateStatusSummary is navigation property
  4959  func (b *DeviceManagementRequestBuilder) SoftwareUpdateStatusSummary() *SoftwareUpdateStatusSummaryRequestBuilder {
  4960  	bb := &SoftwareUpdateStatusSummaryRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  4961  	bb.baseURL += "/softwareUpdateStatusSummary"
  4962  	return bb
  4963  }
  4964  
  4965  // TelecomExpenseManagementPartners returns request builder for TelecomExpenseManagementPartner collection
  4966  func (b *DeviceManagementRequestBuilder) TelecomExpenseManagementPartners() *DeviceManagementTelecomExpenseManagementPartnersCollectionRequestBuilder {
  4967  	bb := &DeviceManagementTelecomExpenseManagementPartnersCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  4968  	bb.baseURL += "/telecomExpenseManagementPartners"
  4969  	return bb
  4970  }
  4971  
  4972  // DeviceManagementTelecomExpenseManagementPartnersCollectionRequestBuilder is request builder for TelecomExpenseManagementPartner collection
  4973  type DeviceManagementTelecomExpenseManagementPartnersCollectionRequestBuilder struct{ BaseRequestBuilder }
  4974  
  4975  // Request returns request for TelecomExpenseManagementPartner collection
  4976  func (b *DeviceManagementTelecomExpenseManagementPartnersCollectionRequestBuilder) Request() *DeviceManagementTelecomExpenseManagementPartnersCollectionRequest {
  4977  	return &DeviceManagementTelecomExpenseManagementPartnersCollectionRequest{
  4978  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  4979  	}
  4980  }
  4981  
  4982  // ID returns request builder for TelecomExpenseManagementPartner item
  4983  func (b *DeviceManagementTelecomExpenseManagementPartnersCollectionRequestBuilder) ID(id string) *TelecomExpenseManagementPartnerRequestBuilder {
  4984  	bb := &TelecomExpenseManagementPartnerRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  4985  	bb.baseURL += "/" + id
  4986  	return bb
  4987  }
  4988  
  4989  // DeviceManagementTelecomExpenseManagementPartnersCollectionRequest is request for TelecomExpenseManagementPartner collection
  4990  type DeviceManagementTelecomExpenseManagementPartnersCollectionRequest struct{ BaseRequest }
  4991  
  4992  // Paging perfoms paging operation for TelecomExpenseManagementPartner collection
  4993  func (r *DeviceManagementTelecomExpenseManagementPartnersCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]TelecomExpenseManagementPartner, error) {
  4994  	req, err := r.NewJSONRequest(method, path, obj)
  4995  	if err != nil {
  4996  		return nil, err
  4997  	}
  4998  	if ctx != nil {
  4999  		req = req.WithContext(ctx)
  5000  	}
  5001  	res, err := r.client.Do(req)
  5002  	if err != nil {
  5003  		return nil, err
  5004  	}
  5005  	var values []TelecomExpenseManagementPartner
  5006  	for {
  5007  		if res.StatusCode != http.StatusOK {
  5008  			b, _ := ioutil.ReadAll(res.Body)
  5009  			res.Body.Close()
  5010  			errRes := &ErrorResponse{Response: res}
  5011  			err := jsonx.Unmarshal(b, errRes)
  5012  			if err != nil {
  5013  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  5014  			}
  5015  			return nil, errRes
  5016  		}
  5017  		var (
  5018  			paging Paging
  5019  			value  []TelecomExpenseManagementPartner
  5020  		)
  5021  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  5022  		res.Body.Close()
  5023  		if err != nil {
  5024  			return nil, err
  5025  		}
  5026  		err = jsonx.Unmarshal(paging.Value, &value)
  5027  		if err != nil {
  5028  			return nil, err
  5029  		}
  5030  		values = append(values, value...)
  5031  		if n >= 0 {
  5032  			n--
  5033  		}
  5034  		if n == 0 || len(paging.NextLink) == 0 {
  5035  			return values, nil
  5036  		}
  5037  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  5038  		if ctx != nil {
  5039  			req = req.WithContext(ctx)
  5040  		}
  5041  		res, err = r.client.Do(req)
  5042  		if err != nil {
  5043  			return nil, err
  5044  		}
  5045  	}
  5046  }
  5047  
  5048  // GetN performs GET request for TelecomExpenseManagementPartner collection, max N pages
  5049  func (r *DeviceManagementTelecomExpenseManagementPartnersCollectionRequest) GetN(ctx context.Context, n int) ([]TelecomExpenseManagementPartner, error) {
  5050  	var query string
  5051  	if r.query != nil {
  5052  		query = "?" + r.query.Encode()
  5053  	}
  5054  	return r.Paging(ctx, "GET", query, nil, n)
  5055  }
  5056  
  5057  // Get performs GET request for TelecomExpenseManagementPartner collection
  5058  func (r *DeviceManagementTelecomExpenseManagementPartnersCollectionRequest) Get(ctx context.Context) ([]TelecomExpenseManagementPartner, error) {
  5059  	return r.GetN(ctx, 0)
  5060  }
  5061  
  5062  // Add performs POST request for TelecomExpenseManagementPartner collection
  5063  func (r *DeviceManagementTelecomExpenseManagementPartnersCollectionRequest) Add(ctx context.Context, reqObj *TelecomExpenseManagementPartner) (resObj *TelecomExpenseManagementPartner, err error) {
  5064  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  5065  	return
  5066  }
  5067  
  5068  // TermsAndConditions returns request builder for TermsAndConditions collection
  5069  func (b *DeviceManagementRequestBuilder) TermsAndConditions() *DeviceManagementTermsAndConditionsCollectionRequestBuilder {
  5070  	bb := &DeviceManagementTermsAndConditionsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  5071  	bb.baseURL += "/termsAndConditions"
  5072  	return bb
  5073  }
  5074  
  5075  // DeviceManagementTermsAndConditionsCollectionRequestBuilder is request builder for TermsAndConditions collection
  5076  type DeviceManagementTermsAndConditionsCollectionRequestBuilder struct{ BaseRequestBuilder }
  5077  
  5078  // Request returns request for TermsAndConditions collection
  5079  func (b *DeviceManagementTermsAndConditionsCollectionRequestBuilder) Request() *DeviceManagementTermsAndConditionsCollectionRequest {
  5080  	return &DeviceManagementTermsAndConditionsCollectionRequest{
  5081  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  5082  	}
  5083  }
  5084  
  5085  // ID returns request builder for TermsAndConditions item
  5086  func (b *DeviceManagementTermsAndConditionsCollectionRequestBuilder) ID(id string) *TermsAndConditionsRequestBuilder {
  5087  	bb := &TermsAndConditionsRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  5088  	bb.baseURL += "/" + id
  5089  	return bb
  5090  }
  5091  
  5092  // DeviceManagementTermsAndConditionsCollectionRequest is request for TermsAndConditions collection
  5093  type DeviceManagementTermsAndConditionsCollectionRequest struct{ BaseRequest }
  5094  
  5095  // Paging perfoms paging operation for TermsAndConditions collection
  5096  func (r *DeviceManagementTermsAndConditionsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]TermsAndConditions, error) {
  5097  	req, err := r.NewJSONRequest(method, path, obj)
  5098  	if err != nil {
  5099  		return nil, err
  5100  	}
  5101  	if ctx != nil {
  5102  		req = req.WithContext(ctx)
  5103  	}
  5104  	res, err := r.client.Do(req)
  5105  	if err != nil {
  5106  		return nil, err
  5107  	}
  5108  	var values []TermsAndConditions
  5109  	for {
  5110  		if res.StatusCode != http.StatusOK {
  5111  			b, _ := ioutil.ReadAll(res.Body)
  5112  			res.Body.Close()
  5113  			errRes := &ErrorResponse{Response: res}
  5114  			err := jsonx.Unmarshal(b, errRes)
  5115  			if err != nil {
  5116  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  5117  			}
  5118  			return nil, errRes
  5119  		}
  5120  		var (
  5121  			paging Paging
  5122  			value  []TermsAndConditions
  5123  		)
  5124  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  5125  		res.Body.Close()
  5126  		if err != nil {
  5127  			return nil, err
  5128  		}
  5129  		err = jsonx.Unmarshal(paging.Value, &value)
  5130  		if err != nil {
  5131  			return nil, err
  5132  		}
  5133  		values = append(values, value...)
  5134  		if n >= 0 {
  5135  			n--
  5136  		}
  5137  		if n == 0 || len(paging.NextLink) == 0 {
  5138  			return values, nil
  5139  		}
  5140  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  5141  		if ctx != nil {
  5142  			req = req.WithContext(ctx)
  5143  		}
  5144  		res, err = r.client.Do(req)
  5145  		if err != nil {
  5146  			return nil, err
  5147  		}
  5148  	}
  5149  }
  5150  
  5151  // GetN performs GET request for TermsAndConditions collection, max N pages
  5152  func (r *DeviceManagementTermsAndConditionsCollectionRequest) GetN(ctx context.Context, n int) ([]TermsAndConditions, error) {
  5153  	var query string
  5154  	if r.query != nil {
  5155  		query = "?" + r.query.Encode()
  5156  	}
  5157  	return r.Paging(ctx, "GET", query, nil, n)
  5158  }
  5159  
  5160  // Get performs GET request for TermsAndConditions collection
  5161  func (r *DeviceManagementTermsAndConditionsCollectionRequest) Get(ctx context.Context) ([]TermsAndConditions, error) {
  5162  	return r.GetN(ctx, 0)
  5163  }
  5164  
  5165  // Add performs POST request for TermsAndConditions collection
  5166  func (r *DeviceManagementTermsAndConditionsCollectionRequest) Add(ctx context.Context, reqObj *TermsAndConditions) (resObj *TermsAndConditions, err error) {
  5167  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  5168  	return
  5169  }
  5170  
  5171  // TroubleshootingEvents returns request builder for DeviceManagementTroubleshootingEvent collection
  5172  func (b *DeviceManagementRequestBuilder) TroubleshootingEvents() *DeviceManagementTroubleshootingEventsCollectionRequestBuilder {
  5173  	bb := &DeviceManagementTroubleshootingEventsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  5174  	bb.baseURL += "/troubleshootingEvents"
  5175  	return bb
  5176  }
  5177  
  5178  // DeviceManagementTroubleshootingEventsCollectionRequestBuilder is request builder for DeviceManagementTroubleshootingEvent collection
  5179  type DeviceManagementTroubleshootingEventsCollectionRequestBuilder struct{ BaseRequestBuilder }
  5180  
  5181  // Request returns request for DeviceManagementTroubleshootingEvent collection
  5182  func (b *DeviceManagementTroubleshootingEventsCollectionRequestBuilder) Request() *DeviceManagementTroubleshootingEventsCollectionRequest {
  5183  	return &DeviceManagementTroubleshootingEventsCollectionRequest{
  5184  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  5185  	}
  5186  }
  5187  
  5188  // ID returns request builder for DeviceManagementTroubleshootingEvent item
  5189  func (b *DeviceManagementTroubleshootingEventsCollectionRequestBuilder) ID(id string) *DeviceManagementTroubleshootingEventRequestBuilder {
  5190  	bb := &DeviceManagementTroubleshootingEventRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  5191  	bb.baseURL += "/" + id
  5192  	return bb
  5193  }
  5194  
  5195  // DeviceManagementTroubleshootingEventsCollectionRequest is request for DeviceManagementTroubleshootingEvent collection
  5196  type DeviceManagementTroubleshootingEventsCollectionRequest struct{ BaseRequest }
  5197  
  5198  // Paging perfoms paging operation for DeviceManagementTroubleshootingEvent collection
  5199  func (r *DeviceManagementTroubleshootingEventsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]DeviceManagementTroubleshootingEvent, error) {
  5200  	req, err := r.NewJSONRequest(method, path, obj)
  5201  	if err != nil {
  5202  		return nil, err
  5203  	}
  5204  	if ctx != nil {
  5205  		req = req.WithContext(ctx)
  5206  	}
  5207  	res, err := r.client.Do(req)
  5208  	if err != nil {
  5209  		return nil, err
  5210  	}
  5211  	var values []DeviceManagementTroubleshootingEvent
  5212  	for {
  5213  		if res.StatusCode != http.StatusOK {
  5214  			b, _ := ioutil.ReadAll(res.Body)
  5215  			res.Body.Close()
  5216  			errRes := &ErrorResponse{Response: res}
  5217  			err := jsonx.Unmarshal(b, errRes)
  5218  			if err != nil {
  5219  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  5220  			}
  5221  			return nil, errRes
  5222  		}
  5223  		var (
  5224  			paging Paging
  5225  			value  []DeviceManagementTroubleshootingEvent
  5226  		)
  5227  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  5228  		res.Body.Close()
  5229  		if err != nil {
  5230  			return nil, err
  5231  		}
  5232  		err = jsonx.Unmarshal(paging.Value, &value)
  5233  		if err != nil {
  5234  			return nil, err
  5235  		}
  5236  		values = append(values, value...)
  5237  		if n >= 0 {
  5238  			n--
  5239  		}
  5240  		if n == 0 || len(paging.NextLink) == 0 {
  5241  			return values, nil
  5242  		}
  5243  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  5244  		if ctx != nil {
  5245  			req = req.WithContext(ctx)
  5246  		}
  5247  		res, err = r.client.Do(req)
  5248  		if err != nil {
  5249  			return nil, err
  5250  		}
  5251  	}
  5252  }
  5253  
  5254  // GetN performs GET request for DeviceManagementTroubleshootingEvent collection, max N pages
  5255  func (r *DeviceManagementTroubleshootingEventsCollectionRequest) GetN(ctx context.Context, n int) ([]DeviceManagementTroubleshootingEvent, error) {
  5256  	var query string
  5257  	if r.query != nil {
  5258  		query = "?" + r.query.Encode()
  5259  	}
  5260  	return r.Paging(ctx, "GET", query, nil, n)
  5261  }
  5262  
  5263  // Get performs GET request for DeviceManagementTroubleshootingEvent collection
  5264  func (r *DeviceManagementTroubleshootingEventsCollectionRequest) Get(ctx context.Context) ([]DeviceManagementTroubleshootingEvent, error) {
  5265  	return r.GetN(ctx, 0)
  5266  }
  5267  
  5268  // Add performs POST request for DeviceManagementTroubleshootingEvent collection
  5269  func (r *DeviceManagementTroubleshootingEventsCollectionRequest) Add(ctx context.Context, reqObj *DeviceManagementTroubleshootingEvent) (resObj *DeviceManagementTroubleshootingEvent, err error) {
  5270  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  5271  	return
  5272  }
  5273  
  5274  // WindowsInformationProtectionAppLearningSummaries returns request builder for WindowsInformationProtectionAppLearningSummary collection
  5275  func (b *DeviceManagementRequestBuilder) WindowsInformationProtectionAppLearningSummaries() *DeviceManagementWindowsInformationProtectionAppLearningSummariesCollectionRequestBuilder {
  5276  	bb := &DeviceManagementWindowsInformationProtectionAppLearningSummariesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  5277  	bb.baseURL += "/windowsInformationProtectionAppLearningSummaries"
  5278  	return bb
  5279  }
  5280  
  5281  // DeviceManagementWindowsInformationProtectionAppLearningSummariesCollectionRequestBuilder is request builder for WindowsInformationProtectionAppLearningSummary collection
  5282  type DeviceManagementWindowsInformationProtectionAppLearningSummariesCollectionRequestBuilder struct{ BaseRequestBuilder }
  5283  
  5284  // Request returns request for WindowsInformationProtectionAppLearningSummary collection
  5285  func (b *DeviceManagementWindowsInformationProtectionAppLearningSummariesCollectionRequestBuilder) Request() *DeviceManagementWindowsInformationProtectionAppLearningSummariesCollectionRequest {
  5286  	return &DeviceManagementWindowsInformationProtectionAppLearningSummariesCollectionRequest{
  5287  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  5288  	}
  5289  }
  5290  
  5291  // ID returns request builder for WindowsInformationProtectionAppLearningSummary item
  5292  func (b *DeviceManagementWindowsInformationProtectionAppLearningSummariesCollectionRequestBuilder) ID(id string) *WindowsInformationProtectionAppLearningSummaryRequestBuilder {
  5293  	bb := &WindowsInformationProtectionAppLearningSummaryRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  5294  	bb.baseURL += "/" + id
  5295  	return bb
  5296  }
  5297  
  5298  // DeviceManagementWindowsInformationProtectionAppLearningSummariesCollectionRequest is request for WindowsInformationProtectionAppLearningSummary collection
  5299  type DeviceManagementWindowsInformationProtectionAppLearningSummariesCollectionRequest struct{ BaseRequest }
  5300  
  5301  // Paging perfoms paging operation for WindowsInformationProtectionAppLearningSummary collection
  5302  func (r *DeviceManagementWindowsInformationProtectionAppLearningSummariesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]WindowsInformationProtectionAppLearningSummary, error) {
  5303  	req, err := r.NewJSONRequest(method, path, obj)
  5304  	if err != nil {
  5305  		return nil, err
  5306  	}
  5307  	if ctx != nil {
  5308  		req = req.WithContext(ctx)
  5309  	}
  5310  	res, err := r.client.Do(req)
  5311  	if err != nil {
  5312  		return nil, err
  5313  	}
  5314  	var values []WindowsInformationProtectionAppLearningSummary
  5315  	for {
  5316  		if res.StatusCode != http.StatusOK {
  5317  			b, _ := ioutil.ReadAll(res.Body)
  5318  			res.Body.Close()
  5319  			errRes := &ErrorResponse{Response: res}
  5320  			err := jsonx.Unmarshal(b, errRes)
  5321  			if err != nil {
  5322  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  5323  			}
  5324  			return nil, errRes
  5325  		}
  5326  		var (
  5327  			paging Paging
  5328  			value  []WindowsInformationProtectionAppLearningSummary
  5329  		)
  5330  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  5331  		res.Body.Close()
  5332  		if err != nil {
  5333  			return nil, err
  5334  		}
  5335  		err = jsonx.Unmarshal(paging.Value, &value)
  5336  		if err != nil {
  5337  			return nil, err
  5338  		}
  5339  		values = append(values, value...)
  5340  		if n >= 0 {
  5341  			n--
  5342  		}
  5343  		if n == 0 || len(paging.NextLink) == 0 {
  5344  			return values, nil
  5345  		}
  5346  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  5347  		if ctx != nil {
  5348  			req = req.WithContext(ctx)
  5349  		}
  5350  		res, err = r.client.Do(req)
  5351  		if err != nil {
  5352  			return nil, err
  5353  		}
  5354  	}
  5355  }
  5356  
  5357  // GetN performs GET request for WindowsInformationProtectionAppLearningSummary collection, max N pages
  5358  func (r *DeviceManagementWindowsInformationProtectionAppLearningSummariesCollectionRequest) GetN(ctx context.Context, n int) ([]WindowsInformationProtectionAppLearningSummary, error) {
  5359  	var query string
  5360  	if r.query != nil {
  5361  		query = "?" + r.query.Encode()
  5362  	}
  5363  	return r.Paging(ctx, "GET", query, nil, n)
  5364  }
  5365  
  5366  // Get performs GET request for WindowsInformationProtectionAppLearningSummary collection
  5367  func (r *DeviceManagementWindowsInformationProtectionAppLearningSummariesCollectionRequest) Get(ctx context.Context) ([]WindowsInformationProtectionAppLearningSummary, error) {
  5368  	return r.GetN(ctx, 0)
  5369  }
  5370  
  5371  // Add performs POST request for WindowsInformationProtectionAppLearningSummary collection
  5372  func (r *DeviceManagementWindowsInformationProtectionAppLearningSummariesCollectionRequest) Add(ctx context.Context, reqObj *WindowsInformationProtectionAppLearningSummary) (resObj *WindowsInformationProtectionAppLearningSummary, err error) {
  5373  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  5374  	return
  5375  }
  5376  
  5377  // WindowsInformationProtectionNetworkLearningSummaries returns request builder for WindowsInformationProtectionNetworkLearningSummary collection
  5378  func (b *DeviceManagementRequestBuilder) WindowsInformationProtectionNetworkLearningSummaries() *DeviceManagementWindowsInformationProtectionNetworkLearningSummariesCollectionRequestBuilder {
  5379  	bb := &DeviceManagementWindowsInformationProtectionNetworkLearningSummariesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  5380  	bb.baseURL += "/windowsInformationProtectionNetworkLearningSummaries"
  5381  	return bb
  5382  }
  5383  
  5384  // DeviceManagementWindowsInformationProtectionNetworkLearningSummariesCollectionRequestBuilder is request builder for WindowsInformationProtectionNetworkLearningSummary collection
  5385  type DeviceManagementWindowsInformationProtectionNetworkLearningSummariesCollectionRequestBuilder struct{ BaseRequestBuilder }
  5386  
  5387  // Request returns request for WindowsInformationProtectionNetworkLearningSummary collection
  5388  func (b *DeviceManagementWindowsInformationProtectionNetworkLearningSummariesCollectionRequestBuilder) Request() *DeviceManagementWindowsInformationProtectionNetworkLearningSummariesCollectionRequest {
  5389  	return &DeviceManagementWindowsInformationProtectionNetworkLearningSummariesCollectionRequest{
  5390  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
  5391  	}
  5392  }
  5393  
  5394  // ID returns request builder for WindowsInformationProtectionNetworkLearningSummary item
  5395  func (b *DeviceManagementWindowsInformationProtectionNetworkLearningSummariesCollectionRequestBuilder) ID(id string) *WindowsInformationProtectionNetworkLearningSummaryRequestBuilder {
  5396  	bb := &WindowsInformationProtectionNetworkLearningSummaryRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
  5397  	bb.baseURL += "/" + id
  5398  	return bb
  5399  }
  5400  
  5401  // DeviceManagementWindowsInformationProtectionNetworkLearningSummariesCollectionRequest is request for WindowsInformationProtectionNetworkLearningSummary collection
  5402  type DeviceManagementWindowsInformationProtectionNetworkLearningSummariesCollectionRequest struct{ BaseRequest }
  5403  
  5404  // Paging perfoms paging operation for WindowsInformationProtectionNetworkLearningSummary collection
  5405  func (r *DeviceManagementWindowsInformationProtectionNetworkLearningSummariesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]WindowsInformationProtectionNetworkLearningSummary, error) {
  5406  	req, err := r.NewJSONRequest(method, path, obj)
  5407  	if err != nil {
  5408  		return nil, err
  5409  	}
  5410  	if ctx != nil {
  5411  		req = req.WithContext(ctx)
  5412  	}
  5413  	res, err := r.client.Do(req)
  5414  	if err != nil {
  5415  		return nil, err
  5416  	}
  5417  	var values []WindowsInformationProtectionNetworkLearningSummary
  5418  	for {
  5419  		if res.StatusCode != http.StatusOK {
  5420  			b, _ := ioutil.ReadAll(res.Body)
  5421  			res.Body.Close()
  5422  			errRes := &ErrorResponse{Response: res}
  5423  			err := jsonx.Unmarshal(b, errRes)
  5424  			if err != nil {
  5425  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
  5426  			}
  5427  			return nil, errRes
  5428  		}
  5429  		var (
  5430  			paging Paging
  5431  			value  []WindowsInformationProtectionNetworkLearningSummary
  5432  		)
  5433  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
  5434  		res.Body.Close()
  5435  		if err != nil {
  5436  			return nil, err
  5437  		}
  5438  		err = jsonx.Unmarshal(paging.Value, &value)
  5439  		if err != nil {
  5440  			return nil, err
  5441  		}
  5442  		values = append(values, value...)
  5443  		if n >= 0 {
  5444  			n--
  5445  		}
  5446  		if n == 0 || len(paging.NextLink) == 0 {
  5447  			return values, nil
  5448  		}
  5449  		req, err = http.NewRequest("GET", paging.NextLink, nil)
  5450  		if ctx != nil {
  5451  			req = req.WithContext(ctx)
  5452  		}
  5453  		res, err = r.client.Do(req)
  5454  		if err != nil {
  5455  			return nil, err
  5456  		}
  5457  	}
  5458  }
  5459  
  5460  // GetN performs GET request for WindowsInformationProtectionNetworkLearningSummary collection, max N pages
  5461  func (r *DeviceManagementWindowsInformationProtectionNetworkLearningSummariesCollectionRequest) GetN(ctx context.Context, n int) ([]WindowsInformationProtectionNetworkLearningSummary, error) {
  5462  	var query string
  5463  	if r.query != nil {
  5464  		query = "?" + r.query.Encode()
  5465  	}
  5466  	return r.Paging(ctx, "GET", query, nil, n)
  5467  }
  5468  
  5469  // Get performs GET request for WindowsInformationProtectionNetworkLearningSummary collection
  5470  func (r *DeviceManagementWindowsInformationProtectionNetworkLearningSummariesCollectionRequest) Get(ctx context.Context) ([]WindowsInformationProtectionNetworkLearningSummary, error) {
  5471  	return r.GetN(ctx, 0)
  5472  }
  5473  
  5474  // Add performs POST request for WindowsInformationProtectionNetworkLearningSummary collection
  5475  func (r *DeviceManagementWindowsInformationProtectionNetworkLearningSummariesCollectionRequest) Add(ctx context.Context, reqObj *WindowsInformationProtectionNetworkLearningSummary) (resObj *WindowsInformationProtectionNetworkLearningSummary, err error) {
  5476  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
  5477  	return
  5478  }