projectmanager-sdk
Version:
Software development kit for the ProjectManager.com API. for TypeScript
224 lines (223 loc) • 8.28 kB
TypeScript
/**
* 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;
};