"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.MessageItemRequestBuilderUriTemplate = exports.MessageItemRequestBuilderRequestsMetadata = exports.MessageItemRequestBuilderNavigationMetadata = void 0;
/* tslint:disable */
/* eslint-disable */
// Generated by Microsoft Kiota
const models_1 = require("@microsoft/msgraph-beta-sdk/models/");
const oDataErrors_1 = require("@microsoft/msgraph-beta-sdk/models/oDataErrors/");
const attachments_1 = require("./attachments/");
const copy_1 = require("./copy/");
const createForward_1 = require("./createForward/");
const createReply_1 = require("./createReply/");
const createReplyAll_1 = require("./createReplyAll/");
const extensions_1 = require("./extensions/");
const forward_1 = require("./forward/");
const markAsJunk_1 = require("./markAsJunk/");
const markAsNotJunk_1 = require("./markAsNotJunk/");
const mentions_1 = require("./mentions/");
const move_1 = require("./move/");
const reply_1 = require("./reply/");
const replyAll_1 = require("./replyAll/");
const send_1 = require("./send/");
const unsubscribe_1 = require("./unsubscribe/");
const value_1 = require("./value/");
/**
 * Mapper for query parameters from symbol name to serialization name represented as a constant.
 */
const MessageItemRequestBuilderGetQueryParametersMapper = {
    "expand": "%24expand",
    "select": "%24select",
};
/**
 * Metadata for all the navigation properties in the request builder.
 */
exports.MessageItemRequestBuilderNavigationMetadata = {
    attachments: {
        uriTemplate: attachments_1.AttachmentsRequestBuilderUriTemplate,
        requestsMetadata: attachments_1.AttachmentsRequestBuilderRequestsMetadata,
        navigationMetadata: attachments_1.AttachmentsRequestBuilderNavigationMetadata,
    },
    content: {
        uriTemplate: value_1.ContentRequestBuilderUriTemplate,
        requestsMetadata: value_1.ContentRequestBuilderRequestsMetadata,
    },
    copy: {
        uriTemplate: copy_1.CopyRequestBuilderUriTemplate,
        requestsMetadata: copy_1.CopyRequestBuilderRequestsMetadata,
    },
    createForward: {
        uriTemplate: createForward_1.CreateForwardRequestBuilderUriTemplate,
        requestsMetadata: createForward_1.CreateForwardRequestBuilderRequestsMetadata,
    },
    createReply: {
        uriTemplate: createReply_1.CreateReplyRequestBuilderUriTemplate,
        requestsMetadata: createReply_1.CreateReplyRequestBuilderRequestsMetadata,
    },
    createReplyAll: {
        uriTemplate: createReplyAll_1.CreateReplyAllRequestBuilderUriTemplate,
        requestsMetadata: createReplyAll_1.CreateReplyAllRequestBuilderRequestsMetadata,
    },
    extensions: {
        uriTemplate: extensions_1.ExtensionsRequestBuilderUriTemplate,
        requestsMetadata: extensions_1.ExtensionsRequestBuilderRequestsMetadata,
        navigationMetadata: extensions_1.ExtensionsRequestBuilderNavigationMetadata,
    },
    forward: {
        uriTemplate: forward_1.ForwardRequestBuilderUriTemplate,
        requestsMetadata: forward_1.ForwardRequestBuilderRequestsMetadata,
    },
    markAsJunk: {
        uriTemplate: markAsJunk_1.MarkAsJunkRequestBuilderUriTemplate,
        requestsMetadata: markAsJunk_1.MarkAsJunkRequestBuilderRequestsMetadata,
    },
    markAsNotJunk: {
        uriTemplate: markAsNotJunk_1.MarkAsNotJunkRequestBuilderUriTemplate,
        requestsMetadata: markAsNotJunk_1.MarkAsNotJunkRequestBuilderRequestsMetadata,
    },
    mentions: {
        uriTemplate: mentions_1.MentionsRequestBuilderUriTemplate,
        requestsMetadata: mentions_1.MentionsRequestBuilderRequestsMetadata,
        navigationMetadata: mentions_1.MentionsRequestBuilderNavigationMetadata,
    },
    move: {
        uriTemplate: move_1.MoveRequestBuilderUriTemplate,
        requestsMetadata: move_1.MoveRequestBuilderRequestsMetadata,
    },
    reply: {
        uriTemplate: reply_1.ReplyRequestBuilderUriTemplate,
        requestsMetadata: reply_1.ReplyRequestBuilderRequestsMetadata,
    },
    replyAll: {
        uriTemplate: replyAll_1.ReplyAllRequestBuilderUriTemplate,
        requestsMetadata: replyAll_1.ReplyAllRequestBuilderRequestsMetadata,
    },
    send: {
        uriTemplate: send_1.SendRequestBuilderUriTemplate,
        requestsMetadata: send_1.SendRequestBuilderRequestsMetadata,
    },
    unsubscribe: {
        uriTemplate: unsubscribe_1.UnsubscribeRequestBuilderUriTemplate,
        requestsMetadata: unsubscribe_1.UnsubscribeRequestBuilderRequestsMetadata,
    },
};
/**
 * Metadata for all the requests in the request builder.
 */
exports.MessageItemRequestBuilderRequestsMetadata = {
    delete: {
        responseBodyContentType: "application/json",
        errorMappings: {
            _4XX: oDataErrors_1.createODataErrorFromDiscriminatorValue,
            _5XX: oDataErrors_1.createODataErrorFromDiscriminatorValue,
        },
        adapterMethodName: "sendNoResponseContentAsync",
    },
    get: {
        responseBodyContentType: "application/json",
        errorMappings: {
            _4XX: oDataErrors_1.createODataErrorFromDiscriminatorValue,
            _5XX: oDataErrors_1.createODataErrorFromDiscriminatorValue,
        },
        adapterMethodName: "sendAsync",
        responseBodyFactory: models_1.createMessageFromDiscriminatorValue,
        queryParametersMapper: MessageItemRequestBuilderGetQueryParametersMapper,
    },
    patch: {
        responseBodyContentType: "application/json",
        errorMappings: {
            _4XX: oDataErrors_1.createODataErrorFromDiscriminatorValue,
            _5XX: oDataErrors_1.createODataErrorFromDiscriminatorValue,
        },
        adapterMethodName: "sendAsync",
        responseBodyFactory: models_1.createMessageFromDiscriminatorValue,
        requestBodyContentType: "application/json",
        requestBodySerializer: models_1.serializeMessage,
        requestInformationContentSetMethod: "setContentFromParsable",
    },
};
/**
 * Uri template for the request builder.
 */
exports.MessageItemRequestBuilderUriTemplate = "{+baseurl}/users/{user%2Did}/messages/{message%2Did}{?includeHiddenMessages*,%24select,%24expand}";
/* tslint:enable */
/* eslint-enable */
