# Create Project Policy

Creates a new policy for a given project

Endpoint: POST /api/v2.0/projects/{projectToken}/policies
Version: 2.0
Security: bearer-key

## Path parameters:

  - `projectToken` (string, required)
    project UUID (by running Entities - Product > Get Product Projects) or Project Token (from the Mend SCA App: **Integrate** tab > **Project Token**).

## Request fields (application/json):

  - `name` (string, required)
    Example: License Policy

  - `filter` (object, required)

  - `filter.type` (string)

  - `filter.groupIdRegex` (string)
    Example: /**

  - `filter.artifactIdRegex` (string)
    Example: /**

  - `filter.versionRegex` (string)
    Example: /**

  - `filter.libraryRequestHistory` (string, required)
    Enum: "APPROVED_AT_LEAST_ONCE", "APPROVED_AT_LEAST_ONCE_OR_PENDING", "REJECTED_AT_LEAST_ONCE", "REJECTED_AT_LEAST_ONCE_OR_PENDING", "PENDING"

  - `filter.monthsBack` (integer, required)
    Example: 36

  - `filter.licenses` (array, required)

  - `filter.licenses.uuid` (string)
    Example: 123e4567-e89b-12d3-a456-426655440000

  - `filter.licenses.name` (string, required)
    Example: MIT

  - `filter.inclusive` (boolean)
    Trigger only when ALL licenses of the library are matched

  - `filter.attributeValue` (string, required)
    Example: value

  - `filter.productToken` (string, required)
    Example: 123e4567-e89b-12d3-a456-426655440000

  - `filter.productName` (string)
    product UUID (by running Entities - Organization > Get Organization Products) or Product Token (from the Mend SCA App: **Integrate** tab > **Product Token**).
    Example: Product A

  - `filter.cause` (object)

  - `filter.cause.stackTrace` (array)

  - `filter.cause.stackTrace.classLoaderName` (string)

  - `filter.cause.stackTrace.moduleName` (string)

  - `filter.cause.stackTrace.moduleVersion` (string)

  - `filter.cause.stackTrace.methodName` (string)

  - `filter.cause.stackTrace.fileName` (string)

  - `filter.cause.stackTrace.lineNumber` (integer)

  - `filter.cause.stackTrace.className` (string)

  - `filter.cause.stackTrace.nativeMethod` (boolean)

  - `filter.cause.message` (string)

  - `filter.cause.suppressed` (array)

  - `filter.cause.suppressed.stackTrace` (array)

  - `filter.cause.suppressed.stackTrace.classLoaderName` (string)

  - `filter.cause.suppressed.stackTrace.moduleName` (string)

  - `filter.cause.suppressed.stackTrace.moduleVersion` (string)

  - `filter.cause.suppressed.stackTrace.methodName` (string)

  - `filter.cause.suppressed.stackTrace.fileName` (string)

  - `filter.cause.suppressed.stackTrace.lineNumber` (integer)

  - `filter.cause.suppressed.stackTrace.className` (string)

  - `filter.cause.suppressed.stackTrace.nativeMethod` (boolean)

  - `filter.cause.suppressed.message` (string)

  - `filter.cause.suppressed.localizedMessage` (string)

  - `filter.cause.localizedMessage` (string)

  - `filter.stackTrace` (array)

  - `filter.stackTrace.classLoaderName` (string)

  - `filter.stackTrace.moduleName` (string)

  - `filter.stackTrace.moduleVersion` (string)

  - `filter.stackTrace.methodName` (string)

  - `filter.stackTrace.fileName` (string)

  - `filter.stackTrace.lineNumber` (integer)

  - `filter.stackTrace.className` (string)

  - `filter.stackTrace.nativeMethod` (boolean)

  - `filter.requestId` (string)

  - `filter.errorCode` (string)

  - `filter.errorType` (string)
    Enum: "Client", "Service", "Unknown"

  - `filter.errorMessage` (string)

  - `filter.statusCode` (integer)

  - `filter.serviceName` (string)

  - `filter.rawResponse` (array)

  - `filter.rawResponseContent` (string)

  - `filter.message` (string)

  - `filter.retryable` (boolean)

  - `filter.suppressed` (array)

  - `filter.suppressed.stackTrace` (array)

  - `filter.suppressed.stackTrace.classLoaderName` (string)

  - `filter.suppressed.stackTrace.moduleName` (string)

  - `filter.suppressed.stackTrace.moduleVersion` (string)

  - `filter.suppressed.stackTrace.methodName` (string)

  - `filter.suppressed.stackTrace.fileName` (string)

  - `filter.suppressed.stackTrace.lineNumber` (integer)

  - `filter.suppressed.stackTrace.className` (string)

  - `filter.suppressed.stackTrace.nativeMethod` (boolean)

  - `filter.suppressed.message` (string)

  - `filter.suppressed.localizedMessage` (string)

  - `filter.localizedMessage` (string)

  - `filter.shieldValue` (string, required)
    Enum: "RED", "YELLOW", "GREY", "NO_SHIELD", "GREEN"

  - `filter.from` (number)

  - `filter.to` (number)

  - `action` (any, required)

  - `action.type` (string, required)

  - `action.approveWhenAllSatisfied` (boolean)

  - `action.rejectWhenOneRejected` (boolean)

  - `action.conditions` (array)

  - `action.conditions.duty` (string)
    Enum: "REQUESTER", "APPROVER"

  - `action.conditions.user` (object)

  - `action.conditions.user.uuid` (string, required)
    Example: 123e4567-e89b-12d3-a456-426655440000

  - `action.conditions.user.name` (string)
    Example: jon.smith

  - `action.conditions.user.email` (string)
    Example: jon.smith@mail.com

  - `action.conditions.group` (object)

  - `action.conditions.group.uuid` (string, required)
    Example: 123e4567-e89b-12d3-a456-426655440000

  - `action.conditions.group.name` (string)
    Example: Group A

  - `action.conditions.conditionText` (string, required)
    Example: A reason for the condition

  - `action.conditions.duePeriod` (integer, required)
    Example: 10

  - `action.failPolicyCheck` (boolean)

  - `action.issueTrackerType` (string)
    Enum: "COMMON_ISSUE_TRACKER"

  - `enabled` (boolean)

## Response 200 fields (application/json):

  - `supportToken` (string)
    Example: 1171c60d

  - `retVal` (object)
    Policies are checked by order of priority; note that 1 is the lowest priority

  - `retVal.uuid` (string)
    Example: 123e4567-e89b-12d3-a456-426655440000

  - `retVal.name` (string)
    Example: A Policy

  - `retVal.owner` (object)

  - `retVal.owner.uuid` (string, required)
    Example: 123e4567-e89b-12d3-a456-426655440000

  - `retVal.owner.name` (string)
    Example: Jon Smith

  - `retVal.owner.email` (string)
    Example: jon.smith@mail.com

  - `retVal.owner.userType` (string)
    Enum: "REGULAR", "SERVICE", "SCAN_SUMMARY_RECEIVER"

  - `retVal.owner.accountStatus` (string)
    Enum: "ACTIVE", "INACTIVE", "LOCKOUT"

  - `retVal.createdAt` (string)

  - `retVal.priority` (integer)
    1 is the lowest priority
    Example: 1

  - `retVal.filter` (object)

  - `retVal.filter.type` (string)

  - `retVal.action` (any)

  - `retVal.action.type` (string, required)

  - `retVal.action.approveWhenAllSatisfied` (boolean)

  - `retVal.action.rejectWhenOneRejected` (boolean)

  - `retVal.action.conditions` (array)

  - `retVal.action.conditions.duty` (string)
    Enum: "REQUESTER", "APPROVER"

  - `retVal.action.conditions.user` (object)

  - `retVal.action.conditions.user.uuid` (string, required)
    Example: 123e4567-e89b-12d3-a456-426655440000

  - `retVal.action.conditions.user.name` (string)
    Example: jon.smith

  - `retVal.action.conditions.user.email` (string)
    Example: jon.smith@mail.com

  - `retVal.action.conditions.group` (object)

  - `retVal.action.conditions.group.uuid` (string, required)
    Example: 123e4567-e89b-12d3-a456-426655440000

  - `retVal.action.conditions.group.name` (string)
    Example: Group A

  - `retVal.action.conditions.conditionText` (string, required)
    Example: A reason for the condition

  - `retVal.action.conditions.duePeriod` (integer, required)
    Example: 10

  - `retVal.action.failPolicyCheck` (boolean)

  - `retVal.action.issueTrackerType` (string)
    Enum: "COMMON_ISSUE_TRACKER"

  - `retVal.context` (object)

  - `retVal.context.uuid` (string)
    Example: 123e4567-e89b-12d3-a456-426655440000

  - `retVal.context.name` (string)
    Example: Context A

  - `retVal.context.contextType` (string)
    Enum: "ORGS", "PRODUCTS", "PROJECTS"

  - `retVal.enabled` (boolean)

  - `retVal.modifiedAt` (string)

  - `retVal.modifiedBy` (string)
    Example: jon.smith@mail.com

  - `retVal.aggregatedPriority` (integer)

## Response 400 fields (*/*):

  - `supportToken` (string)
    Example: 1171c60d

## Response 403 fields (*/*):

  - `supportToken` (string)
    Example: 1171c60d

