"use strict";
/*
 * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
 */
Object.defineProperty(exports, "__esModule", { value: true });
exports.Ticketing = void 0;
const ticketingCreateTicket_js_1 = require("../funcs/ticketingCreateTicket.js");
const ticketingDownloadTicketingAttachment_js_1 = require("../funcs/ticketingDownloadTicketingAttachment.js");
const ticketingGetAttachment_js_1 = require("../funcs/ticketingGetAttachment.js");
const ticketingGetComment_js_1 = require("../funcs/ticketingGetComment.js");
const ticketingGetProject_js_1 = require("../funcs/ticketingGetProject.js");
const ticketingGetProjectComponent_js_1 = require("../funcs/ticketingGetProjectComponent.js");
const ticketingGetTicket_js_1 = require("../funcs/ticketingGetTicket.js");
const ticketingGetTicketType_js_1 = require("../funcs/ticketingGetTicketType.js");
const ticketingGetUser_js_1 = require("../funcs/ticketingGetUser.js");
const ticketingListAttachments_js_1 = require("../funcs/ticketingListAttachments.js");
const ticketingListComments_js_1 = require("../funcs/ticketingListComments.js");
const ticketingListProjectComponents_js_1 = require("../funcs/ticketingListProjectComponents.js");
const ticketingListProjects_js_1 = require("../funcs/ticketingListProjects.js");
const ticketingListProjectTicketTypes_js_1 = require("../funcs/ticketingListProjectTicketTypes.js");
const ticketingListTickets_js_1 = require("../funcs/ticketingListTickets.js");
const ticketingListTicketStatuses_js_1 = require("../funcs/ticketingListTicketStatuses.js");
const ticketingListTicketTypes_js_1 = require("../funcs/ticketingListTicketTypes.js");
const ticketingListUsers_js_1 = require("../funcs/ticketingListUsers.js");
const ticketingUpdateTicket_js_1 = require("../funcs/ticketingUpdateTicket.js");
const sdks_js_1 = require("../lib/sdks.js");
const operations_js_1 = require("../sdk/types/operations.js");
const fp_js_1 = require("./types/fp.js");
class Ticketing extends sdks_js_1.ClientSDK {
    /**
     * Create Ticket
     *
     * @remarks
     * Create a new ticket record.
     */
    async createTicket(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, ticketingCreateTicket_js_1.ticketingCreateTicket)(this, request, options));
    }
    /**
     * Download Attachment
     *
     * @remarks
     * Download the attachment file from a ticket.
     */
    async downloadTicketingAttachment(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, ticketingDownloadTicketingAttachment_js_1.ticketingDownloadTicketingAttachment)(this, request, options));
    }
    /**
     * Get Attachment
     *
     * @remarks
     * Retrieve the details of a single attachment for a ticket.
     */
    async getAttachment(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, ticketingGetAttachment_js_1.ticketingGetAttachment)(this, request, options));
    }
    /**
     * Get Comment
     *
     * @remarks
     * Retrieve a single comment by its identifier for a ticket.
     */
    async getComment(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, ticketingGetComment_js_1.ticketingGetComment)(this, request, options));
    }
    /**
     * Get Project
     *
     * @remarks
     * Retrieve a single project by its identifier.
     */
    async getProject(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, ticketingGetProject_js_1.ticketingGetProject)(this, request, options));
    }
    /**
     * Get Project Component
     *
     * @remarks
     * Retrieve a single project component by its identifier.
     */
    async getProjectComponent(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, ticketingGetProjectComponent_js_1.ticketingGetProjectComponent)(this, request, options));
    }
    /**
     * Get Ticket
     *
     * @remarks
     * Retrieve a single ticket by its identifier.
     */
    async getTicket(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, ticketingGetTicket_js_1.ticketingGetTicket)(this, request, options));
    }
    /**
     * Get Ticket Type
     *
     * @remarks
     * Retrieve a single ticket type by its identifier.
     */
    async getTicketType(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, ticketingGetTicketType_js_1.ticketingGetTicketType)(this, request, options));
    }
    /**
     * Get User
     *
     * @remarks
     * Retrieve a single user by their identifier.
     */
    async getUser(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, ticketingGetUser_js_1.ticketingGetUser)(this, request, options));
    }
    /**
     * List Attachments
     *
     * @remarks
     * Retrieve a paginated list of attachment details for a ticket.
     */
    async listAttachments(request, options) {
        return (0, operations_js_1.unwrapResultIterator)((0, ticketingListAttachments_js_1.ticketingListAttachments)(this, request, options));
    }
    /**
     * List Comments
     *
     * @remarks
     * Retrieve a paginated list of comments for a ticket.
     */
    async listComments(request, options) {
        return (0, operations_js_1.unwrapResultIterator)((0, ticketingListComments_js_1.ticketingListComments)(this, request, options));
    }
    /**
     * List Project Components
     *
     * @remarks
     * Retrieve a paginated list of project components.
     */
    async listProjectComponents(request, options) {
        return (0, operations_js_1.unwrapResultIterator)((0, ticketingListProjectComponents_js_1.ticketingListProjectComponents)(this, request, options));
    }
    /**
     * List Project Ticket Types
     *
     * @remarks
     * Retrieve a paginated list of ticket types for a project.
     */
    async listProjectTicketTypes(request, options) {
        return (0, operations_js_1.unwrapResultIterator)((0, ticketingListProjectTicketTypes_js_1.ticketingListProjectTicketTypes)(this, request, options));
    }
    /**
     * List Projects
     *
     * @remarks
     * Retrieve a paginated list of projects.
     */
    async listProjects(request, options) {
        return (0, operations_js_1.unwrapResultIterator)((0, ticketingListProjects_js_1.ticketingListProjects)(this, request, options));
    }
    /**
     * List Ticket Statuses
     *
     * @remarks
     * Retrieve a paginated list of statuses for a ticket.
     */
    async listTicketStatuses(request, options) {
        return (0, operations_js_1.unwrapResultIterator)((0, ticketingListTicketStatuses_js_1.ticketingListTicketStatuses)(this, request, options));
    }
    /**
     * List Ticket Types
     *
     * @remarks
     * Retrieve a paginated list of all ticket types.
     */
    async listTicketTypes(request, options) {
        return (0, operations_js_1.unwrapResultIterator)((0, ticketingListTicketTypes_js_1.ticketingListTicketTypes)(this, request, options));
    }
    /**
     * List Tickets
     *
     * @remarks
     * Retrieve a paginated list of tickets.
     */
    async listTickets(request, options) {
        return (0, operations_js_1.unwrapResultIterator)((0, ticketingListTickets_js_1.ticketingListTickets)(this, request, options));
    }
    /**
     * List Users
     *
     * @remarks
     * Retrieve a paginated list of users.
     */
    async listUsers(request, options) {
        return (0, operations_js_1.unwrapResultIterator)((0, ticketingListUsers_js_1.ticketingListUsers)(this, request, options));
    }
    /**
     * Update Ticket
     *
     * @remarks
     * Update an existing ticket record by its identifier.
     */
    async updateTicket(request, options) {
        return (0, fp_js_1.unwrapAsync)((0, ticketingUpdateTicket_js_1.ticketingUpdateTicket)(this, request, options));
    }
}
exports.Ticketing = Ticketing;
//# sourceMappingURL=ticketing.js.map