// Code generated by Microsoft Kiota - DO NOT EDIT.
// Changes may cause incorrect behavior and will be lost if the code is regenerated.

package education

import (
    "context"
    i2ae4187f7daee263371cb1c977df639813ab50ffa529013b7437480d1ec0158f "github.com/microsoft/kiota-abstractions-go"
    ia572726a95efa92ddd544552cd950653dc691023836923576b2f4bf716cf204a "github.com/microsoftgraph/msgraph-sdk-go/models/odataerrors"
)

// ClassesItemGetRecentlyModifiedSubmissionsRequestBuilder provides operations to call the getRecentlyModifiedSubmissions method.
type ClassesItemGetRecentlyModifiedSubmissionsRequestBuilder struct {
    i2ae4187f7daee263371cb1c977df639813ab50ffa529013b7437480d1ec0158f.BaseRequestBuilder
}
// ClassesItemGetRecentlyModifiedSubmissionsRequestBuilderGetQueryParameters retrieve submissions modified in the previous seven days. Only teachers and applications with application permissions can perform this operation. A submission object represents a student's work for an assignment. Resources associated with the submission represent their work. A teacher or application with application permissions has full access to all submission objects. The grade and feedback from a teacher are part of the educationOutcome associated with this object. Only teachers or applications with application permissions can add or change grades and feedback. Students can't see the grade or feedback until the assignment is released.
type ClassesItemGetRecentlyModifiedSubmissionsRequestBuilderGetQueryParameters struct {
    // Include count of items
    Count *bool "uriparametername:\"%24count\""
    // Expand related entities
    Expand []string "uriparametername:\"%24expand\""
    // Filter items by property values
    Filter *string "uriparametername:\"%24filter\""
    // Order items by property values
    Orderby []string "uriparametername:\"%24orderby\""
    // Search items by search phrases
    Search *string "uriparametername:\"%24search\""
    // Select properties to be returned
    Select []string "uriparametername:\"%24select\""
    // Skip the first n items
    Skip *int32 "uriparametername:\"%24skip\""
    // Show only the first n items
    Top *int32 "uriparametername:\"%24top\""
}
// ClassesItemGetRecentlyModifiedSubmissionsRequestBuilderGetRequestConfiguration configuration for the request such as headers, query parameters, and middleware options.
type ClassesItemGetRecentlyModifiedSubmissionsRequestBuilderGetRequestConfiguration struct {
    // Request headers
    Headers *i2ae4187f7daee263371cb1c977df639813ab50ffa529013b7437480d1ec0158f.RequestHeaders
    // Request options
    Options []i2ae4187f7daee263371cb1c977df639813ab50ffa529013b7437480d1ec0158f.RequestOption
    // Request query parameters
    QueryParameters *ClassesItemGetRecentlyModifiedSubmissionsRequestBuilderGetQueryParameters
}
// NewClassesItemGetRecentlyModifiedSubmissionsRequestBuilderInternal instantiates a new ClassesItemGetRecentlyModifiedSubmissionsRequestBuilder and sets the default values.
func NewClassesItemGetRecentlyModifiedSubmissionsRequestBuilderInternal(pathParameters map[string]string, requestAdapter i2ae4187f7daee263371cb1c977df639813ab50ffa529013b7437480d1ec0158f.RequestAdapter)(*ClassesItemGetRecentlyModifiedSubmissionsRequestBuilder) {
    m := &ClassesItemGetRecentlyModifiedSubmissionsRequestBuilder{
        BaseRequestBuilder: *i2ae4187f7daee263371cb1c977df639813ab50ffa529013b7437480d1ec0158f.NewBaseRequestBuilder(requestAdapter, "{+baseurl}/education/classes/{educationClass%2Did}/getRecentlyModifiedSubmissions(){?%24count,%24expand,%24filter,%24orderby,%24search,%24select,%24skip,%24top}", pathParameters),
    }
    return m
}
// NewClassesItemGetRecentlyModifiedSubmissionsRequestBuilder instantiates a new ClassesItemGetRecentlyModifiedSubmissionsRequestBuilder and sets the default values.
func NewClassesItemGetRecentlyModifiedSubmissionsRequestBuilder(rawUrl string, requestAdapter i2ae4187f7daee263371cb1c977df639813ab50ffa529013b7437480d1ec0158f.RequestAdapter)(*ClassesItemGetRecentlyModifiedSubmissionsRequestBuilder) {
    urlParams := make(map[string]string)
    urlParams["request-raw-url"] = rawUrl
    return NewClassesItemGetRecentlyModifiedSubmissionsRequestBuilderInternal(urlParams, requestAdapter)
}
// Get retrieve submissions modified in the previous seven days. Only teachers and applications with application permissions can perform this operation. A submission object represents a student's work for an assignment. Resources associated with the submission represent their work. A teacher or application with application permissions has full access to all submission objects. The grade and feedback from a teacher are part of the educationOutcome associated with this object. Only teachers or applications with application permissions can add or change grades and feedback. Students can't see the grade or feedback until the assignment is released.
// Deprecated: This method is obsolete. Use GetAsGetRecentlyModifiedSubmissionsGetResponse instead.
// returns a ClassesItemGetRecentlyModifiedSubmissionsResponseable when successful
// returns a ODataError error when the service returns a 4XX or 5XX status code
// [Find more info here]
// 
// [Find more info here]: https://learn.microsoft.com/graph/api/educationclass-getrecentlymodifiedsubmissions?view=graph-rest-1.0
func (m *ClassesItemGetRecentlyModifiedSubmissionsRequestBuilder) Get(ctx context.Context, requestConfiguration *ClassesItemGetRecentlyModifiedSubmissionsRequestBuilderGetRequestConfiguration)(ClassesItemGetRecentlyModifiedSubmissionsResponseable, error) {
    requestInfo, err := m.ToGetRequestInformation(ctx, requestConfiguration);
    if err != nil {
        return nil, err
    }
    errorMapping := i2ae4187f7daee263371cb1c977df639813ab50ffa529013b7437480d1ec0158f.ErrorMappings {
        "XXX": ia572726a95efa92ddd544552cd950653dc691023836923576b2f4bf716cf204a.CreateODataErrorFromDiscriminatorValue,
    }
    res, err := m.BaseRequestBuilder.RequestAdapter.Send(ctx, requestInfo, CreateClassesItemGetRecentlyModifiedSubmissionsResponseFromDiscriminatorValue, errorMapping)
    if err != nil {
        return nil, err
    }
    if res == nil {
        return nil, nil
    }
    return res.(ClassesItemGetRecentlyModifiedSubmissionsResponseable), nil
}
// GetAsGetRecentlyModifiedSubmissionsGetResponse retrieve submissions modified in the previous seven days. Only teachers and applications with application permissions can perform this operation. A submission object represents a student's work for an assignment. Resources associated with the submission represent their work. A teacher or application with application permissions has full access to all submission objects. The grade and feedback from a teacher are part of the educationOutcome associated with this object. Only teachers or applications with application permissions can add or change grades and feedback. Students can't see the grade or feedback until the assignment is released.
// returns a ClassesItemGetRecentlyModifiedSubmissionsGetResponseable when successful
// returns a ODataError error when the service returns a 4XX or 5XX status code
// [Find more info here]
// 
// [Find more info here]: https://learn.microsoft.com/graph/api/educationclass-getrecentlymodifiedsubmissions?view=graph-rest-1.0
func (m *ClassesItemGetRecentlyModifiedSubmissionsRequestBuilder) GetAsGetRecentlyModifiedSubmissionsGetResponse(ctx context.Context, requestConfiguration *ClassesItemGetRecentlyModifiedSubmissionsRequestBuilderGetRequestConfiguration)(ClassesItemGetRecentlyModifiedSubmissionsGetResponseable, error) {
    requestInfo, err := m.ToGetRequestInformation(ctx, requestConfiguration);
    if err != nil {
        return nil, err
    }
    errorMapping := i2ae4187f7daee263371cb1c977df639813ab50ffa529013b7437480d1ec0158f.ErrorMappings {
        "XXX": ia572726a95efa92ddd544552cd950653dc691023836923576b2f4bf716cf204a.CreateODataErrorFromDiscriminatorValue,
    }
    res, err := m.BaseRequestBuilder.RequestAdapter.Send(ctx, requestInfo, CreateClassesItemGetRecentlyModifiedSubmissionsGetResponseFromDiscriminatorValue, errorMapping)
    if err != nil {
        return nil, err
    }
    if res == nil {
        return nil, nil
    }
    return res.(ClassesItemGetRecentlyModifiedSubmissionsGetResponseable), nil
}
// ToGetRequestInformation retrieve submissions modified in the previous seven days. Only teachers and applications with application permissions can perform this operation. A submission object represents a student's work for an assignment. Resources associated with the submission represent their work. A teacher or application with application permissions has full access to all submission objects. The grade and feedback from a teacher are part of the educationOutcome associated with this object. Only teachers or applications with application permissions can add or change grades and feedback. Students can't see the grade or feedback until the assignment is released.
// returns a *RequestInformation when successful
func (m *ClassesItemGetRecentlyModifiedSubmissionsRequestBuilder) ToGetRequestInformation(ctx context.Context, requestConfiguration *ClassesItemGetRecentlyModifiedSubmissionsRequestBuilderGetRequestConfiguration)(*i2ae4187f7daee263371cb1c977df639813ab50ffa529013b7437480d1ec0158f.RequestInformation, error) {
    requestInfo := i2ae4187f7daee263371cb1c977df639813ab50ffa529013b7437480d1ec0158f.NewRequestInformationWithMethodAndUrlTemplateAndPathParameters(i2ae4187f7daee263371cb1c977df639813ab50ffa529013b7437480d1ec0158f.GET, m.BaseRequestBuilder.UrlTemplate, m.BaseRequestBuilder.PathParameters)
    if requestConfiguration != nil {
        if requestConfiguration.QueryParameters != nil {
            requestInfo.AddQueryParameters(*(requestConfiguration.QueryParameters))
        }
        requestInfo.Headers.AddAll(requestConfiguration.Headers)
        requestInfo.AddRequestOptions(requestConfiguration.Options)
    }
    requestInfo.Headers.TryAdd("Accept", "application/json")
    return requestInfo, nil
}
// WithUrl returns a request builder with the provided arbitrary URL. Using this method means any other path or query parameters are ignored.
// returns a *ClassesItemGetRecentlyModifiedSubmissionsRequestBuilder when successful
func (m *ClassesItemGetRecentlyModifiedSubmissionsRequestBuilder) WithUrl(rawUrl string)(*ClassesItemGetRecentlyModifiedSubmissionsRequestBuilder) {
    return NewClassesItemGetRecentlyModifiedSubmissionsRequestBuilder(rawUrl, m.BaseRequestBuilder.RequestAdapter);
}
