# New Project

Create a new Project for the User's Organization.

Endpoint: POST /core/projects/insert
Version: 0.0.5
Security: OAuth2, apiKeyAuth

## Response 201 fields (application/json):

  - `status` (string, required)
    Enum: "success"

  - `data` (array, required)

  - `data.id` (string)
    Example: 8e8aa42241794371ae9d0ed7b67a8c86

  - `data.datetimeCreated` (string)
    The date and time this Project was created.

  - `data.datetimeUpdated` (string)
    The date and time this Project was last updated.

  - `data.systemAccess` (string)
    Puts the project into a status of `readOnly` (data can be read but not written) or `noAccess` (data cannot be read or written).
These states can only be set by the system and are used when project data is being migrated between Zones (data centers)
or for other administrative purposes.
    Enum: "readWrite", "readOnly", "noAccess"

  - `data.status` (string)
    Whether the item is active or inactive in TonicDM. Potentially the item could be (soft) deleted.
    Enum: "active", "inactive", "deleted"

  - `data.zone` (string)
    The name of the Zone (data center) the Project data is stored in.

  - `data.purpose` (string)
    Projects are used for different purposes in the TonicDM system.
    Enum: "billable", "opportunity", "overhead", "training"

  - `data.isLocked` (boolean)
    Restricts access to the project to active team members.

This field can only be set by one of the Tenant Adminstrators.

  - `data.projectNumber` (string)
    Project Reference Number

  - `data.projectNameLegal` (string)
    The full official name of the Project (used on Transmittals).

  - `data.projectNameKnownAs` (string)
    A friendly name for the Project (used in the TonicDM app and Outlook sidebar)

  - `data.projectSearchWords` (string)
    NOT YET IMPLEMENTED. 

Text to assist staff when searching for the project (can be used for previously used project numbers or names, or other keywords that might be used to find the project)

  - `data.projectManager` (any)
    NOT YET IMPLEMENTED.
Requires the TonicDM AdvancedMetrics license.
Refer to the `data_quantity` Request parameter to understand the level of detail returned.

  - `data.projectPrincipal` (any)
    NOT YET IMPLEMENTED.
REQUIRES the TonicDM AdvancedMetrics license.
Refer to the `data_quantity` Request parameter to understand the level of detail returned.

  - `data.brand` (any)
    NOT YET IMPLEMENTED.
REQUIRES the TonicDM AdvancedContacts license.
Refer to the `data_quantity` Request parameter to understand the level of detail returned.

  - `data.location` (any)
    Refer to the `data_quantity` Request parameter to understand the level of detail returned.

  - `data.division1` (any)
    NOT YET IMPLEMENTED.
REQUIRES the TonicDM AdvancedMetrics license.
Refer to the `data_quantity` Request parameter to understand the level of detail returned.

  - `data.division2` (any)
    NOT YET IMPLEMENTED.
REQUIRES the TonicDM AdvancedMetrics license.
Refer to the `data_quantity` Request parameter to understand the level of detail returned.

  - `data.division3` (any)
    NOT YET IMPLEMENTED.
REQUIRES the TonicDM AdvancedMetrics license.
Refer to the `data_quantity` Request parameter to understand the level of detail returned.

  - `data.division4` (any)
    NOT YET IMPLEMENTED.
REQUIRES the TonicDM AdvancedMetrics license.
Refer to the `data_quantity` Request parameter to understand the level of detail returned.

  - `data.certifications` (array)
    NOT YET IMPLEMENTED.
REQUIRES the TonicDM AdvancedContacts license.
Refer to the `data_quantity` Request parameter to understand the level of detail returned.
The UUIDs of zero or more certifications that this Project has obtained, or intends to obtain.

  - `data.certifications.datetimeCreated` (string)
    The date and time this Certification record was created.

  - `data.certifications.datetimeUpdated` (string)
    The date and time this Certification record was last updated.

  - `data.certifications.certificationDefinitionId` (string, required)
    The UUID of the Certification Definition record.

  - `data.certifications.appliesToId` (string)
    The UUID of the record this Certification applies to.

  - `data.certifications.appliesToType` (string)
    The type of record this Certification applies to.
    Enum: "organization", "project", "person"

  - `data.certifications.dateExpires` (string)
    The date this certification expires.

  - `data.clientOrganization` (string)
    NOT YET IMPLEMENTED.
Refer to the `data_quantity` Request parameter to understand the level of detail returned.
The TonicDM OrganizationId of the project's client (so their name can appear on the Transmittal).

  - `data.clientProjectNumber` (string)
    NOT YET IMPLEMENTED.
The project reference number of the project's client (for use on the Transmittal).

  - `data.customerDataWarehouseId` (string)
    The ID of the Person in the Customer's Data Warehouse.
FOR USE BY CUSTOMER. NOT YET IMPLEMENTED.
REQUIRES the TonicDM AdvancedMetrics license.

  - `data.customerErpId` (string)
    The ID of the Person in the Customer's ERP system (eg. Deltek Vantagepoint).
FOR USE BY CUSTOMER. NOT YET IMPLEMENTED.
REQUIRES the TonicDM AdvancedMetrics license.

  - `data.customerCrmId` (string)
    The ID of the Person in the Customer's CRM system (eg. Deltek Salesforce).
FOR USE BY CUSTOMER. NOT YET IMPLEMENTED.
REQUIRES the TonicDM AdvancedMetrics license.

  - `data.Program` (any)
    NOT YET IMPLEMENTED.
REQUIRES the TonicDM AdvancedProjects license.
Refer to the `data_quantity` Request parameter to understand the level of detail returned.

  - `data.relatedProjects` (array)
    NOT YET IMPLEMENTED.
Refer to the `data_quantity` Request parameter to understand the level of detail returned.
The UUIDs of zero or more TonicDM projects that this Project is notionally related to.
Refer to the help page for 'Related Projects'.

  - `metadata` (object, required)
    Present on every JSON response. For non-paginated operations, use `page` 1, `total_pages` 1,
and `total_records` equal to the number of elements in `data`.

  - `metadata.timestamp` (string, required)

  - `metadata.correlation_id` (string, required)

  - `metadata.page` (integer, required)

  - `metadata.total_pages` (integer, required)

  - `metadata.total_records` (integer, required)

## Response 400 fields (application/json):

  - `status` (string, required)
    Enum: "fail", "error"

  - `error` (object, required)

  - `error.code` (string, required)
    Example: VALIDATION_ERROR

  - `error.message` (string, required)
    Example: Invalid input

  - `metadata` (object, required)
    Present on every JSON response. For non-paginated operations, use `page` 1, `total_pages` 1,
and `total_records` equal to the number of elements in `data`.

  - `metadata.timestamp` (string, required)

  - `metadata.correlation_id` (string, required)

  - `metadata.page` (integer, required)

  - `metadata.total_pages` (integer, required)

  - `metadata.total_records` (integer, required)

## Response 401 fields (application/json):

  - `status` (string, required)
    Enum: "fail", "error"

  - `error` (object, required)

  - `error.code` (string, required)
    Example: VALIDATION_ERROR

  - `error.message` (string, required)
    Example: Invalid input

  - `metadata` (object, required)
    Present on every JSON response. For non-paginated operations, use `page` 1, `total_pages` 1,
and `total_records` equal to the number of elements in `data`.

  - `metadata.timestamp` (string, required)

  - `metadata.correlation_id` (string, required)

  - `metadata.page` (integer, required)

  - `metadata.total_pages` (integer, required)

  - `metadata.total_records` (integer, required)

## Response 403 fields (application/json):

  - `status` (string, required)
    Enum: "fail", "error"

  - `error` (object, required)

  - `error.code` (string, required)
    Example: VALIDATION_ERROR

  - `error.message` (string, required)
    Example: Invalid input

  - `metadata` (object, required)
    Present on every JSON response. For non-paginated operations, use `page` 1, `total_pages` 1,
and `total_records` equal to the number of elements in `data`.

  - `metadata.timestamp` (string, required)

  - `metadata.correlation_id` (string, required)

  - `metadata.page` (integer, required)

  - `metadata.total_pages` (integer, required)

  - `metadata.total_records` (integer, required)

## Response 404 fields (application/json):

  - `status` (string, required)
    Enum: "fail", "error"

  - `error` (object, required)

  - `error.code` (string, required)
    Example: VALIDATION_ERROR

  - `error.message` (string, required)
    Example: Invalid input

  - `metadata` (object, required)
    Present on every JSON response. For non-paginated operations, use `page` 1, `total_pages` 1,
and `total_records` equal to the number of elements in `data`.

  - `metadata.timestamp` (string, required)

  - `metadata.correlation_id` (string, required)

  - `metadata.page` (integer, required)

  - `metadata.total_pages` (integer, required)

  - `metadata.total_records` (integer, required)

## Response 429 fields (application/json):

  - `status` (string, required)
    Enum: "fail", "error"

  - `error` (object, required)

  - `error.code` (string, required)
    Example: VALIDATION_ERROR

  - `error.message` (string, required)
    Example: Invalid input

  - `metadata` (object, required)
    Present on every JSON response. For non-paginated operations, use `page` 1, `total_pages` 1,
and `total_records` equal to the number of elements in `data`.

  - `metadata.timestamp` (string, required)

  - `metadata.correlation_id` (string, required)

  - `metadata.page` (integer, required)

  - `metadata.total_pages` (integer, required)

  - `metadata.total_records` (integer, required)

## Response 500 fields (application/json):

  - `status` (string, required)
    Enum: "fail", "error"

  - `error` (object, required)

  - `error.code` (string, required)
    Example: VALIDATION_ERROR

  - `error.message` (string, required)
    Example: Invalid input

  - `metadata` (object, required)
    Present on every JSON response. For non-paginated operations, use `page` 1, `total_pages` 1,
and `total_records` equal to the number of elements in `data`.

  - `metadata.timestamp` (string, required)

  - `metadata.correlation_id` (string, required)

  - `metadata.page` (integer, required)

  - `metadata.total_pages` (integer, required)

  - `metadata.total_records` (integer, required)

