UNPKG

projectmanager-sdk

Version:

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

150 lines (149 loc) 5.69 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 { ProjectCreateAccessDto } from "../index.js"; import { TaskStatusCreateDto } 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. * * Fields that cannot be selected during a CreateProject API call are not visible on this * data model. */ export type ProjectCreateDto = { /** * The name of the Project. */ name: string; /** * An optional description of the Project */ description: string | null; /** * Specify the shortId for this project. If left blank a shortId will be generated. * * 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 id can only be set on creation, and can not be updated. */ shortId: string | null; /** * An optional project short name. Up to 7 symbols */ shortName: string | null; /** * The unique identifier of the folder of this project, or null if not assigned. */ folderId: string | null; /** * If you wish to grant access to this Project to a selected list of people during creation, * provide a list of ProjectMembers here. If you do not specify anyone, this Project will * be available to only yourself. */ projectAccess: ProjectCreateAccessDto | null; /** * The unique identifier of the customer for this project, or null if not customer specific */ customerId: string | null; /** * The unique identifier of the manager of this project, or null if not assigned. */ managerId: string | null; /** * The unique identifier of the ChargeCode for this Project, if one has been selected. */ chargeCodeId: string | null; /** * The ProjectStatus chosen for this Project, if one has been selected. */ statusId: string | null; /** * The ProjectPriority level of this Project, if one has been selected. */ priorityId: string | 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; /** * The proposed budget for this Project. */ budget: 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; /** * When creating a Project, you can optionally specify a Template to use to construct * the Project using a collection of pre-designed Tasks. * * Specifying a value in the TemplateId field will copy default settings for Tasks from * your template Project into the newly created Project. * * This field does not support custom templates. You must choose from a list of * ProjectManager-supplied templates. */ templateId: string | null; /** * True if this Project is a Template project. Template projects can be used as */ template: boolean | 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; /** * True if this Project is marked as favorite for current user */ favorite: boolean | null; /** * True if allow actual dates to update planned dates */ updatePlannedWithActual: boolean | null; /** * Create default task status upfront */ taskStatusCreate: TaskStatusCreateDto[] | null; /** * Working days for the project. If not specified, the workspace working days will be used. * This value can be set when the project is created but may not be updated afterwards. */ workingDays: ProjectWorkingDaysDto | null; /** * 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; /** * Controls which day is considered the first day of the week for this project. * If not specified, this will be Sunday in the US and Monday everywhere else. * If true, the week starts on Monday. If false, the week starts on Sunday. */ weekStartsOnMonday: boolean | null; };