// Code generated by msgraph-generate.go DO NOT EDIT.

package msgraph

import "context"

// AppCatalogsRequestBuilder is request builder for AppCatalogs
type AppCatalogsRequestBuilder struct{ BaseRequestBuilder }

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

// AppCatalogsRequest is request for AppCatalogs
type AppCatalogsRequest struct{ BaseRequest }

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

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

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

// AppLogCollectionRequestObjectRequestBuilder is request builder for AppLogCollectionRequestObject
type AppLogCollectionRequestObjectRequestBuilder struct{ BaseRequestBuilder }

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

// AppLogCollectionRequestObjectRequest is request for AppLogCollectionRequestObject
type AppLogCollectionRequestObjectRequest struct{ BaseRequest }

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

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

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

// AppRoleAssignmentRequestBuilder is request builder for AppRoleAssignment
type AppRoleAssignmentRequestBuilder struct{ BaseRequestBuilder }

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

// AppRoleAssignmentRequest is request for AppRoleAssignment
type AppRoleAssignmentRequest struct{ BaseRequest }

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

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

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

// AppVulnerabilityManagedDeviceRequestBuilder is request builder for AppVulnerabilityManagedDevice
type AppVulnerabilityManagedDeviceRequestBuilder struct{ BaseRequestBuilder }

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

// AppVulnerabilityManagedDeviceRequest is request for AppVulnerabilityManagedDevice
type AppVulnerabilityManagedDeviceRequest struct{ BaseRequest }

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

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

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

// AppVulnerabilityMobileAppRequestBuilder is request builder for AppVulnerabilityMobileApp
type AppVulnerabilityMobileAppRequestBuilder struct{ BaseRequestBuilder }

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

// AppVulnerabilityMobileAppRequest is request for AppVulnerabilityMobileApp
type AppVulnerabilityMobileAppRequest struct{ BaseRequest }

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

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

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

// AppVulnerabilityTaskRequestBuilder is request builder for AppVulnerabilityTask
type AppVulnerabilityTaskRequestBuilder struct{ BaseRequestBuilder }

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

// AppVulnerabilityTaskRequest is request for AppVulnerabilityTask
type AppVulnerabilityTaskRequest struct{ BaseRequest }

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

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

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

//
type AppLogCollectionRequestObjectCreateDownloadURLRequestBuilder struct{ BaseRequestBuilder }

// CreateDownloadURL action undocumented
func (b *AppLogCollectionRequestObjectRequestBuilder) CreateDownloadURL(reqObj *AppLogCollectionRequestObjectCreateDownloadURLRequestParameter) *AppLogCollectionRequestObjectCreateDownloadURLRequestBuilder {
	bb := &AppLogCollectionRequestObjectCreateDownloadURLRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
	bb.BaseRequestBuilder.baseURL += "/createDownloadUrl"
	bb.BaseRequestBuilder.requestObject = reqObj
	return bb
}

//
type AppLogCollectionRequestObjectCreateDownloadURLRequest struct{ BaseRequest }

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

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