UNPKG

projectmanager-sdk

Version:

Software development kit for the ProjectManager.com API. for TypeScript

224 lines (223 loc) 8.28 kB
/** * ProjectManager API for TypeScript * * (c) ProjectManager.com, Inc. * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. * * @author ProjectManager.com <support@projectmanager.com> * @copyright ProjectManager.com, Inc. * @link https://github.com/projectmgr/projectmanager-sdk-typescript */ import { ProjectFolderDto } from "../index.js"; import { ProjectStatusDto } from "../index.js"; import { ProjectPriorityDto } from "../index.js"; import { ProjectChargeCodeDto } from "../index.js"; import { ProjectManagerDto } from "../index.js"; import { ProjectCustomerDto } from "../index.js"; import { ProjectMemberDto } from "../index.js"; import { ProjectFieldValueDto } from "../index.js"; import { ProjectFileDto } from "../index.js"; import { ProjectWorkingDaysDto } from "../index.js"; /** * A Project is a collection of Tasks that contributes towards a goal. Within a Project, Tasks * represent individual items of work that team members must complete. The sum total of Tasks * within a Project represents the work to be completed for that Project. */ export type ProjectDto = { /** * The unique identifier of the Project. This value is set by the system and cannot * be set with a CreateProject or changed with an UpdateProject call. */ id: string; /** * The name of the Project. */ name: string; /** * An optional description of the Project */ description: string | null; /** * A shortened name that will be used when reporting on Projects. This short * name can be edited in the Project Settings page within the application * and can be any text you wish. */ shortCode: string; /** * A short identifier that uniquely identifies this Project within your Workspace * using a single letter followed by a number. This code can be used for APIs * that accept Project unique identifiers. * * You can observe the short ID within the application by observing the URL of * the page you visit when you click on this project. The page's URL will appear * in the form `https://pm.app.projectmanager.com/project/board/D16` - in this * example, the `ShortId` is `D16`. * * This code is assigned on creation and cannot be changed. */ shortId: string; /** * If this Project is grouped within a ProjectFolder, this contains the ProjectFolder information. */ folder: ProjectFolderDto | null; /** * The ProjectStatus chosen for this Project. */ status: ProjectStatusDto; /** * The earliest planned or actual start date of tasks on the project. * * This field is calculated automatically and cannot be changed. */ startDate: string | null; /** * The latest planned or actual finish date of tasks on the project. * * This field is calculated automatically and cannot be changed. */ endDate: string | null; /** * The target planned completion date for this Project, or null if one has * not been selected. This value can be updated in the Project Settings * page or the Portfolio Project page within the application. */ targetDate: string | null; /** * A calculated field of the estimated date on which this Project is * expected to start. * * This date is calculated based on the earliest estimated start date for * a Task within this Project. This value is null if no Tasks have an * estimated start date within this Project. */ plannedStartDate: string | null; /** * A calculated field of the estimated date on which this Project is * expected to finish. * * This date is calculated based on the latest planned finish date for a * Task within this Project. This value is null if no Tasks have an * estimated finish date within this Project. */ plannedFinishDate: string | null; /** * A calculated field of the actual date on which this Project started. * * This date is calculated based on the earliest actual start date for a * Task within this Project. This value is null if no Tasks have an actual * start date within this Project. */ actualStartDate: string | null; /** * A calculated field of the actual date on which this Project finished. * * This date is calculated based on the latest actual finish date for a * Task within this Project. This value is null if no Tasks have an * actual finish date within this Project. */ actualFinishDate: string | null; /** * The ProjectPriority level of this Project, if defined. */ priority: ProjectPriorityDto; /** * The ChargeCode of this Project, if defined. */ chargeCode: ProjectChargeCodeDto | null; /** * Information about the manager of this project, if one has been assigned. */ manager: ProjectManagerDto | null; /** * Information about the manager of this project, if one has been specified. */ customer: ProjectCustomerDto | null; /** * The proposed budget for this Project. */ budget: number | null; /** * The default hourly rate for work on this Project. This rate will be used * if an assignee working on this Project does not have an hourly rate configured * in their profile. */ hourlyRate: number | null; /** * Contains an optional status update for Projects that can be used to summarize * the status of multiple Projects at a glance. * * You can edit the StatusUpdate field on the Portfolio page of the application. */ statusUpdate: string | null; /** * The timestamp in UTC when the Project was most recently modified. * * This field is automatically determined by the system when this Project is modified * and cannot be directly changed by the user. */ modifyDate: string; /** * The timestamp in UTC when the Project was created. * * This field is automatically determined by the system when this Project is created * and cannot be changed by the user. */ createDate: string; /** * True if this Project is a template that will be reused as a framework * for future Projects. */ isTemplate: boolean; /** * True if this Project is marked as favorite for current user */ favorite: boolean; /** * The TemplateId that this project was created from. * Will be null if no template was selected at project creation. */ creationTemplateId: string | null; /** * The members of the project */ members: ProjectMemberDto[] | null; /** * Project fields array with values */ fieldValues: ProjectFieldValueDto[] | null; /** * The list of files associated with this Project, if any. * * This field will be present when you fetch a single object. * When you query for multiple objects, this field is not included in results by default. * To expand this field, specify the name of this field in the `$expand` parameter. */ files: ProjectFileDto[] | null; /** * The percentage of the project tasks completed */ percentComplete: number | null; /** * True if allow actual dates to update planned dates */ updatePlannedWithActual: boolean; /** * An optional external reference identifier for this Project. * This value can be used to link the Project to records in external systems, * such as ERP, CRM, or other integrations. */ externalReferenceId: string | null; /** * Represents the unique identifier of the owner associated with the Project. * This may be used to identify the user or entity responsible for the Project. */ ownerId: string | null; /** * Represents the configuration of working days for the project, indicating which days of the week * are considered as working days. * This allows for customization of scheduling and availability based on the project's requirements. */ workingDays: ProjectWorkingDaysDto; };