# Approval workflows
URL: https://docs.datarobot.com/en/docs/api/reference/public-api/approval_workflows.html

> This page describes the endpoints for enacting workflow requirements to ensure quality and comply with regulatory obligations. When you create a new or change an existing deployment, if the approval workflow is enabled, an MLOps administrator within your organization must approve your changes. [Approval policies](deploy-approval) affect the users who have permissions to review deployments and provide automated actions when reviews time out. Approval policies also affect users whose deployment events are governed by a configured policy (e.g., new deployment creation, model replacement).

# Approval workflows

This page describes the endpoints for enacting workflow requirements to ensure quality and comply with regulatory obligations. When you create a new or change an existing deployment, if the approval workflow is enabled, an MLOps administrator within your organization must approve your changes.[Approval policies](https://docs.datarobot.com/en/docs/platform/admin/deploy-approval.html) affect the users who have permissions to review deployments and provide automated actions when reviews time out. Approval policies also affect users whose deployment events are governed by a configured policy (e.g., new deployment creation, model replacement).

## List Approval Policies

Operation path: `GET /api/v2/approvalPolicies/`

Authentication requirements: `BearerAuth`

List Approval Policies.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| offset | query | integer | false | The number of results to skip. |
| limit | query | integer | false | At most this many results are returned. The default may change without notice. |
| entityType | query | string | false | Type of entity to filter policies by. |
| namePart | query | string | false | Part of the policy name to search by. |

### Enumerated Values

| Parameter | Value |
| --- | --- |
| entityType | [deployment, Deployment, DEPLOYMENT, deploymentModel, DeploymentModel, DEPLOYMENT_MODEL, deploymentConfig, DeploymentConfig, DEPLOYMENT_CONFIG, deploymentStatus, DeploymentStatus, DEPLOYMENT_STATUS, deploymentMonitoringData, DeploymentMonitoringData, DEPLOYMENT_MONITORING_DATA] |

### Example responses

> 200 Response

```
{
  "properties": {
    "count": {
      "description": "The number of items returned on this page.",
      "type": "integer"
    },
    "data": {
      "description": "List of Approval Policies.",
      "items": {
        "properties": {
          "active": {
            "default": true,
            "description": "Whether this policy is active.",
            "type": "boolean"
          },
          "automaticAction": {
            "description": "An object describing the automated action on the Change Request that will be performed if the request is not resolved within a given time period after its creation. If ``null``, no automated actions will be taken on the related Change Requests.",
            "properties": {
              "action": {
                "description": "Action of the workflow automation.",
                "enum": [
                  "cancel",
                  "Cancel",
                  "CANCEL",
                  "approve",
                  "Approve",
                  "APPROVE"
                ],
                "type": "string"
              },
              "period": {
                "description": "Period (ISO 8601) after which an action is executed on a Change Request if it is not resolved or cancelled.",
                "format": "duration",
                "type": "string"
              }
            },
            "required": [
              "action",
              "period"
            ],
            "type": "object"
          },
          "id": {
            "description": "ID of the Approval Policy.",
            "type": "string"
          },
          "name": {
            "description": "Name of the Approval Policy.",
            "maxLength": 50,
            "type": "string"
          },
          "openRequests": {
            "description": "Number of open Change Requests associated with the policy.",
            "minimum": 0,
            "type": "integer"
          },
          "review": {
            "description": "An object describing review requirements for Change Requests, related to a specific policy. If ``null``, no additional review requirements are added to the related Change Requests.",
            "properties": {
              "groups": {
                "description": "A list of user groups that will be added as required reviewers on Change Requests for the entities that match the policy.",
                "items": {
                  "properties": {
                    "id": {
                      "description": "ID of the user group.",
                      "type": "string"
                    },
                    "name": {
                      "description": "Name of the user group.",
                      "maxLength": 50,
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  },
                  "required": [
                    "id"
                  ],
                  "type": "object"
                },
                "maxItems": 100,
                "minItems": 1,
                "type": "array"
              },
              "reminderPeriod": {
                "description": "Duration period in ISO 8601 format that indicates when to send a reminder for reviewing a Change Request after its creation or last reminder if it hasn't been approved yet. If ``null``, no review reminders are sent to the reviewers.",
                "format": "duration",
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "type": "object"
          },
          "trigger": {
            "description": "An object describing the trigger for the Approval Policy.",
            "properties": {
              "entityType": {
                "description": "Type of entity to trigger on.",
                "enum": [
                  "deployment",
                  "Deployment",
                  "DEPLOYMENT",
                  "deploymentModel",
                  "DeploymentModel",
                  "DEPLOYMENT_MODEL",
                  "deploymentConfig",
                  "DeploymentConfig",
                  "DEPLOYMENT_CONFIG",
                  "deploymentStatus",
                  "DeploymentStatus",
                  "DEPLOYMENT_STATUS",
                  "deploymentMonitoringData",
                  "DeploymentMonitoringData",
                  "DEPLOYMENT_MONITORING_DATA"
                ],
                "type": "string"
              },
              "filterGroups": {
                "description": "A list of user groups to apply Approval Policy for. If User 'A' and User 'B' are both members of the same organisation, and User 'A' is a member of one of the groups listed in this field,but User 'B' is not, then an approval workflow will be triggerred for User 'A' on an action to the entity that matches policy condition, but not for User 'B'. If ``null``, approvals workflow will be triggered for all users.",
                "items": {
                  "properties": {
                    "id": {
                      "description": "ID of the user group.",
                      "type": "string"
                    },
                    "name": {
                      "description": "Name of the user group.",
                      "maxLength": 50,
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  },
                  "required": [
                    "id"
                  ],
                  "type": "object"
                },
                "maxItems": 100,
                "type": "array"
              },
              "intendedAction": {
                "description": "An object, describing the approvals workflow intended action.",
                "properties": {
                  "action": {
                    "description": "Type of action to trigger on.",
                    "enum": [
                      "create",
                      "Create",
                      "CREATE",
                      "update",
                      "Update",
                      "UPDATE",
                      "delete",
                      "Delete",
                      "DELETE"
                    ],
                    "type": "string"
                  },
                  "condition": {
                    "description": "An object, describing the condition to trigger on.",
                    "properties": {
                      "condition": {
                        "description": "Condition for the field content to trigger on.",
                        "enum": [
                          "equals",
                          "Equals",
                          "EQUALS"
                        ],
                        "type": "string"
                      },
                      "fieldName": {
                        "description": "Name of the attribute of the entity to filter entities by. An example value is ``importance`` attribute for the deployment entity.",
                        "maxLength": 50,
                        "type": "string"
                      },
                      "values": {
                        "description": "Array of field values to apply condition to trigger on. If ``null`` for ``equals`` condition, then any value for the field is accepted.",
                        "items": {
                          "maxLength": 50,
                          "type": "string"
                        },
                        "maxItems": 100,
                        "type": "array"
                      }
                    },
                    "required": [
                      "condition",
                      "fieldName",
                      "values"
                    ],
                    "type": "object"
                  }
                },
                "required": [
                  "action"
                ],
                "type": "object"
              },
              "labels": {
                "description": "Trigger Labels.",
                "properties": {
                  "groupLabel": {
                    "description": "Group Label.",
                    "type": "string"
                  },
                  "label": {
                    "description": "Label.",
                    "type": "string"
                  }
                },
                "required": [
                  "groupLabel",
                  "label"
                ],
                "type": "object"
              }
            },
            "required": [
              "entityType",
              "intendedAction"
            ],
            "type": "object"
          }
        },
        "required": [
          "active",
          "id",
          "name",
          "openRequests",
          "trigger"
        ],
        "type": "object"
      },
      "type": "array"
    },
    "next": {
      "description": "The URL of the next page (if null, there is no next page).",
      "format": "uri",
      "type": [
        "string",
        "null"
      ]
    },
    "previous": {
      "description": "The URL of the previous page (if null, there is no previous page).",
      "format": "uri",
      "type": [
        "string",
        "null"
      ]
    },
    "totalCount": {
      "description": "The total number of items across all pages.",
      "type": "integer"
    }
  },
  "required": [
    "data",
    "next",
    "previous",
    "totalCount"
  ],
  "type": "object"
}
```

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 200 | OK | Approval Policy has been successfully updated. | ApprovalPolicyListResponse |
| 403 | Forbidden | Approval Policy management feature is disabled for the user. | None |

## Create a new Approval Policy

Operation path: `POST /api/v2/approvalPolicies/`

Authentication requirements: `BearerAuth`

Create a new Approval Policy.

### Body parameter

```
{
  "properties": {
    "active": {
      "default": true,
      "description": "Whether this policy is active.",
      "type": "boolean"
    },
    "automaticAction": {
      "description": "An object describing the automated action on the Change Request that will be performed if the request is not resolved within a given time period after its creation. If ``null``, no automated actions will be taken on the related Change Requests.",
      "properties": {
        "action": {
          "description": "Action of the workflow automation.",
          "enum": [
            "cancel",
            "Cancel",
            "CANCEL",
            "approve",
            "Approve",
            "APPROVE"
          ],
          "type": "string"
        },
        "period": {
          "description": "Period (ISO 8601) after which an action is executed on a Change Request if it is not resolved or cancelled.",
          "format": "duration",
          "type": "string"
        }
      },
      "required": [
        "action",
        "period"
      ],
      "type": "object"
    },
    "name": {
      "description": "Name of the Approval Policy.",
      "maxLength": 50,
      "type": "string"
    },
    "review": {
      "description": "An object describing review requirements for Change Requests, related to a specific policy. If ``null``, no additional review requirements are added to the related Change Requests.",
      "properties": {
        "groups": {
          "description": "A list of user groups that will be added as required reviewers on Change Requests for the entities that match the policy.",
          "items": {
            "properties": {
              "id": {
                "description": "ID of the user group.",
                "type": "string"
              },
              "name": {
                "description": "Name of the user group.",
                "maxLength": 50,
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "id"
            ],
            "type": "object"
          },
          "maxItems": 100,
          "minItems": 1,
          "type": "array"
        },
        "reminderPeriod": {
          "description": "Duration period in ISO 8601 format that indicates when to send a reminder for reviewing a Change Request after its creation or last reminder if it hasn't been approved yet. If ``null``, no review reminders are sent to the reviewers.",
          "format": "duration",
          "type": [
            "string",
            "null"
          ]
        }
      },
      "type": "object"
    },
    "trigger": {
      "description": "An object describing the trigger for the Approval Policy.",
      "properties": {
        "entityType": {
          "description": "Type of entity to trigger on.",
          "enum": [
            "deployment",
            "Deployment",
            "DEPLOYMENT",
            "deploymentModel",
            "DeploymentModel",
            "DEPLOYMENT_MODEL",
            "deploymentConfig",
            "DeploymentConfig",
            "DEPLOYMENT_CONFIG",
            "deploymentStatus",
            "DeploymentStatus",
            "DEPLOYMENT_STATUS",
            "deploymentMonitoringData",
            "DeploymentMonitoringData",
            "DEPLOYMENT_MONITORING_DATA"
          ],
          "type": "string"
        },
        "filterGroups": {
          "description": "A list of user groups to apply Approval Policy for. If User 'A' and User 'B' are both members of the same organisation, and User 'A' is a member of one of the groups listed in this field,but User 'B' is not, then an approval workflow will be triggerred for User 'A' on an action to the entity that matches policy condition, but not for User 'B'. If ``null``, approvals workflow will be triggered for all users.",
          "items": {
            "properties": {
              "id": {
                "description": "ID of the user group.",
                "type": "string"
              },
              "name": {
                "description": "Name of the user group.",
                "maxLength": 50,
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "id"
            ],
            "type": "object"
          },
          "maxItems": 100,
          "type": "array"
        },
        "intendedAction": {
          "description": "An object, describing the approvals workflow intended action.",
          "properties": {
            "action": {
              "description": "Type of action to trigger on.",
              "enum": [
                "create",
                "Create",
                "CREATE",
                "update",
                "Update",
                "UPDATE",
                "delete",
                "Delete",
                "DELETE"
              ],
              "type": "string"
            },
            "condition": {
              "description": "An object, describing the condition to trigger on.",
              "properties": {
                "condition": {
                  "description": "Condition for the field content to trigger on.",
                  "enum": [
                    "equals",
                    "Equals",
                    "EQUALS"
                  ],
                  "type": "string"
                },
                "fieldName": {
                  "description": "Name of the attribute of the entity to filter entities by. An example value is ``importance`` attribute for the deployment entity.",
                  "maxLength": 50,
                  "type": "string"
                },
                "values": {
                  "description": "Array of field values to apply condition to trigger on. If ``null`` for ``equals`` condition, then any value for the field is accepted.",
                  "items": {
                    "maxLength": 50,
                    "type": "string"
                  },
                  "maxItems": 100,
                  "type": "array"
                }
              },
              "required": [
                "condition",
                "fieldName",
                "values"
              ],
              "type": "object"
            }
          },
          "required": [
            "action"
          ],
          "type": "object"
        },
        "labels": {
          "description": "Trigger Labels.",
          "properties": {
            "groupLabel": {
              "description": "Group Label.",
              "type": "string"
            },
            "label": {
              "description": "Label.",
              "type": "string"
            }
          },
          "required": [
            "groupLabel",
            "label"
          ],
          "type": "object"
        }
      },
      "required": [
        "entityType",
        "intendedAction"
      ],
      "type": "object"
    }
  },
  "required": [
    "active",
    "name",
    "trigger"
  ],
  "type": "object"
}
```

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| body | body | ApprovalPolicy | false | none |

### Example responses

> 201 Response

```
{
  "properties": {
    "active": {
      "default": true,
      "description": "Whether this policy is active.",
      "type": "boolean"
    },
    "automaticAction": {
      "description": "An object describing the automated action on the Change Request that will be performed if the request is not resolved within a given time period after its creation. If ``null``, no automated actions will be taken on the related Change Requests.",
      "properties": {
        "action": {
          "description": "Action of the workflow automation.",
          "enum": [
            "cancel",
            "Cancel",
            "CANCEL",
            "approve",
            "Approve",
            "APPROVE"
          ],
          "type": "string"
        },
        "period": {
          "description": "Period (ISO 8601) after which an action is executed on a Change Request if it is not resolved or cancelled.",
          "format": "duration",
          "type": "string"
        }
      },
      "required": [
        "action",
        "period"
      ],
      "type": "object"
    },
    "id": {
      "description": "ID of the Approval Policy.",
      "type": "string"
    },
    "name": {
      "description": "Name of the Approval Policy.",
      "maxLength": 50,
      "type": "string"
    },
    "openRequests": {
      "description": "Number of open Change Requests associated with the policy.",
      "minimum": 0,
      "type": "integer"
    },
    "review": {
      "description": "An object describing review requirements for Change Requests, related to a specific policy. If ``null``, no additional review requirements are added to the related Change Requests.",
      "properties": {
        "groups": {
          "description": "A list of user groups that will be added as required reviewers on Change Requests for the entities that match the policy.",
          "items": {
            "properties": {
              "id": {
                "description": "ID of the user group.",
                "type": "string"
              },
              "name": {
                "description": "Name of the user group.",
                "maxLength": 50,
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "id"
            ],
            "type": "object"
          },
          "maxItems": 100,
          "minItems": 1,
          "type": "array"
        },
        "reminderPeriod": {
          "description": "Duration period in ISO 8601 format that indicates when to send a reminder for reviewing a Change Request after its creation or last reminder if it hasn't been approved yet. If ``null``, no review reminders are sent to the reviewers.",
          "format": "duration",
          "type": [
            "string",
            "null"
          ]
        }
      },
      "type": "object"
    },
    "trigger": {
      "description": "An object describing the trigger for the Approval Policy.",
      "properties": {
        "entityType": {
          "description": "Type of entity to trigger on.",
          "enum": [
            "deployment",
            "Deployment",
            "DEPLOYMENT",
            "deploymentModel",
            "DeploymentModel",
            "DEPLOYMENT_MODEL",
            "deploymentConfig",
            "DeploymentConfig",
            "DEPLOYMENT_CONFIG",
            "deploymentStatus",
            "DeploymentStatus",
            "DEPLOYMENT_STATUS",
            "deploymentMonitoringData",
            "DeploymentMonitoringData",
            "DEPLOYMENT_MONITORING_DATA"
          ],
          "type": "string"
        },
        "filterGroups": {
          "description": "A list of user groups to apply Approval Policy for. If User 'A' and User 'B' are both members of the same organisation, and User 'A' is a member of one of the groups listed in this field,but User 'B' is not, then an approval workflow will be triggerred for User 'A' on an action to the entity that matches policy condition, but not for User 'B'. If ``null``, approvals workflow will be triggered for all users.",
          "items": {
            "properties": {
              "id": {
                "description": "ID of the user group.",
                "type": "string"
              },
              "name": {
                "description": "Name of the user group.",
                "maxLength": 50,
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "id"
            ],
            "type": "object"
          },
          "maxItems": 100,
          "type": "array"
        },
        "intendedAction": {
          "description": "An object, describing the approvals workflow intended action.",
          "properties": {
            "action": {
              "description": "Type of action to trigger on.",
              "enum": [
                "create",
                "Create",
                "CREATE",
                "update",
                "Update",
                "UPDATE",
                "delete",
                "Delete",
                "DELETE"
              ],
              "type": "string"
            },
            "condition": {
              "description": "An object, describing the condition to trigger on.",
              "properties": {
                "condition": {
                  "description": "Condition for the field content to trigger on.",
                  "enum": [
                    "equals",
                    "Equals",
                    "EQUALS"
                  ],
                  "type": "string"
                },
                "fieldName": {
                  "description": "Name of the attribute of the entity to filter entities by. An example value is ``importance`` attribute for the deployment entity.",
                  "maxLength": 50,
                  "type": "string"
                },
                "values": {
                  "description": "Array of field values to apply condition to trigger on. If ``null`` for ``equals`` condition, then any value for the field is accepted.",
                  "items": {
                    "maxLength": 50,
                    "type": "string"
                  },
                  "maxItems": 100,
                  "type": "array"
                }
              },
              "required": [
                "condition",
                "fieldName",
                "values"
              ],
              "type": "object"
            }
          },
          "required": [
            "action"
          ],
          "type": "object"
        },
        "labels": {
          "description": "Trigger Labels.",
          "properties": {
            "groupLabel": {
              "description": "Group Label.",
              "type": "string"
            },
            "label": {
              "description": "Label.",
              "type": "string"
            }
          },
          "required": [
            "groupLabel",
            "label"
          ],
          "type": "object"
        }
      },
      "required": [
        "entityType",
        "intendedAction"
      ],
      "type": "object"
    }
  },
  "required": [
    "active",
    "id",
    "name",
    "openRequests",
    "trigger"
  ],
  "type": "object"
}
```

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 201 | Created | Approval Policy has been successfully created. | ApprovalPolicyResponse |
| 403 | Forbidden | Approval Policy management feature is disabled for the user. | None |
| 422 | Unprocessable Entity | Approval Policy could not be created with the given input. | None |

## Delete an Approval Policy by approval policy ID

Operation path: `DELETE /api/v2/approvalPolicies/{approvalPolicyId}/`

Authentication requirements: `BearerAuth`

Delete the policy with the given ID.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| approvalPolicyId | path | string | true | ID of the Approval Policy. |

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 204 | No Content | Approval Policy has been successfully deleted. | None |
| 403 | Forbidden | Approval Policy management feature is disabled for the user. | None |
| 404 | Not Found | Approval Policy does not exist or the user doesn't have access to it. | None |

## Retrieve an Approval Policy by approval policy ID

Operation path: `GET /api/v2/approvalPolicies/{approvalPolicyId}/`

Authentication requirements: `BearerAuth`

Retrieve the policy with the given ID.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| approvalPolicyId | path | string | true | ID of the Approval Policy. |

### Example responses

> 200 Response

```
{
  "properties": {
    "active": {
      "default": true,
      "description": "Whether this policy is active.",
      "type": "boolean"
    },
    "automaticAction": {
      "description": "An object describing the automated action on the Change Request that will be performed if the request is not resolved within a given time period after its creation. If ``null``, no automated actions will be taken on the related Change Requests.",
      "properties": {
        "action": {
          "description": "Action of the workflow automation.",
          "enum": [
            "cancel",
            "Cancel",
            "CANCEL",
            "approve",
            "Approve",
            "APPROVE"
          ],
          "type": "string"
        },
        "period": {
          "description": "Period (ISO 8601) after which an action is executed on a Change Request if it is not resolved or cancelled.",
          "format": "duration",
          "type": "string"
        }
      },
      "required": [
        "action",
        "period"
      ],
      "type": "object"
    },
    "id": {
      "description": "ID of the Approval Policy.",
      "type": "string"
    },
    "name": {
      "description": "Name of the Approval Policy.",
      "maxLength": 50,
      "type": "string"
    },
    "openRequests": {
      "description": "Number of open Change Requests associated with the policy.",
      "minimum": 0,
      "type": "integer"
    },
    "review": {
      "description": "An object describing review requirements for Change Requests, related to a specific policy. If ``null``, no additional review requirements are added to the related Change Requests.",
      "properties": {
        "groups": {
          "description": "A list of user groups that will be added as required reviewers on Change Requests for the entities that match the policy.",
          "items": {
            "properties": {
              "id": {
                "description": "ID of the user group.",
                "type": "string"
              },
              "name": {
                "description": "Name of the user group.",
                "maxLength": 50,
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "id"
            ],
            "type": "object"
          },
          "maxItems": 100,
          "minItems": 1,
          "type": "array"
        },
        "reminderPeriod": {
          "description": "Duration period in ISO 8601 format that indicates when to send a reminder for reviewing a Change Request after its creation or last reminder if it hasn't been approved yet. If ``null``, no review reminders are sent to the reviewers.",
          "format": "duration",
          "type": [
            "string",
            "null"
          ]
        }
      },
      "type": "object"
    },
    "trigger": {
      "description": "An object describing the trigger for the Approval Policy.",
      "properties": {
        "entityType": {
          "description": "Type of entity to trigger on.",
          "enum": [
            "deployment",
            "Deployment",
            "DEPLOYMENT",
            "deploymentModel",
            "DeploymentModel",
            "DEPLOYMENT_MODEL",
            "deploymentConfig",
            "DeploymentConfig",
            "DEPLOYMENT_CONFIG",
            "deploymentStatus",
            "DeploymentStatus",
            "DEPLOYMENT_STATUS",
            "deploymentMonitoringData",
            "DeploymentMonitoringData",
            "DEPLOYMENT_MONITORING_DATA"
          ],
          "type": "string"
        },
        "filterGroups": {
          "description": "A list of user groups to apply Approval Policy for. If User 'A' and User 'B' are both members of the same organisation, and User 'A' is a member of one of the groups listed in this field,but User 'B' is not, then an approval workflow will be triggerred for User 'A' on an action to the entity that matches policy condition, but not for User 'B'. If ``null``, approvals workflow will be triggered for all users.",
          "items": {
            "properties": {
              "id": {
                "description": "ID of the user group.",
                "type": "string"
              },
              "name": {
                "description": "Name of the user group.",
                "maxLength": 50,
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "id"
            ],
            "type": "object"
          },
          "maxItems": 100,
          "type": "array"
        },
        "intendedAction": {
          "description": "An object, describing the approvals workflow intended action.",
          "properties": {
            "action": {
              "description": "Type of action to trigger on.",
              "enum": [
                "create",
                "Create",
                "CREATE",
                "update",
                "Update",
                "UPDATE",
                "delete",
                "Delete",
                "DELETE"
              ],
              "type": "string"
            },
            "condition": {
              "description": "An object, describing the condition to trigger on.",
              "properties": {
                "condition": {
                  "description": "Condition for the field content to trigger on.",
                  "enum": [
                    "equals",
                    "Equals",
                    "EQUALS"
                  ],
                  "type": "string"
                },
                "fieldName": {
                  "description": "Name of the attribute of the entity to filter entities by. An example value is ``importance`` attribute for the deployment entity.",
                  "maxLength": 50,
                  "type": "string"
                },
                "values": {
                  "description": "Array of field values to apply condition to trigger on. If ``null`` for ``equals`` condition, then any value for the field is accepted.",
                  "items": {
                    "maxLength": 50,
                    "type": "string"
                  },
                  "maxItems": 100,
                  "type": "array"
                }
              },
              "required": [
                "condition",
                "fieldName",
                "values"
              ],
              "type": "object"
            }
          },
          "required": [
            "action"
          ],
          "type": "object"
        },
        "labels": {
          "description": "Trigger Labels.",
          "properties": {
            "groupLabel": {
              "description": "Group Label.",
              "type": "string"
            },
            "label": {
              "description": "Label.",
              "type": "string"
            }
          },
          "required": [
            "groupLabel",
            "label"
          ],
          "type": "object"
        }
      },
      "required": [
        "entityType",
        "intendedAction"
      ],
      "type": "object"
    }
  },
  "required": [
    "active",
    "id",
    "name",
    "openRequests",
    "trigger"
  ],
  "type": "object"
}
```

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 200 | OK | Approval Policy has been successfully retrieved. | ApprovalPolicyResponse |
| 403 | Forbidden | Approval Policy management feature is disabled for the user. | None |
| 404 | Not Found | Approval Policy does not exist or the user doesn't have access to it. | None |

## Update an Approval Policy by approval policy ID

Operation path: `PUT /api/v2/approvalPolicies/{approvalPolicyId}/`

Authentication requirements: `BearerAuth`

Update the policy with the given ID.

### Body parameter

```
{
  "properties": {
    "active": {
      "default": true,
      "description": "Whether this policy is active.",
      "type": "boolean"
    },
    "automaticAction": {
      "description": "An object describing the automated action on the Change Request that will be performed if the request is not resolved within a given time period after its creation. If ``null``, no automated actions will be taken on the related Change Requests.",
      "properties": {
        "action": {
          "description": "Action of the workflow automation.",
          "enum": [
            "cancel",
            "Cancel",
            "CANCEL",
            "approve",
            "Approve",
            "APPROVE"
          ],
          "type": "string"
        },
        "period": {
          "description": "Period (ISO 8601) after which an action is executed on a Change Request if it is not resolved or cancelled.",
          "format": "duration",
          "type": "string"
        }
      },
      "required": [
        "action",
        "period"
      ],
      "type": "object"
    },
    "name": {
      "description": "Name of the Approval Policy.",
      "maxLength": 50,
      "type": "string"
    },
    "review": {
      "description": "An object describing review requirements for Change Requests, related to a specific policy. If ``null``, no additional review requirements are added to the related Change Requests.",
      "properties": {
        "groups": {
          "description": "A list of user groups that will be added as required reviewers on Change Requests for the entities that match the policy.",
          "items": {
            "properties": {
              "id": {
                "description": "ID of the user group.",
                "type": "string"
              },
              "name": {
                "description": "Name of the user group.",
                "maxLength": 50,
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "id"
            ],
            "type": "object"
          },
          "maxItems": 100,
          "minItems": 1,
          "type": "array"
        },
        "reminderPeriod": {
          "description": "Duration period in ISO 8601 format that indicates when to send a reminder for reviewing a Change Request after its creation or last reminder if it hasn't been approved yet. If ``null``, no review reminders are sent to the reviewers.",
          "format": "duration",
          "type": [
            "string",
            "null"
          ]
        }
      },
      "type": "object"
    },
    "trigger": {
      "description": "An object describing the trigger for the Approval Policy.",
      "properties": {
        "entityType": {
          "description": "Type of entity to trigger on.",
          "enum": [
            "deployment",
            "Deployment",
            "DEPLOYMENT",
            "deploymentModel",
            "DeploymentModel",
            "DEPLOYMENT_MODEL",
            "deploymentConfig",
            "DeploymentConfig",
            "DEPLOYMENT_CONFIG",
            "deploymentStatus",
            "DeploymentStatus",
            "DEPLOYMENT_STATUS",
            "deploymentMonitoringData",
            "DeploymentMonitoringData",
            "DEPLOYMENT_MONITORING_DATA"
          ],
          "type": "string"
        },
        "filterGroups": {
          "description": "A list of user groups to apply Approval Policy for. If User 'A' and User 'B' are both members of the same organisation, and User 'A' is a member of one of the groups listed in this field,but User 'B' is not, then an approval workflow will be triggerred for User 'A' on an action to the entity that matches policy condition, but not for User 'B'. If ``null``, approvals workflow will be triggered for all users.",
          "items": {
            "properties": {
              "id": {
                "description": "ID of the user group.",
                "type": "string"
              },
              "name": {
                "description": "Name of the user group.",
                "maxLength": 50,
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "id"
            ],
            "type": "object"
          },
          "maxItems": 100,
          "type": "array"
        },
        "intendedAction": {
          "description": "An object, describing the approvals workflow intended action.",
          "properties": {
            "action": {
              "description": "Type of action to trigger on.",
              "enum": [
                "create",
                "Create",
                "CREATE",
                "update",
                "Update",
                "UPDATE",
                "delete",
                "Delete",
                "DELETE"
              ],
              "type": "string"
            },
            "condition": {
              "description": "An object, describing the condition to trigger on.",
              "properties": {
                "condition": {
                  "description": "Condition for the field content to trigger on.",
                  "enum": [
                    "equals",
                    "Equals",
                    "EQUALS"
                  ],
                  "type": "string"
                },
                "fieldName": {
                  "description": "Name of the attribute of the entity to filter entities by. An example value is ``importance`` attribute for the deployment entity.",
                  "maxLength": 50,
                  "type": "string"
                },
                "values": {
                  "description": "Array of field values to apply condition to trigger on. If ``null`` for ``equals`` condition, then any value for the field is accepted.",
                  "items": {
                    "maxLength": 50,
                    "type": "string"
                  },
                  "maxItems": 100,
                  "type": "array"
                }
              },
              "required": [
                "condition",
                "fieldName",
                "values"
              ],
              "type": "object"
            }
          },
          "required": [
            "action"
          ],
          "type": "object"
        },
        "labels": {
          "description": "Trigger Labels.",
          "properties": {
            "groupLabel": {
              "description": "Group Label.",
              "type": "string"
            },
            "label": {
              "description": "Label.",
              "type": "string"
            }
          },
          "required": [
            "groupLabel",
            "label"
          ],
          "type": "object"
        }
      },
      "required": [
        "entityType",
        "intendedAction"
      ],
      "type": "object"
    }
  },
  "required": [
    "active",
    "name",
    "trigger"
  ],
  "type": "object"
}
```

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| approvalPolicyId | path | string | true | ID of the Approval Policy. |
| body | body | ApprovalPolicy | false | none |

### Example responses

> 200 Response

```
{
  "properties": {
    "active": {
      "default": true,
      "description": "Whether this policy is active.",
      "type": "boolean"
    },
    "automaticAction": {
      "description": "An object describing the automated action on the Change Request that will be performed if the request is not resolved within a given time period after its creation. If ``null``, no automated actions will be taken on the related Change Requests.",
      "properties": {
        "action": {
          "description": "Action of the workflow automation.",
          "enum": [
            "cancel",
            "Cancel",
            "CANCEL",
            "approve",
            "Approve",
            "APPROVE"
          ],
          "type": "string"
        },
        "period": {
          "description": "Period (ISO 8601) after which an action is executed on a Change Request if it is not resolved or cancelled.",
          "format": "duration",
          "type": "string"
        }
      },
      "required": [
        "action",
        "period"
      ],
      "type": "object"
    },
    "id": {
      "description": "ID of the Approval Policy.",
      "type": "string"
    },
    "name": {
      "description": "Name of the Approval Policy.",
      "maxLength": 50,
      "type": "string"
    },
    "openRequests": {
      "description": "Number of open Change Requests associated with the policy.",
      "minimum": 0,
      "type": "integer"
    },
    "review": {
      "description": "An object describing review requirements for Change Requests, related to a specific policy. If ``null``, no additional review requirements are added to the related Change Requests.",
      "properties": {
        "groups": {
          "description": "A list of user groups that will be added as required reviewers on Change Requests for the entities that match the policy.",
          "items": {
            "properties": {
              "id": {
                "description": "ID of the user group.",
                "type": "string"
              },
              "name": {
                "description": "Name of the user group.",
                "maxLength": 50,
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "id"
            ],
            "type": "object"
          },
          "maxItems": 100,
          "minItems": 1,
          "type": "array"
        },
        "reminderPeriod": {
          "description": "Duration period in ISO 8601 format that indicates when to send a reminder for reviewing a Change Request after its creation or last reminder if it hasn't been approved yet. If ``null``, no review reminders are sent to the reviewers.",
          "format": "duration",
          "type": [
            "string",
            "null"
          ]
        }
      },
      "type": "object"
    },
    "trigger": {
      "description": "An object describing the trigger for the Approval Policy.",
      "properties": {
        "entityType": {
          "description": "Type of entity to trigger on.",
          "enum": [
            "deployment",
            "Deployment",
            "DEPLOYMENT",
            "deploymentModel",
            "DeploymentModel",
            "DEPLOYMENT_MODEL",
            "deploymentConfig",
            "DeploymentConfig",
            "DEPLOYMENT_CONFIG",
            "deploymentStatus",
            "DeploymentStatus",
            "DEPLOYMENT_STATUS",
            "deploymentMonitoringData",
            "DeploymentMonitoringData",
            "DEPLOYMENT_MONITORING_DATA"
          ],
          "type": "string"
        },
        "filterGroups": {
          "description": "A list of user groups to apply Approval Policy for. If User 'A' and User 'B' are both members of the same organisation, and User 'A' is a member of one of the groups listed in this field,but User 'B' is not, then an approval workflow will be triggerred for User 'A' on an action to the entity that matches policy condition, but not for User 'B'. If ``null``, approvals workflow will be triggered for all users.",
          "items": {
            "properties": {
              "id": {
                "description": "ID of the user group.",
                "type": "string"
              },
              "name": {
                "description": "Name of the user group.",
                "maxLength": 50,
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "id"
            ],
            "type": "object"
          },
          "maxItems": 100,
          "type": "array"
        },
        "intendedAction": {
          "description": "An object, describing the approvals workflow intended action.",
          "properties": {
            "action": {
              "description": "Type of action to trigger on.",
              "enum": [
                "create",
                "Create",
                "CREATE",
                "update",
                "Update",
                "UPDATE",
                "delete",
                "Delete",
                "DELETE"
              ],
              "type": "string"
            },
            "condition": {
              "description": "An object, describing the condition to trigger on.",
              "properties": {
                "condition": {
                  "description": "Condition for the field content to trigger on.",
                  "enum": [
                    "equals",
                    "Equals",
                    "EQUALS"
                  ],
                  "type": "string"
                },
                "fieldName": {
                  "description": "Name of the attribute of the entity to filter entities by. An example value is ``importance`` attribute for the deployment entity.",
                  "maxLength": 50,
                  "type": "string"
                },
                "values": {
                  "description": "Array of field values to apply condition to trigger on. If ``null`` for ``equals`` condition, then any value for the field is accepted.",
                  "items": {
                    "maxLength": 50,
                    "type": "string"
                  },
                  "maxItems": 100,
                  "type": "array"
                }
              },
              "required": [
                "condition",
                "fieldName",
                "values"
              ],
              "type": "object"
            }
          },
          "required": [
            "action"
          ],
          "type": "object"
        },
        "labels": {
          "description": "Trigger Labels.",
          "properties": {
            "groupLabel": {
              "description": "Group Label.",
              "type": "string"
            },
            "label": {
              "description": "Label.",
              "type": "string"
            }
          },
          "required": [
            "groupLabel",
            "label"
          ],
          "type": "object"
        }
      },
      "required": [
        "entityType",
        "intendedAction"
      ],
      "type": "object"
    }
  },
  "required": [
    "active",
    "id",
    "name",
    "openRequests",
    "trigger"
  ],
  "type": "object"
}
```

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 200 | OK | Approval Policy has been successfully updated. | ApprovalPolicyResponse |
| 403 | Forbidden | Approval Policy management feature is disabled for the user. | None |
| 404 | Not Found | Approval Policy does not exist or the user doesn't have access to it. | None |
| 422 | Unprocessable Entity | Approval Policy could not be created with the given input. | None |

## Retrieve associated Change Requests Info by approval policy ID

Operation path: `GET /api/v2/approvalPolicies/{approvalPolicyId}/shareableChangeRequests/`

Authentication requirements: `BearerAuth`

Get information about Change Requests submitted for a certain Approval Policy.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| offset | query | integer | false | The number of results to skip. |
| limit | query | integer | false | At most this many results are returned. The default may change without notice. |
| orderBy | query | string | false | Attribute to order Change Requests by. |
| approvalPolicyId | path | string | true | ID of the Approval Policy. |

### Example responses

> 200 Response

```
{
  "properties": {
    "count": {
      "description": "The number of items returned on this page.",
      "type": "integer"
    },
    "data": {
      "description": "List of Approval Policies.",
      "items": {
        "properties": {
          "changeRequestId": {
            "description": "ID of the Change Request.",
            "type": "string"
          },
          "createDate": {
            "description": "Change Request creation date.",
            "format": "date-time",
            "type": "string"
          },
          "entityId": {
            "description": "ID of the modified entity.",
            "type": "string"
          },
          "entityName": {
            "description": "Name of the modified entity.",
            "type": [
              "string",
              "null"
            ]
          },
          "requester": {
            "description": "Username of the account that initiated a Change Request.",
            "type": "string"
          },
          "state": {
            "description": "Status of the Change Request.",
            "enum": [
              "OPENED",
              "RESOLVED",
              "CANCELLED"
            ],
            "type": "string"
          },
          "updateDate": {
            "description": "Last date when Change Request was modified.",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "updatedBy": {
            "description": "Username of the account that last updated the Change Request.",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "changeRequestId",
          "createDate",
          "entityId",
          "entityName",
          "requester",
          "state",
          "updateDate",
          "updatedBy"
        ],
        "type": "object"
      },
      "type": "array"
    },
    "next": {
      "description": "The URL of the next page (if null, there is no next page).",
      "format": "uri",
      "type": [
        "string",
        "null"
      ]
    },
    "previous": {
      "description": "The URL of the previous page (if null, there is no previous page).",
      "format": "uri",
      "type": [
        "string",
        "null"
      ]
    },
    "totalCount": {
      "description": "The total number of items across all pages.",
      "type": "integer"
    }
  },
  "required": [
    "data",
    "next",
    "previous",
    "totalCount"
  ],
  "type": "object"
}
```

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 200 | OK | Change Requests information has been successfully retrieved. | ChangeRequestInfoListResponse |
| 403 | Forbidden | Approval Policy management feature is disabled for the user. | None |
| 404 | Not Found | Approval Policy does not exist or the user doesn't have access to it. | None |

## Get policy ID matching the query

Operation path: `GET /api/v2/approvalPolicyMatch/`

Authentication requirements: `BearerAuth`

Get policy ID matching the query.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| entityType | query | string | true | Searched typed of the entity. |
| action | query | string | true | Searched policy action. |
| fieldName | query | string,null | false | Name of the entity field to filter policies by. |
| fieldValue | query | string,null | false | Value of the entity field to filter policies by. |

### Enumerated Values

| Parameter | Value |
| --- | --- |
| entityType | [deployment, Deployment, DEPLOYMENT, deploymentModel, DeploymentModel, DEPLOYMENT_MODEL, deploymentConfig, DeploymentConfig, DEPLOYMENT_CONFIG, deploymentStatus, DeploymentStatus, DEPLOYMENT_STATUS, deploymentMonitoringData, DeploymentMonitoringData, DEPLOYMENT_MONITORING_DATA] |
| action | [create, Create, CREATE, update, Update, UPDATE, delete, Delete, DELETE] |

### Example responses

> 200 Response

```
{
  "properties": {
    "action": {
      "description": "Searched policy action.",
      "enum": [
        "create",
        "Create",
        "CREATE",
        "update",
        "Update",
        "UPDATE",
        "delete",
        "Delete",
        "DELETE"
      ],
      "type": "string"
    },
    "entityType": {
      "description": "Searched typed of the entity.",
      "enum": [
        "deployment",
        "Deployment",
        "DEPLOYMENT",
        "deploymentModel",
        "DeploymentModel",
        "DEPLOYMENT_MODEL",
        "deploymentConfig",
        "DeploymentConfig",
        "DEPLOYMENT_CONFIG",
        "deploymentStatus",
        "DeploymentStatus",
        "DEPLOYMENT_STATUS",
        "deploymentMonitoringData",
        "DeploymentMonitoringData",
        "DEPLOYMENT_MONITORING_DATA"
      ],
      "type": "string"
    },
    "fieldName": {
      "description": "Name of the entity field to filter policies by.",
      "maxLength": 50,
      "type": [
        "string",
        "null"
      ]
    },
    "fieldValue": {
      "description": "Value of the entity field to filter policies by.",
      "maxLength": 50,
      "type": [
        "string",
        "null"
      ]
    },
    "policyId": {
      "description": "ID of the matching approval policy. ``null`` if no matching policies found.",
      "type": [
        "string",
        "null"
      ]
    }
  },
  "required": [
    "action",
    "entityType",
    "policyId"
  ],
  "type": "object"
}
```

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 200 | OK | Search executed successfully. | ApprovalPolicyMatchResponse |
| 403 | Forbidden | Approval Policy management feature is disabled for the user. | None |

## Get a list of available policy triggers

Operation path: `GET /api/v2/approvalPolicyTriggers/`

Authentication requirements: `BearerAuth`

Get a list of available policy triggers.

### Example responses

> 200 Response

```
{
  "properties": {
    "data": {
      "description": "List of available Approval Policy Triggers.",
      "items": {
        "description": "An object describing the trigger for the Approval Policy.",
        "properties": {
          "entityType": {
            "description": "Type of entity to trigger on.",
            "enum": [
              "deployment",
              "Deployment",
              "DEPLOYMENT",
              "deploymentModel",
              "DeploymentModel",
              "DEPLOYMENT_MODEL",
              "deploymentConfig",
              "DeploymentConfig",
              "DEPLOYMENT_CONFIG",
              "deploymentStatus",
              "DeploymentStatus",
              "DEPLOYMENT_STATUS",
              "deploymentMonitoringData",
              "DeploymentMonitoringData",
              "DEPLOYMENT_MONITORING_DATA"
            ],
            "type": "string"
          },
          "filterGroups": {
            "description": "A list of user groups to apply Approval Policy for. If User 'A' and User 'B' are both members of the same organisation, and User 'A' is a member of one of the groups listed in this field,but User 'B' is not, then an approval workflow will be triggerred for User 'A' on an action to the entity that matches policy condition, but not for User 'B'. If ``null``, approvals workflow will be triggered for all users.",
            "items": {
              "properties": {
                "id": {
                  "description": "ID of the user group.",
                  "type": "string"
                },
                "name": {
                  "description": "Name of the user group.",
                  "maxLength": 50,
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "required": [
                "id"
              ],
              "type": "object"
            },
            "maxItems": 100,
            "type": "array"
          },
          "intendedAction": {
            "description": "An object, describing the approvals workflow intended action.",
            "properties": {
              "action": {
                "description": "Type of action to trigger on.",
                "enum": [
                  "create",
                  "Create",
                  "CREATE",
                  "update",
                  "Update",
                  "UPDATE",
                  "delete",
                  "Delete",
                  "DELETE"
                ],
                "type": "string"
              },
              "condition": {
                "description": "An object, describing the condition to trigger on.",
                "properties": {
                  "condition": {
                    "description": "Condition for the field content to trigger on.",
                    "enum": [
                      "equals",
                      "Equals",
                      "EQUALS"
                    ],
                    "type": "string"
                  },
                  "fieldName": {
                    "description": "Name of the attribute of the entity to filter entities by. An example value is ``importance`` attribute for the deployment entity.",
                    "maxLength": 50,
                    "type": "string"
                  },
                  "values": {
                    "description": "Array of field values to apply condition to trigger on. If ``null`` for ``equals`` condition, then any value for the field is accepted.",
                    "items": {
                      "maxLength": 50,
                      "type": "string"
                    },
                    "maxItems": 100,
                    "type": "array"
                  }
                },
                "required": [
                  "condition",
                  "fieldName",
                  "values"
                ],
                "type": "object"
              }
            },
            "required": [
              "action"
            ],
            "type": "object"
          },
          "labels": {
            "description": "Trigger Labels.",
            "properties": {
              "groupLabel": {
                "description": "Group Label.",
                "type": "string"
              },
              "label": {
                "description": "Label.",
                "type": "string"
              }
            },
            "required": [
              "groupLabel",
              "label"
            ],
            "type": "object"
          }
        },
        "required": [
          "entityType",
          "intendedAction"
        ],
        "type": "object"
      },
      "type": "array"
    }
  },
  "required": [
    "data"
  ],
  "type": "object"
}
```

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 200 | OK | The list of triggers is successfully generated. | ApprovalWorkflowListTriggerResponse |
| 403 | Forbidden | Approval Policy management feature is disabled for the user. | None |

## List Change Requests

Operation path: `GET /api/v2/changeRequests/`

Authentication requirements: `BearerAuth`

List all Change Requests accessible by the user for the given product entity type.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| offset | query | integer | false | The number of results to skip. |
| limit | query | integer | false | At most this many results are returned. The default may change without notice. |
| entityType | query | string | true | Type of the entity to filter requests by. |
| entityId | query | any | false | ID of the entity to filter change requests by. |
| myRequests | query | string | false | Filter change requests by the owner. If true, only returns change requests owned by the user. If false, only returns change requests owned by other users but accessible to the requester. |
| showApproved | query | string | false | Filter change requests by status. If true, only returns approved change requests. If false, only returns not approved change requests. |
| showCancelled | query | string | false | Filter change requests by status. If true, only returns cancelled change requests. If false, only returns not cancelled change requests. |
| status | query | any | false | Filter change requests by status. |
| orderBy | query | string | false | The order that the results should be retrieved in. |

### Enumerated Values

| Parameter | Value |
| --- | --- |
| entityType | [deployment, Deployment, DEPLOYMENT] |
| myRequests | [false, False, true, True] |
| showApproved | [false, False, true, True] |
| showCancelled | [false, False, true, True] |
| orderBy | [createdAt, -createdAt, processedAt, -processedAt, updatedAt, -updatedAt] |

### Example responses

> 201 Response

```
{
  "properties": {
    "count": {
      "description": "The number of items returned on this page.",
      "type": "integer"
    },
    "data": {
      "description": "List of Change Requests",
      "items": {
        "properties": {
          "action": {
            "description": "Actions the user can take on the entity. Each entity type has a specific set of actions.",
            "enum": [
              "approve",
              "Approve",
              "APPROVE",
              "changeStatus",
              "ChangeStatus",
              "CHANGE_STATUS",
              "changeImportance",
              "ChangeImportance",
              "CHANGE_IMPORTANCE",
              "cleanupStats",
              "CleanupStats",
              "CLEANUP_STATS",
              "delete",
              "Delete",
              "DELETE",
              "replaceModel",
              "ReplaceModel",
              "REPLACE_MODEL",
              "replaceModelPackage",
              "ReplaceModelPackage",
              "REPLACE_MODEL_PACKAGE",
              "updateSecondaryDatasetConfigs",
              "UpdateSecondaryDatasetConfigs",
              "UPDATE_SECONDARY_DATASET_CONFIGS"
            ],
            "type": "string"
          },
          "autoApply": {
            "default": false,
            "description": "Whether to automatically apply the change when the request is approved. If `true`, the requested changes will be applied on approval.",
            "type": "boolean"
          },
          "change": {
            "description": "Change that the user wants to apply to the entity. Needs to be provided if the action, like `approve` action for a deployment, requires additional parameters . `null` if the action does not require any additional parameters to be applied. ",
            "oneOf": [
              {
                "description": "Approve a deployment.",
                "properties": {
                  "approvalStatus": {
                    "description": "Deployment approval status to set.",
                    "enum": [
                      "APPROVED"
                    ],
                    "type": "string"
                  }
                },
                "required": [
                  "approvalStatus"
                ],
                "type": "object"
              },
              {
                "description": "Change deployment status.",
                "properties": {
                  "status": {
                    "description": "Deployment status to set.",
                    "enum": [
                      "active",
                      "inactive"
                    ],
                    "type": "string"
                  }
                },
                "required": [
                  "status"
                ],
                "type": "object"
              },
              {
                "description": "Change deployment importance.",
                "properties": {
                  "importance": {
                    "description": "Deployment Importance to set.",
                    "enum": [
                      "CRITICAL",
                      "HIGH",
                      "MODERATE",
                      "LOW"
                    ],
                    "type": "string"
                  }
                },
                "required": [
                  "importance"
                ],
                "type": "object"
              },
              {
                "description": "Cleanup deployment stats.",
                "properties": {
                  "dataType": {
                    "description": "Type of stats to cleanup.",
                    "enum": [
                      "monitoring"
                    ],
                    "type": "string"
                  },
                  "end": {
                    "description": "If specified, the stats will be cleaned up to this timestamp. If ``null`` all stats till the deployment end forecast date will be cleaned up. Defaults to ``null``.",
                    "format": "date-time",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "modelId": {
                    "default": null,
                    "description": "ID of the model to remove deployment stats for. If ``null``, the stats will be cleaned up for all models in the mathcing period. Defaults to ``null``.",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "start": {
                    "description": "If specified, the stats will be cleaned up from this timestamp. If ``null`` all stats from the deployment start forecast date will be cleaned up. Defaults to ``null``.",
                    "format": "date-time",
                    "type": [
                      "string",
                      "null"
                    ]
                  }
                },
                "required": [
                  "dataType",
                  "end",
                  "modelId",
                  "start"
                ],
                "type": "object"
              },
              {
                "description": "Replace model in deployment.",
                "properties": {
                  "modelId": {
                    "description": "ID of the Model to deploy.",
                    "type": "string"
                  },
                  "replacementReason": {
                    "default": "other",
                    "description": "Reason for replacement.",
                    "enum": [
                      "accuracy",
                      "data_drift",
                      "errors",
                      "scheduled_refresh",
                      "scoring_speed",
                      "deprecation",
                      "other"
                    ],
                    "type": "string"
                  }
                },
                "required": [
                  "modelId",
                  "replacementReason"
                ],
                "type": "object"
              },
              {
                "description": "Replace model package in deployment.",
                "properties": {
                  "modelPackageId": {
                    "description": "ID of the Model Package to deploy.",
                    "type": "string"
                  },
                  "replacementReason": {
                    "default": "other",
                    "description": "Reason for replacement.",
                    "enum": [
                      "accuracy",
                      "data_drift",
                      "errors",
                      "scheduled_refresh",
                      "scoring_speed",
                      "deprecation",
                      "other"
                    ],
                    "type": "string"
                  }
                },
                "required": [
                  "modelPackageId",
                  "replacementReason"
                ],
                "type": "object"
              },
              {
                "description": "Update secondary dataset config for deployment.",
                "properties": {
                  "secondaryDatasetsConfigId": {
                    "description": "ID of the secondary dataset configs.",
                    "type": "string"
                  }
                },
                "required": [
                  "secondaryDatasetsConfigId"
                ],
                "type": "object"
              },
              {
                "type": "null"
              }
            ]
          },
          "changeVersionId": {
            "description": "ID of the current version of change within this Change Request. It's possible to modify the changes that have been requested. At the same time, we need to make sure that review is associated with the correct changes, that's why we implement versioning on the changes and associate user reviews with the specific Change Request versions.",
            "type": "string"
          },
          "comment": {
            "description": "Free form text to comment on the requested changes.",
            "maxLength": 10000,
            "type": "string"
          },
          "createdAt": {
            "description": "Timestamp when the request was created.",
            "format": "date-time",
            "type": "string"
          },
          "diff": {
            "description": "The difference between the current entity state and the state of the entity if the Change Request gets applied.",
            "properties": {
              "changesFrom": {
                "description": "List of human readable messages describing the state of the entity before changes are applied.",
                "items": {
                  "description": "Single message line.",
                  "type": "string"
                },
                "maxItems": 1000,
                "type": "array"
              },
              "changesTo": {
                "description": "List of human readable messages describing the state of the entity after changes are applied.",
                "items": {
                  "description": "Single message line.",
                  "type": "string"
                },
                "maxItems": 1000,
                "type": "array"
              }
            },
            "required": [
              "changesFrom",
              "changesTo"
            ],
            "type": "object"
          },
          "entityId": {
            "description": "ID of the Product Entity the request is intended to change.",
            "type": "string"
          },
          "entityType": {
            "description": "Type of the Product Entity that is requested to be changed.",
            "enum": [
              "deployment",
              "Deployment",
              "DEPLOYMENT"
            ],
            "type": "string"
          },
          "id": {
            "description": "ID of the Change Request.",
            "type": "string"
          },
          "numApprovalsRequired": {
            "description": "Number of approving reviews required for the Change Request to be considered approved.",
            "minimum": 0,
            "type": "integer"
          },
          "processedAt": {
            "description": "Timestamp when the request was processed.",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "status": {
            "description": "Change Request Status.",
            "enum": [
              "pending",
              "Pending",
              "PENDING",
              "approved",
              "Approved",
              "APPROVED",
              "changesRequested",
              "ChangesRequested",
              "CHANGES_REQUESTED",
              "resolved",
              "Resolved",
              "RESOLVED",
              "cancelled",
              "Cancelled",
              "CANCELLED"
            ],
            "type": "string"
          },
          "statusChangedAt": {
            "description": "Timestamp when the current request status was set. `null` if status is set by the system.",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "statusChangedBy": {
            "description": "ID of the user who set the current request status. `null` if the status was set by the system.",
            "type": [
              "string",
              "null"
            ]
          },
          "updatedAt": {
            "description": "Timestamp when the request was last modified.",
            "format": "date-time",
            "type": "string"
          },
          "userId": {
            "description": "ID of the user, who created the Change Request.",
            "type": "string"
          },
          "userName": {
            "description": "Email of the user, who created the Change Request",
            "type": [
              "string",
              "null"
            ]
          },
          "userOperations": {
            "description": "A set operations the user can or can not make with the Change Request.",
            "properties": {
              "canCancel": {
                "description": "Whether the user can cancel the Change Request.",
                "type": "boolean"
              },
              "canComment": {
                "description": "Whether the user can create commenting review on the Change Request.",
                "type": "boolean"
              },
              "canResolve": {
                "description": "Whether the user can resolve the Change Request.",
                "type": "boolean"
              },
              "canReview": {
                "description": "Whether the user can review (approve or request updates) the Change Request.",
                "type": "boolean"
              },
              "canUpdate": {
                "description": "Whether the user can update the Change Request.",
                "type": "boolean"
              }
            },
            "required": [
              "canCancel",
              "canComment",
              "canResolve",
              "canReview",
              "canUpdate"
            ],
            "type": "object"
          }
        },
        "required": [
          "action",
          "autoApply",
          "change",
          "changeVersionId",
          "createdAt",
          "diff",
          "entityId",
          "entityType",
          "id",
          "numApprovalsRequired",
          "processedAt",
          "status",
          "statusChangedAt",
          "statusChangedBy",
          "updatedAt",
          "userId",
          "userName",
          "userOperations"
        ],
        "type": "object"
      },
      "maxItems": 1000,
      "type": "array"
    },
    "next": {
      "description": "The URL of the next page (if null, there is no next page).",
      "format": "uri",
      "type": [
        "string",
        "null"
      ]
    },
    "previous": {
      "description": "The URL of the previous page (if null, there is no previous page).",
      "format": "uri",
      "type": [
        "string",
        "null"
      ]
    },
    "totalCount": {
      "description": "The total number of items across all pages.",
      "type": "integer"
    }
  },
  "required": [
    "data",
    "next",
    "previous",
    "totalCount"
  ],
  "type": "object"
}
```

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 201 | Created | none | ChangeRequestsListResponse |

## Create Change Request

Operation path: `POST /api/v2/changeRequests/`

Authentication requirements: `BearerAuth`

Request changes for a supported product entity. For now, you can request changes for deployments only.

### Body parameter

```
{
  "discriminator": {
    "propertyName": "action"
  },
  "oneOf": [
    {
      "properties": {
        "action": {
          "description": "Actions the user can take on the entity. Each entity type has a specific set of actions.",
          "enum": [
            "approve"
          ],
          "type": "string"
        },
        "autoApply": {
          "default": false,
          "description": "Whether to automatically apply the change when the request is approved. If `true`, the requested changes will be applied on approval.",
          "type": "boolean"
        },
        "change": {
          "description": "Approve a deployment.",
          "properties": {
            "approvalStatus": {
              "description": "Deployment approval status to set.",
              "enum": [
                "APPROVED"
              ],
              "type": "string"
            }
          },
          "required": [
            "approvalStatus"
          ],
          "type": "object"
        },
        "comment": {
          "description": "Free form text to comment on the requested changes.",
          "maxLength": 10000,
          "type": "string"
        },
        "entityId": {
          "description": "ID of the Product Entity the request is intended to change.",
          "type": "string"
        },
        "entityType": {
          "description": "Type of the Product Entity that is requested to be changed.",
          "enum": [
            "deployment",
            "Deployment",
            "DEPLOYMENT"
          ],
          "type": "string"
        }
      },
      "required": [
        "action",
        "autoApply",
        "change",
        "entityId",
        "entityType"
      ],
      "type": "object"
    },
    {
      "properties": {
        "action": {
          "description": "Actions the user can take on the entity. Each entity type has a specific set of actions.",
          "enum": [
            "changeStatus"
          ],
          "type": "string"
        },
        "autoApply": {
          "default": false,
          "description": "Whether to automatically apply the change when the request is approved. If `true`, the requested changes will be applied on approval.",
          "type": "boolean"
        },
        "change": {
          "description": "Change deployment status.",
          "properties": {
            "status": {
              "description": "Deployment status to set.",
              "enum": [
                "active",
                "inactive"
              ],
              "type": "string"
            }
          },
          "required": [
            "status"
          ],
          "type": "object"
        },
        "comment": {
          "description": "Free form text to comment on the requested changes.",
          "maxLength": 10000,
          "type": "string"
        },
        "entityId": {
          "description": "ID of the Product Entity the request is intended to change.",
          "type": "string"
        },
        "entityType": {
          "description": "Type of the Product Entity that is requested to be changed.",
          "enum": [
            "deployment",
            "Deployment",
            "DEPLOYMENT"
          ],
          "type": "string"
        }
      },
      "required": [
        "action",
        "autoApply",
        "change",
        "entityId",
        "entityType"
      ],
      "type": "object"
    },
    {
      "properties": {
        "action": {
          "description": "Actions the user can take on the entity. Each entity type has a specific set of actions.",
          "enum": [
            "changeImportance"
          ],
          "type": "string"
        },
        "autoApply": {
          "default": false,
          "description": "Whether to automatically apply the change when the request is approved. If `true`, the requested changes will be applied on approval.",
          "type": "boolean"
        },
        "change": {
          "description": "Change deployment importance.",
          "properties": {
            "importance": {
              "description": "Deployment Importance to set.",
              "enum": [
                "CRITICAL",
                "HIGH",
                "MODERATE",
                "LOW"
              ],
              "type": "string"
            }
          },
          "required": [
            "importance"
          ],
          "type": "object"
        },
        "comment": {
          "description": "Free form text to comment on the requested changes.",
          "maxLength": 10000,
          "type": "string"
        },
        "entityId": {
          "description": "ID of the Product Entity the request is intended to change.",
          "type": "string"
        },
        "entityType": {
          "description": "Type of the Product Entity that is requested to be changed.",
          "enum": [
            "deployment",
            "Deployment",
            "DEPLOYMENT"
          ],
          "type": "string"
        }
      },
      "required": [
        "action",
        "autoApply",
        "change",
        "entityId",
        "entityType"
      ],
      "type": "object"
    },
    {
      "properties": {
        "action": {
          "description": "Actions the user can take on the entity. Each entity type has a specific set of actions.",
          "enum": [
            "cleanupStats"
          ],
          "type": "string"
        },
        "autoApply": {
          "default": false,
          "description": "Whether to automatically apply the change when the request is approved. If `true`, the requested changes will be applied on approval.",
          "type": "boolean"
        },
        "change": {
          "description": "Cleanup deployment stats.",
          "properties": {
            "dataType": {
              "description": "Type of stats to cleanup.",
              "enum": [
                "monitoring"
              ],
              "type": "string"
            },
            "end": {
              "description": "If specified, the stats will be cleaned up to this timestamp. If ``null`` all stats till the deployment end forecast date will be cleaned up. Defaults to ``null``.",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "modelId": {
              "default": null,
              "description": "ID of the model to remove deployment stats for. If ``null``, the stats will be cleaned up for all models in the mathcing period. Defaults to ``null``.",
              "type": [
                "string",
                "null"
              ]
            },
            "start": {
              "description": "If specified, the stats will be cleaned up from this timestamp. If ``null`` all stats from the deployment start forecast date will be cleaned up. Defaults to ``null``.",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            }
          },
          "required": [
            "dataType",
            "end",
            "modelId",
            "start"
          ],
          "type": "object"
        },
        "comment": {
          "description": "Free form text to comment on the requested changes.",
          "maxLength": 10000,
          "type": "string"
        },
        "entityId": {
          "description": "ID of the Product Entity the request is intended to change.",
          "type": "string"
        },
        "entityType": {
          "description": "Type of the Product Entity that is requested to be changed.",
          "enum": [
            "deployment",
            "Deployment",
            "DEPLOYMENT"
          ],
          "type": "string"
        }
      },
      "required": [
        "action",
        "autoApply",
        "change",
        "entityId",
        "entityType"
      ],
      "type": "object"
    },
    {
      "properties": {
        "action": {
          "description": "Actions the user can take on the entity. Each entity type has a specific set of actions.",
          "enum": [
            "delete"
          ],
          "type": "string"
        },
        "autoApply": {
          "default": false,
          "description": "Whether to automatically apply the change when the request is approved. If `true`, the requested changes will be applied on approval.",
          "type": "boolean"
        },
        "change": {
          "description": "Delete a deployment.",
          "properties": {
            "defaultDeploymentId": {
              "description": "Used by management agent to recalculate endpoint traffic. Traffic from the deploymentbeing deleted flipped to a default deployment.",
              "type": "string"
            },
            "ignoreManagementAgent": {
              "default": "false",
              "description": "Do not wait for management agent to delete the deployment first.",
              "enum": [
                "false",
                "False",
                "true",
                "True"
              ],
              "type": "string"
            }
          },
          "type": "object"
        },
        "comment": {
          "description": "Free form text to comment on the requested changes.",
          "maxLength": 10000,
          "type": "string"
        },
        "entityId": {
          "description": "ID of the Product Entity the request is intended to change.",
          "type": "string"
        },
        "entityType": {
          "description": "Type of the Product Entity that is requested to be changed.",
          "enum": [
            "deployment",
            "Deployment",
            "DEPLOYMENT"
          ],
          "type": "string"
        }
      },
      "required": [
        "action",
        "autoApply",
        "entityId",
        "entityType"
      ],
      "type": "object"
    },
    {
      "properties": {
        "action": {
          "description": "Actions the user can take on the entity. Each entity type has a specific set of actions.",
          "enum": [
            "replaceModel"
          ],
          "type": "string"
        },
        "autoApply": {
          "default": false,
          "description": "Whether to automatically apply the change when the request is approved. If `true`, the requested changes will be applied on approval.",
          "type": "boolean"
        },
        "change": {
          "description": "Replace model in deployment.",
          "properties": {
            "modelId": {
              "description": "ID of the Model to deploy.",
              "type": "string"
            },
            "replacementReason": {
              "default": "other",
              "description": "Reason for replacement.",
              "enum": [
                "accuracy",
                "data_drift",
                "errors",
                "scheduled_refresh",
                "scoring_speed",
                "deprecation",
                "other"
              ],
              "type": "string"
            }
          },
          "required": [
            "modelId",
            "replacementReason"
          ],
          "type": "object"
        },
        "comment": {
          "description": "Free form text to comment on the requested changes.",
          "maxLength": 10000,
          "type": "string"
        },
        "entityId": {
          "description": "ID of the Product Entity the request is intended to change.",
          "type": "string"
        },
        "entityType": {
          "description": "Type of the Product Entity that is requested to be changed.",
          "enum": [
            "deployment",
            "Deployment",
            "DEPLOYMENT"
          ],
          "type": "string"
        }
      },
      "required": [
        "action",
        "autoApply",
        "change",
        "entityId",
        "entityType"
      ],
      "type": "object"
    },
    {
      "properties": {
        "action": {
          "description": "Actions the user can take on the entity. Each entity type has a specific set of actions.",
          "enum": [
            "replaceModelPackage"
          ],
          "type": "string"
        },
        "autoApply": {
          "default": false,
          "description": "Whether to automatically apply the change when the request is approved. If `true`, the requested changes will be applied on approval.",
          "type": "boolean"
        },
        "change": {
          "description": "Replace model package in deployment.",
          "properties": {
            "modelPackageId": {
              "description": "ID of the Model Package to deploy.",
              "type": "string"
            },
            "replacementReason": {
              "default": "other",
              "description": "Reason for replacement.",
              "enum": [
                "accuracy",
                "data_drift",
                "errors",
                "scheduled_refresh",
                "scoring_speed",
                "deprecation",
                "other"
              ],
              "type": "string"
            }
          },
          "required": [
            "modelPackageId",
            "replacementReason"
          ],
          "type": "object"
        },
        "comment": {
          "description": "Free form text to comment on the requested changes.",
          "maxLength": 10000,
          "type": "string"
        },
        "entityId": {
          "description": "ID of the Product Entity the request is intended to change.",
          "type": "string"
        },
        "entityType": {
          "description": "Type of the Product Entity that is requested to be changed.",
          "enum": [
            "deployment",
            "Deployment",
            "DEPLOYMENT"
          ],
          "type": "string"
        }
      },
      "required": [
        "action",
        "autoApply",
        "change",
        "entityId",
        "entityType"
      ],
      "type": "object"
    },
    {
      "properties": {
        "action": {
          "description": "Actions the user can take on the entity. Each entity type has a specific set of actions.",
          "enum": [
            "updateSecondaryDatasetConfigs"
          ],
          "type": "string"
        },
        "autoApply": {
          "default": false,
          "description": "Whether to automatically apply the change when the request is approved. If `true`, the requested changes will be applied on approval.",
          "type": "boolean"
        },
        "change": {
          "description": "Update secondary dataset config for deployment.",
          "properties": {
            "secondaryDatasetsConfigId": {
              "description": "ID of the secondary dataset configs.",
              "type": "string"
            }
          },
          "required": [
            "secondaryDatasetsConfigId"
          ],
          "type": "object"
        },
        "comment": {
          "description": "Free form text to comment on the requested changes.",
          "maxLength": 10000,
          "type": "string"
        },
        "entityId": {
          "description": "ID of the Product Entity the request is intended to change.",
          "type": "string"
        },
        "entityType": {
          "description": "Type of the Product Entity that is requested to be changed.",
          "enum": [
            "deployment",
            "Deployment",
            "DEPLOYMENT"
          ],
          "type": "string"
        }
      },
      "required": [
        "action",
        "autoApply",
        "change",
        "entityId",
        "entityType"
      ],
      "type": "object"
    }
  ]
}
```

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| body | body | ChangeRequestCreate | false | none |

### Example responses

> 201 Response

```
{
  "properties": {
    "action": {
      "description": "Actions the user can take on the entity. Each entity type has a specific set of actions.",
      "enum": [
        "approve",
        "Approve",
        "APPROVE",
        "changeStatus",
        "ChangeStatus",
        "CHANGE_STATUS",
        "changeImportance",
        "ChangeImportance",
        "CHANGE_IMPORTANCE",
        "cleanupStats",
        "CleanupStats",
        "CLEANUP_STATS",
        "delete",
        "Delete",
        "DELETE",
        "replaceModel",
        "ReplaceModel",
        "REPLACE_MODEL",
        "replaceModelPackage",
        "ReplaceModelPackage",
        "REPLACE_MODEL_PACKAGE",
        "updateSecondaryDatasetConfigs",
        "UpdateSecondaryDatasetConfigs",
        "UPDATE_SECONDARY_DATASET_CONFIGS"
      ],
      "type": "string"
    },
    "autoApply": {
      "default": false,
      "description": "Whether to automatically apply the change when the request is approved. If `true`, the requested changes will be applied on approval.",
      "type": "boolean"
    },
    "change": {
      "description": "Change that the user wants to apply to the entity. Needs to be provided if the action, like `approve` action for a deployment, requires additional parameters . `null` if the action does not require any additional parameters to be applied. ",
      "oneOf": [
        {
          "description": "Approve a deployment.",
          "properties": {
            "approvalStatus": {
              "description": "Deployment approval status to set.",
              "enum": [
                "APPROVED"
              ],
              "type": "string"
            }
          },
          "required": [
            "approvalStatus"
          ],
          "type": "object"
        },
        {
          "description": "Change deployment status.",
          "properties": {
            "status": {
              "description": "Deployment status to set.",
              "enum": [
                "active",
                "inactive"
              ],
              "type": "string"
            }
          },
          "required": [
            "status"
          ],
          "type": "object"
        },
        {
          "description": "Change deployment importance.",
          "properties": {
            "importance": {
              "description": "Deployment Importance to set.",
              "enum": [
                "CRITICAL",
                "HIGH",
                "MODERATE",
                "LOW"
              ],
              "type": "string"
            }
          },
          "required": [
            "importance"
          ],
          "type": "object"
        },
        {
          "description": "Cleanup deployment stats.",
          "properties": {
            "dataType": {
              "description": "Type of stats to cleanup.",
              "enum": [
                "monitoring"
              ],
              "type": "string"
            },
            "end": {
              "description": "If specified, the stats will be cleaned up to this timestamp. If ``null`` all stats till the deployment end forecast date will be cleaned up. Defaults to ``null``.",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "modelId": {
              "default": null,
              "description": "ID of the model to remove deployment stats for. If ``null``, the stats will be cleaned up for all models in the mathcing period. Defaults to ``null``.",
              "type": [
                "string",
                "null"
              ]
            },
            "start": {
              "description": "If specified, the stats will be cleaned up from this timestamp. If ``null`` all stats from the deployment start forecast date will be cleaned up. Defaults to ``null``.",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            }
          },
          "required": [
            "dataType",
            "end",
            "modelId",
            "start"
          ],
          "type": "object"
        },
        {
          "description": "Replace model in deployment.",
          "properties": {
            "modelId": {
              "description": "ID of the Model to deploy.",
              "type": "string"
            },
            "replacementReason": {
              "default": "other",
              "description": "Reason for replacement.",
              "enum": [
                "accuracy",
                "data_drift",
                "errors",
                "scheduled_refresh",
                "scoring_speed",
                "deprecation",
                "other"
              ],
              "type": "string"
            }
          },
          "required": [
            "modelId",
            "replacementReason"
          ],
          "type": "object"
        },
        {
          "description": "Replace model package in deployment.",
          "properties": {
            "modelPackageId": {
              "description": "ID of the Model Package to deploy.",
              "type": "string"
            },
            "replacementReason": {
              "default": "other",
              "description": "Reason for replacement.",
              "enum": [
                "accuracy",
                "data_drift",
                "errors",
                "scheduled_refresh",
                "scoring_speed",
                "deprecation",
                "other"
              ],
              "type": "string"
            }
          },
          "required": [
            "modelPackageId",
            "replacementReason"
          ],
          "type": "object"
        },
        {
          "description": "Update secondary dataset config for deployment.",
          "properties": {
            "secondaryDatasetsConfigId": {
              "description": "ID of the secondary dataset configs.",
              "type": "string"
            }
          },
          "required": [
            "secondaryDatasetsConfigId"
          ],
          "type": "object"
        },
        {
          "type": "null"
        }
      ]
    },
    "changeVersionId": {
      "description": "ID of the current version of change within this Change Request. It's possible to modify the changes that have been requested. At the same time, we need to make sure that review is associated with the correct changes, that's why we implement versioning on the changes and associate user reviews with the specific Change Request versions.",
      "type": "string"
    },
    "comment": {
      "description": "Free form text to comment on the requested changes.",
      "maxLength": 10000,
      "type": "string"
    },
    "createdAt": {
      "description": "Timestamp when the request was created.",
      "format": "date-time",
      "type": "string"
    },
    "diff": {
      "description": "The difference between the current entity state and the state of the entity if the Change Request gets applied.",
      "properties": {
        "changesFrom": {
          "description": "List of human readable messages describing the state of the entity before changes are applied.",
          "items": {
            "description": "Single message line.",
            "type": "string"
          },
          "maxItems": 1000,
          "type": "array"
        },
        "changesTo": {
          "description": "List of human readable messages describing the state of the entity after changes are applied.",
          "items": {
            "description": "Single message line.",
            "type": "string"
          },
          "maxItems": 1000,
          "type": "array"
        }
      },
      "required": [
        "changesFrom",
        "changesTo"
      ],
      "type": "object"
    },
    "entityId": {
      "description": "ID of the Product Entity the request is intended to change.",
      "type": "string"
    },
    "entityType": {
      "description": "Type of the Product Entity that is requested to be changed.",
      "enum": [
        "deployment",
        "Deployment",
        "DEPLOYMENT"
      ],
      "type": "string"
    },
    "id": {
      "description": "ID of the Change Request.",
      "type": "string"
    },
    "numApprovalsRequired": {
      "description": "Number of approving reviews required for the Change Request to be considered approved.",
      "minimum": 0,
      "type": "integer"
    },
    "processedAt": {
      "description": "Timestamp when the request was processed.",
      "format": "date-time",
      "type": [
        "string",
        "null"
      ]
    },
    "status": {
      "description": "Change Request Status.",
      "enum": [
        "pending",
        "Pending",
        "PENDING",
        "approved",
        "Approved",
        "APPROVED",
        "changesRequested",
        "ChangesRequested",
        "CHANGES_REQUESTED",
        "resolved",
        "Resolved",
        "RESOLVED",
        "cancelled",
        "Cancelled",
        "CANCELLED"
      ],
      "type": "string"
    },
    "statusChangedAt": {
      "description": "Timestamp when the current request status was set. `null` if status is set by the system.",
      "format": "date-time",
      "type": [
        "string",
        "null"
      ]
    },
    "statusChangedBy": {
      "description": "ID of the user who set the current request status. `null` if the status was set by the system.",
      "type": [
        "string",
        "null"
      ]
    },
    "updatedAt": {
      "description": "Timestamp when the request was last modified.",
      "format": "date-time",
      "type": "string"
    },
    "userId": {
      "description": "ID of the user, who created the Change Request.",
      "type": "string"
    },
    "userName": {
      "description": "Email of the user, who created the Change Request",
      "type": [
        "string",
        "null"
      ]
    },
    "userOperations": {
      "description": "A set operations the user can or can not make with the Change Request.",
      "properties": {
        "canCancel": {
          "description": "Whether the user can cancel the Change Request.",
          "type": "boolean"
        },
        "canComment": {
          "description": "Whether the user can create commenting review on the Change Request.",
          "type": "boolean"
        },
        "canResolve": {
          "description": "Whether the user can resolve the Change Request.",
          "type": "boolean"
        },
        "canReview": {
          "description": "Whether the user can review (approve or request updates) the Change Request.",
          "type": "boolean"
        },
        "canUpdate": {
          "description": "Whether the user can update the Change Request.",
          "type": "boolean"
        }
      },
      "required": [
        "canCancel",
        "canComment",
        "canResolve",
        "canReview",
        "canUpdate"
      ],
      "type": "object"
    }
  },
  "required": [
    "action",
    "autoApply",
    "change",
    "changeVersionId",
    "createdAt",
    "diff",
    "entityId",
    "entityType",
    "id",
    "numApprovalsRequired",
    "processedAt",
    "status",
    "statusChangedAt",
    "statusChangedBy",
    "updatedAt",
    "userId",
    "userName",
    "userOperations"
  ],
  "type": "object"
}
```

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 201 | Created | Change Request Created. | ChangeRequestResponse |

## Retrieve Change Request by change request ID

Operation path: `GET /api/v2/changeRequests/{changeRequestId}/`

Authentication requirements: `BearerAuth`

Retrieve Change Request by ID.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| changeRequestId | path | string | true | ID of the Change Request. |

### Example responses

> 200 Response

```
{
  "properties": {
    "action": {
      "description": "Actions the user can take on the entity. Each entity type has a specific set of actions.",
      "enum": [
        "approve",
        "Approve",
        "APPROVE",
        "changeStatus",
        "ChangeStatus",
        "CHANGE_STATUS",
        "changeImportance",
        "ChangeImportance",
        "CHANGE_IMPORTANCE",
        "cleanupStats",
        "CleanupStats",
        "CLEANUP_STATS",
        "delete",
        "Delete",
        "DELETE",
        "replaceModel",
        "ReplaceModel",
        "REPLACE_MODEL",
        "replaceModelPackage",
        "ReplaceModelPackage",
        "REPLACE_MODEL_PACKAGE",
        "updateSecondaryDatasetConfigs",
        "UpdateSecondaryDatasetConfigs",
        "UPDATE_SECONDARY_DATASET_CONFIGS"
      ],
      "type": "string"
    },
    "autoApply": {
      "default": false,
      "description": "Whether to automatically apply the change when the request is approved. If `true`, the requested changes will be applied on approval.",
      "type": "boolean"
    },
    "change": {
      "description": "Change that the user wants to apply to the entity. Needs to be provided if the action, like `approve` action for a deployment, requires additional parameters . `null` if the action does not require any additional parameters to be applied. ",
      "oneOf": [
        {
          "description": "Approve a deployment.",
          "properties": {
            "approvalStatus": {
              "description": "Deployment approval status to set.",
              "enum": [
                "APPROVED"
              ],
              "type": "string"
            }
          },
          "required": [
            "approvalStatus"
          ],
          "type": "object"
        },
        {
          "description": "Change deployment status.",
          "properties": {
            "status": {
              "description": "Deployment status to set.",
              "enum": [
                "active",
                "inactive"
              ],
              "type": "string"
            }
          },
          "required": [
            "status"
          ],
          "type": "object"
        },
        {
          "description": "Change deployment importance.",
          "properties": {
            "importance": {
              "description": "Deployment Importance to set.",
              "enum": [
                "CRITICAL",
                "HIGH",
                "MODERATE",
                "LOW"
              ],
              "type": "string"
            }
          },
          "required": [
            "importance"
          ],
          "type": "object"
        },
        {
          "description": "Cleanup deployment stats.",
          "properties": {
            "dataType": {
              "description": "Type of stats to cleanup.",
              "enum": [
                "monitoring"
              ],
              "type": "string"
            },
            "end": {
              "description": "If specified, the stats will be cleaned up to this timestamp. If ``null`` all stats till the deployment end forecast date will be cleaned up. Defaults to ``null``.",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "modelId": {
              "default": null,
              "description": "ID of the model to remove deployment stats for. If ``null``, the stats will be cleaned up for all models in the mathcing period. Defaults to ``null``.",
              "type": [
                "string",
                "null"
              ]
            },
            "start": {
              "description": "If specified, the stats will be cleaned up from this timestamp. If ``null`` all stats from the deployment start forecast date will be cleaned up. Defaults to ``null``.",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            }
          },
          "required": [
            "dataType",
            "end",
            "modelId",
            "start"
          ],
          "type": "object"
        },
        {
          "description": "Replace model in deployment.",
          "properties": {
            "modelId": {
              "description": "ID of the Model to deploy.",
              "type": "string"
            },
            "replacementReason": {
              "default": "other",
              "description": "Reason for replacement.",
              "enum": [
                "accuracy",
                "data_drift",
                "errors",
                "scheduled_refresh",
                "scoring_speed",
                "deprecation",
                "other"
              ],
              "type": "string"
            }
          },
          "required": [
            "modelId",
            "replacementReason"
          ],
          "type": "object"
        },
        {
          "description": "Replace model package in deployment.",
          "properties": {
            "modelPackageId": {
              "description": "ID of the Model Package to deploy.",
              "type": "string"
            },
            "replacementReason": {
              "default": "other",
              "description": "Reason for replacement.",
              "enum": [
                "accuracy",
                "data_drift",
                "errors",
                "scheduled_refresh",
                "scoring_speed",
                "deprecation",
                "other"
              ],
              "type": "string"
            }
          },
          "required": [
            "modelPackageId",
            "replacementReason"
          ],
          "type": "object"
        },
        {
          "description": "Update secondary dataset config for deployment.",
          "properties": {
            "secondaryDatasetsConfigId": {
              "description": "ID of the secondary dataset configs.",
              "type": "string"
            }
          },
          "required": [
            "secondaryDatasetsConfigId"
          ],
          "type": "object"
        },
        {
          "type": "null"
        }
      ]
    },
    "changeVersionId": {
      "description": "ID of the current version of change within this Change Request. It's possible to modify the changes that have been requested. At the same time, we need to make sure that review is associated with the correct changes, that's why we implement versioning on the changes and associate user reviews with the specific Change Request versions.",
      "type": "string"
    },
    "comment": {
      "description": "Free form text to comment on the requested changes.",
      "maxLength": 10000,
      "type": "string"
    },
    "createdAt": {
      "description": "Timestamp when the request was created.",
      "format": "date-time",
      "type": "string"
    },
    "diff": {
      "description": "The difference between the current entity state and the state of the entity if the Change Request gets applied.",
      "properties": {
        "changesFrom": {
          "description": "List of human readable messages describing the state of the entity before changes are applied.",
          "items": {
            "description": "Single message line.",
            "type": "string"
          },
          "maxItems": 1000,
          "type": "array"
        },
        "changesTo": {
          "description": "List of human readable messages describing the state of the entity after changes are applied.",
          "items": {
            "description": "Single message line.",
            "type": "string"
          },
          "maxItems": 1000,
          "type": "array"
        }
      },
      "required": [
        "changesFrom",
        "changesTo"
      ],
      "type": "object"
    },
    "entityId": {
      "description": "ID of the Product Entity the request is intended to change.",
      "type": "string"
    },
    "entityType": {
      "description": "Type of the Product Entity that is requested to be changed.",
      "enum": [
        "deployment",
        "Deployment",
        "DEPLOYMENT"
      ],
      "type": "string"
    },
    "id": {
      "description": "ID of the Change Request.",
      "type": "string"
    },
    "numApprovalsRequired": {
      "description": "Number of approving reviews required for the Change Request to be considered approved.",
      "minimum": 0,
      "type": "integer"
    },
    "processedAt": {
      "description": "Timestamp when the request was processed.",
      "format": "date-time",
      "type": [
        "string",
        "null"
      ]
    },
    "status": {
      "description": "Change Request Status.",
      "enum": [
        "pending",
        "Pending",
        "PENDING",
        "approved",
        "Approved",
        "APPROVED",
        "changesRequested",
        "ChangesRequested",
        "CHANGES_REQUESTED",
        "resolved",
        "Resolved",
        "RESOLVED",
        "cancelled",
        "Cancelled",
        "CANCELLED"
      ],
      "type": "string"
    },
    "statusChangedAt": {
      "description": "Timestamp when the current request status was set. `null` if status is set by the system.",
      "format": "date-time",
      "type": [
        "string",
        "null"
      ]
    },
    "statusChangedBy": {
      "description": "ID of the user who set the current request status. `null` if the status was set by the system.",
      "type": [
        "string",
        "null"
      ]
    },
    "updatedAt": {
      "description": "Timestamp when the request was last modified.",
      "format": "date-time",
      "type": "string"
    },
    "userId": {
      "description": "ID of the user, who created the Change Request.",
      "type": "string"
    },
    "userName": {
      "description": "Email of the user, who created the Change Request",
      "type": [
        "string",
        "null"
      ]
    },
    "userOperations": {
      "description": "A set operations the user can or can not make with the Change Request.",
      "properties": {
        "canCancel": {
          "description": "Whether the user can cancel the Change Request.",
          "type": "boolean"
        },
        "canComment": {
          "description": "Whether the user can create commenting review on the Change Request.",
          "type": "boolean"
        },
        "canResolve": {
          "description": "Whether the user can resolve the Change Request.",
          "type": "boolean"
        },
        "canReview": {
          "description": "Whether the user can review (approve or request updates) the Change Request.",
          "type": "boolean"
        },
        "canUpdate": {
          "description": "Whether the user can update the Change Request.",
          "type": "boolean"
        }
      },
      "required": [
        "canCancel",
        "canComment",
        "canResolve",
        "canReview",
        "canUpdate"
      ],
      "type": "object"
    }
  },
  "required": [
    "action",
    "autoApply",
    "change",
    "changeVersionId",
    "createdAt",
    "diff",
    "entityId",
    "entityType",
    "id",
    "numApprovalsRequired",
    "processedAt",
    "status",
    "statusChangedAt",
    "statusChangedBy",
    "updatedAt",
    "userId",
    "userName",
    "userOperations"
  ],
  "type": "object"
}
```

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 200 | OK | none | ChangeRequestResponse |

## Update Change Request by change request ID

Operation path: `PATCH /api/v2/changeRequests/{changeRequestId}/`

Authentication requirements: `BearerAuth`

Update Change Request with the given ID.

### Body parameter

```
{
  "properties": {
    "autoApply": {
      "description": "Whether to automatically apply the change when the request is approved. If `true`, the requested changes will be applied on approval.",
      "type": "boolean"
    },
    "change": {
      "description": "Change that the user wants to apply to the entity. Needs to be provided if the action, like `approve` action for a deployment, requires additional parameters . `null` if the action does not require any additional parameters to be applied. ",
      "oneOf": [
        {
          "description": "Approve a deployment.",
          "properties": {
            "approvalStatus": {
              "description": "Deployment approval status to set.",
              "enum": [
                "APPROVED"
              ],
              "type": "string"
            }
          },
          "required": [
            "approvalStatus"
          ],
          "type": "object"
        },
        {
          "description": "Change deployment status.",
          "properties": {
            "status": {
              "description": "Deployment status to set.",
              "enum": [
                "active",
                "inactive"
              ],
              "type": "string"
            }
          },
          "required": [
            "status"
          ],
          "type": "object"
        },
        {
          "description": "Change deployment importance.",
          "properties": {
            "importance": {
              "description": "Deployment Importance to set.",
              "enum": [
                "CRITICAL",
                "HIGH",
                "MODERATE",
                "LOW"
              ],
              "type": "string"
            }
          },
          "required": [
            "importance"
          ],
          "type": "object"
        },
        {
          "description": "Cleanup deployment stats.",
          "properties": {
            "dataType": {
              "description": "Type of stats to cleanup.",
              "enum": [
                "monitoring"
              ],
              "type": "string"
            },
            "end": {
              "description": "If specified, the stats will be cleaned up to this timestamp. If ``null`` all stats till the deployment end forecast date will be cleaned up. Defaults to ``null``.",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "modelId": {
              "default": null,
              "description": "ID of the model to remove deployment stats for. If ``null``, the stats will be cleaned up for all models in the mathcing period. Defaults to ``null``.",
              "type": [
                "string",
                "null"
              ]
            },
            "start": {
              "description": "If specified, the stats will be cleaned up from this timestamp. If ``null`` all stats from the deployment start forecast date will be cleaned up. Defaults to ``null``.",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            }
          },
          "required": [
            "dataType",
            "end",
            "modelId",
            "start"
          ],
          "type": "object"
        },
        {
          "description": "Replace model in deployment.",
          "properties": {
            "modelId": {
              "description": "ID of the Model to deploy.",
              "type": "string"
            },
            "replacementReason": {
              "default": "other",
              "description": "Reason for replacement.",
              "enum": [
                "accuracy",
                "data_drift",
                "errors",
                "scheduled_refresh",
                "scoring_speed",
                "deprecation",
                "other"
              ],
              "type": "string"
            }
          },
          "required": [
            "modelId",
            "replacementReason"
          ],
          "type": "object"
        },
        {
          "description": "Replace model package in deployment.",
          "properties": {
            "modelPackageId": {
              "description": "ID of the Model Package to deploy.",
              "type": "string"
            },
            "replacementReason": {
              "default": "other",
              "description": "Reason for replacement.",
              "enum": [
                "accuracy",
                "data_drift",
                "errors",
                "scheduled_refresh",
                "scoring_speed",
                "deprecation",
                "other"
              ],
              "type": "string"
            }
          },
          "required": [
            "modelPackageId",
            "replacementReason"
          ],
          "type": "object"
        },
        {
          "description": "Update secondary dataset config for deployment.",
          "properties": {
            "secondaryDatasetsConfigId": {
              "description": "ID of the secondary dataset configs.",
              "type": "string"
            }
          },
          "required": [
            "secondaryDatasetsConfigId"
          ],
          "type": "object"
        }
      ]
    },
    "comment": {
      "description": "Free form text to comment on the requested changes.",
      "maxLength": 10000,
      "type": "string"
    }
  },
  "type": "object"
}
```

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| changeRequestId | path | string | true | ID of the Change Request. |
| body | body | ChangeRequestUpdate | false | none |

### Example responses

> 200 Response

```
{
  "properties": {
    "action": {
      "description": "Actions the user can take on the entity. Each entity type has a specific set of actions.",
      "enum": [
        "approve",
        "Approve",
        "APPROVE",
        "changeStatus",
        "ChangeStatus",
        "CHANGE_STATUS",
        "changeImportance",
        "ChangeImportance",
        "CHANGE_IMPORTANCE",
        "cleanupStats",
        "CleanupStats",
        "CLEANUP_STATS",
        "delete",
        "Delete",
        "DELETE",
        "replaceModel",
        "ReplaceModel",
        "REPLACE_MODEL",
        "replaceModelPackage",
        "ReplaceModelPackage",
        "REPLACE_MODEL_PACKAGE",
        "updateSecondaryDatasetConfigs",
        "UpdateSecondaryDatasetConfigs",
        "UPDATE_SECONDARY_DATASET_CONFIGS"
      ],
      "type": "string"
    },
    "autoApply": {
      "default": false,
      "description": "Whether to automatically apply the change when the request is approved. If `true`, the requested changes will be applied on approval.",
      "type": "boolean"
    },
    "change": {
      "description": "Change that the user wants to apply to the entity. Needs to be provided if the action, like `approve` action for a deployment, requires additional parameters . `null` if the action does not require any additional parameters to be applied. ",
      "oneOf": [
        {
          "description": "Approve a deployment.",
          "properties": {
            "approvalStatus": {
              "description": "Deployment approval status to set.",
              "enum": [
                "APPROVED"
              ],
              "type": "string"
            }
          },
          "required": [
            "approvalStatus"
          ],
          "type": "object"
        },
        {
          "description": "Change deployment status.",
          "properties": {
            "status": {
              "description": "Deployment status to set.",
              "enum": [
                "active",
                "inactive"
              ],
              "type": "string"
            }
          },
          "required": [
            "status"
          ],
          "type": "object"
        },
        {
          "description": "Change deployment importance.",
          "properties": {
            "importance": {
              "description": "Deployment Importance to set.",
              "enum": [
                "CRITICAL",
                "HIGH",
                "MODERATE",
                "LOW"
              ],
              "type": "string"
            }
          },
          "required": [
            "importance"
          ],
          "type": "object"
        },
        {
          "description": "Cleanup deployment stats.",
          "properties": {
            "dataType": {
              "description": "Type of stats to cleanup.",
              "enum": [
                "monitoring"
              ],
              "type": "string"
            },
            "end": {
              "description": "If specified, the stats will be cleaned up to this timestamp. If ``null`` all stats till the deployment end forecast date will be cleaned up. Defaults to ``null``.",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "modelId": {
              "default": null,
              "description": "ID of the model to remove deployment stats for. If ``null``, the stats will be cleaned up for all models in the mathcing period. Defaults to ``null``.",
              "type": [
                "string",
                "null"
              ]
            },
            "start": {
              "description": "If specified, the stats will be cleaned up from this timestamp. If ``null`` all stats from the deployment start forecast date will be cleaned up. Defaults to ``null``.",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            }
          },
          "required": [
            "dataType",
            "end",
            "modelId",
            "start"
          ],
          "type": "object"
        },
        {
          "description": "Replace model in deployment.",
          "properties": {
            "modelId": {
              "description": "ID of the Model to deploy.",
              "type": "string"
            },
            "replacementReason": {
              "default": "other",
              "description": "Reason for replacement.",
              "enum": [
                "accuracy",
                "data_drift",
                "errors",
                "scheduled_refresh",
                "scoring_speed",
                "deprecation",
                "other"
              ],
              "type": "string"
            }
          },
          "required": [
            "modelId",
            "replacementReason"
          ],
          "type": "object"
        },
        {
          "description": "Replace model package in deployment.",
          "properties": {
            "modelPackageId": {
              "description": "ID of the Model Package to deploy.",
              "type": "string"
            },
            "replacementReason": {
              "default": "other",
              "description": "Reason for replacement.",
              "enum": [
                "accuracy",
                "data_drift",
                "errors",
                "scheduled_refresh",
                "scoring_speed",
                "deprecation",
                "other"
              ],
              "type": "string"
            }
          },
          "required": [
            "modelPackageId",
            "replacementReason"
          ],
          "type": "object"
        },
        {
          "description": "Update secondary dataset config for deployment.",
          "properties": {
            "secondaryDatasetsConfigId": {
              "description": "ID of the secondary dataset configs.",
              "type": "string"
            }
          },
          "required": [
            "secondaryDatasetsConfigId"
          ],
          "type": "object"
        },
        {
          "type": "null"
        }
      ]
    },
    "changeVersionId": {
      "description": "ID of the current version of change within this Change Request. It's possible to modify the changes that have been requested. At the same time, we need to make sure that review is associated with the correct changes, that's why we implement versioning on the changes and associate user reviews with the specific Change Request versions.",
      "type": "string"
    },
    "comment": {
      "description": "Free form text to comment on the requested changes.",
      "maxLength": 10000,
      "type": "string"
    },
    "createdAt": {
      "description": "Timestamp when the request was created.",
      "format": "date-time",
      "type": "string"
    },
    "diff": {
      "description": "The difference between the current entity state and the state of the entity if the Change Request gets applied.",
      "properties": {
        "changesFrom": {
          "description": "List of human readable messages describing the state of the entity before changes are applied.",
          "items": {
            "description": "Single message line.",
            "type": "string"
          },
          "maxItems": 1000,
          "type": "array"
        },
        "changesTo": {
          "description": "List of human readable messages describing the state of the entity after changes are applied.",
          "items": {
            "description": "Single message line.",
            "type": "string"
          },
          "maxItems": 1000,
          "type": "array"
        }
      },
      "required": [
        "changesFrom",
        "changesTo"
      ],
      "type": "object"
    },
    "entityId": {
      "description": "ID of the Product Entity the request is intended to change.",
      "type": "string"
    },
    "entityType": {
      "description": "Type of the Product Entity that is requested to be changed.",
      "enum": [
        "deployment",
        "Deployment",
        "DEPLOYMENT"
      ],
      "type": "string"
    },
    "id": {
      "description": "ID of the Change Request.",
      "type": "string"
    },
    "numApprovalsRequired": {
      "description": "Number of approving reviews required for the Change Request to be considered approved.",
      "minimum": 0,
      "type": "integer"
    },
    "processedAt": {
      "description": "Timestamp when the request was processed.",
      "format": "date-time",
      "type": [
        "string",
        "null"
      ]
    },
    "status": {
      "description": "Change Request Status.",
      "enum": [
        "pending",
        "Pending",
        "PENDING",
        "approved",
        "Approved",
        "APPROVED",
        "changesRequested",
        "ChangesRequested",
        "CHANGES_REQUESTED",
        "resolved",
        "Resolved",
        "RESOLVED",
        "cancelled",
        "Cancelled",
        "CANCELLED"
      ],
      "type": "string"
    },
    "statusChangedAt": {
      "description": "Timestamp when the current request status was set. `null` if status is set by the system.",
      "format": "date-time",
      "type": [
        "string",
        "null"
      ]
    },
    "statusChangedBy": {
      "description": "ID of the user who set the current request status. `null` if the status was set by the system.",
      "type": [
        "string",
        "null"
      ]
    },
    "updatedAt": {
      "description": "Timestamp when the request was last modified.",
      "format": "date-time",
      "type": "string"
    },
    "userId": {
      "description": "ID of the user, who created the Change Request.",
      "type": "string"
    },
    "userName": {
      "description": "Email of the user, who created the Change Request",
      "type": [
        "string",
        "null"
      ]
    },
    "userOperations": {
      "description": "A set operations the user can or can not make with the Change Request.",
      "properties": {
        "canCancel": {
          "description": "Whether the user can cancel the Change Request.",
          "type": "boolean"
        },
        "canComment": {
          "description": "Whether the user can create commenting review on the Change Request.",
          "type": "boolean"
        },
        "canResolve": {
          "description": "Whether the user can resolve the Change Request.",
          "type": "boolean"
        },
        "canReview": {
          "description": "Whether the user can review (approve or request updates) the Change Request.",
          "type": "boolean"
        },
        "canUpdate": {
          "description": "Whether the user can update the Change Request.",
          "type": "boolean"
        }
      },
      "required": [
        "canCancel",
        "canComment",
        "canResolve",
        "canReview",
        "canUpdate"
      ],
      "type": "object"
    }
  },
  "required": [
    "action",
    "autoApply",
    "change",
    "changeVersionId",
    "createdAt",
    "diff",
    "entityId",
    "entityType",
    "id",
    "numApprovalsRequired",
    "processedAt",
    "status",
    "statusChangedAt",
    "statusChangedBy",
    "updatedAt",
    "userId",
    "userName",
    "userOperations"
  ],
  "type": "object"
}
```

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 200 | OK | none | ChangeRequestResponse |

## Request Change Request Review by change request ID

Operation path: `POST /api/v2/changeRequests/{changeRequestId}/requestReview/`

Authentication requirements: `BearerAuth`

Request review for Change Request with the given ID.

### Body parameter

```
{
  "properties": {
    "comment": {
      "description": "Free form text to comment on the requested changes.",
      "maxLength": 10000,
      "type": "string"
    }
  },
  "type": "object",
  "x-versionadded": "v2.38"
}
```

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| changeRequestId | path | string | true | ID of the Change Request. |
| body | body | ChangeRequestRequestReview | false | none |

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 202 | Accepted | none | None |

## List Change Request reviews by change request ID

Operation path: `GET /api/v2/changeRequests/{changeRequestId}/reviews/`

Authentication requirements: `BearerAuth`

List Change Request reviews.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| offset | query | integer | false | The number of results to skip. |
| limit | query | integer | false | At most this many results are returned. The default may change without notice. |
| status | query | string | false | Review status to filter by. |
| changeVersionId | query | string | false | ID of the change version to filter by |
| changeRequestId | path | string | true | ID of the Change Request. |

### Enumerated Values

| Parameter | Value |
| --- | --- |
| status | [approved, Approved, APPROVED, changesRequested, ChangesRequested, CHANGES_REQUESTED, commented, Commented, COMMENTED] |

### Example responses

> 200 Response

```
{
  "properties": {
    "count": {
      "description": "The number of items returned on this page.",
      "type": "integer"
    },
    "data": {
      "description": "List of change request reviews.",
      "items": {
        "properties": {
          "changeRequestId": {
            "description": "ID of the Change Request.",
            "type": "string"
          },
          "changeVersionId": {
            "description": "ID of the change version.",
            "type": "string"
          },
          "comment": {
            "description": "Free form text to comment on the review.",
            "maxLength": 10000,
            "type": "string"
          },
          "createdAt": {
            "description": "Timestamp when the review was created.",
            "format": "date-time",
            "type": "string"
          },
          "id": {
            "description": "ID of the review.",
            "type": "string"
          },
          "status": {
            "description": "Status of the review.",
            "enum": [
              "approved",
              "Approved",
              "APPROVED",
              "changesRequested",
              "ChangesRequested",
              "CHANGES_REQUESTED",
              "commented",
              "Commented",
              "COMMENTED"
            ],
            "type": "string"
          },
          "userId": {
            "description": "ID of the user, who created the review.",
            "type": "string"
          },
          "userName": {
            "description": "Email of the user, who created the review",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "changeRequestId",
          "changeVersionId",
          "createdAt",
          "id",
          "status",
          "userId",
          "userName"
        ],
        "type": "object"
      },
      "maxItems": 1000,
      "type": "array"
    },
    "next": {
      "description": "The URL of the next page (if null, there is no next page).",
      "format": "uri",
      "type": [
        "string",
        "null"
      ]
    },
    "previous": {
      "description": "The URL of the previous page (if null, there is no previous page).",
      "format": "uri",
      "type": [
        "string",
        "null"
      ]
    },
    "totalCount": {
      "description": "The total number of items across all pages.",
      "type": "integer"
    }
  },
  "required": [
    "data",
    "next",
    "previous",
    "totalCount"
  ],
  "type": "object"
}
```

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 200 | OK | none | ReviewsListResponse |

## Create review by change request ID

Operation path: `POST /api/v2/changeRequests/{changeRequestId}/reviews/`

Authentication requirements: `BearerAuth`

Review the Change Request.

### Body parameter

```
{
  "properties": {
    "changeVersionId": {
      "description": "ID of the change version.",
      "type": "string"
    },
    "comment": {
      "description": "Free form text to comment on the review.",
      "maxLength": 10000,
      "type": "string"
    },
    "status": {
      "description": "Status of the review.",
      "enum": [
        "approved",
        "Approved",
        "APPROVED",
        "changesRequested",
        "ChangesRequested",
        "CHANGES_REQUESTED",
        "commented",
        "Commented",
        "COMMENTED"
      ],
      "type": "string"
    }
  },
  "required": [
    "changeVersionId",
    "status"
  ],
  "type": "object"
}
```

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| changeRequestId | path | string | true | ID of the Change Request. |
| body | body | ReviewCreate | false | none |

### Example responses

> 201 Response

```
{
  "properties": {
    "changeRequestId": {
      "description": "ID of the Change Request.",
      "type": "string"
    },
    "changeVersionId": {
      "description": "ID of the change version.",
      "type": "string"
    },
    "comment": {
      "description": "Free form text to comment on the review.",
      "maxLength": 10000,
      "type": "string"
    },
    "createdAt": {
      "description": "Timestamp when the review was created.",
      "format": "date-time",
      "type": "string"
    },
    "id": {
      "description": "ID of the review.",
      "type": "string"
    },
    "status": {
      "description": "Status of the review.",
      "enum": [
        "approved",
        "Approved",
        "APPROVED",
        "changesRequested",
        "ChangesRequested",
        "CHANGES_REQUESTED",
        "commented",
        "Commented",
        "COMMENTED"
      ],
      "type": "string"
    },
    "userId": {
      "description": "ID of the user, who created the review.",
      "type": "string"
    },
    "userName": {
      "description": "Email of the user, who created the review",
      "type": [
        "string",
        "null"
      ]
    }
  },
  "required": [
    "changeRequestId",
    "changeVersionId",
    "createdAt",
    "id",
    "status",
    "userId",
    "userName"
  ],
  "type": "object"
}
```

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 201 | Created | none | ReviewResponse |

## Retrieve review by change request ID

Operation path: `GET /api/v2/changeRequests/{changeRequestId}/reviews/{reviewId}/`

Authentication requirements: `BearerAuth`

Retrieve a review by ID.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| changeRequestId | path | string | true | ID of the Change Request. |
| reviewId | path | string | true | ID of the review. |

### Example responses

> 200 Response

```
{
  "properties": {
    "changeRequestId": {
      "description": "ID of the Change Request.",
      "type": "string"
    },
    "changeVersionId": {
      "description": "ID of the change version.",
      "type": "string"
    },
    "comment": {
      "description": "Free form text to comment on the review.",
      "maxLength": 10000,
      "type": "string"
    },
    "createdAt": {
      "description": "Timestamp when the review was created.",
      "format": "date-time",
      "type": "string"
    },
    "id": {
      "description": "ID of the review.",
      "type": "string"
    },
    "status": {
      "description": "Status of the review.",
      "enum": [
        "approved",
        "Approved",
        "APPROVED",
        "changesRequested",
        "ChangesRequested",
        "CHANGES_REQUESTED",
        "commented",
        "Commented",
        "COMMENTED"
      ],
      "type": "string"
    },
    "userId": {
      "description": "ID of the user, who created the review.",
      "type": "string"
    },
    "userName": {
      "description": "Email of the user, who created the review",
      "type": [
        "string",
        "null"
      ]
    }
  },
  "required": [
    "changeRequestId",
    "changeVersionId",
    "createdAt",
    "id",
    "status",
    "userId",
    "userName"
  ],
  "type": "object"
}
```

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 200 | OK | none | ReviewResponse |

## Resolve by change request ID

Operation path: `PATCH /api/v2/changeRequests/{changeRequestId}/status/`

Authentication requirements: `BearerAuth`

Resolve or Cancel the Change Request.

### Body parameter

```
{
  "properties": {
    "status": {
      "description": "Change Request status to set.",
      "enum": [
        "cancelled",
        "resolving"
      ],
      "type": "string"
    }
  },
  "required": [
    "status"
  ],
  "type": "object"
}
```

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| changeRequestId | path | string | true | ID of the Change Request. |
| body | body | ChangeRequestUpdateStatus | false | none |

### Example responses

> 200 Response

```
{
  "properties": {
    "status": {
      "description": "Change Request status to set.",
      "enum": [
        "cancelled",
        "resolving"
      ],
      "type": "string"
    }
  },
  "required": [
    "status"
  ],
  "type": "object"
}
```

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 200 | OK | none | ChangeRequestUpdateStatus |

### Response Headers

| Status | Header | Type | Format | Description |
| --- | --- | --- | --- | --- |
| 200 | Location | string |  | A url that can be polled to check the status. |

## List suggested reviewers by change request ID

Operation path: `GET /api/v2/changeRequests/{changeRequestId}/suggestedReviewers/`

Authentication requirements: `BearerAuth`

List users, suggested to review the Change Request.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| offset | query | integer | false | The number of results to skip. |
| limit | query | integer | false | At most this many results are returned. The default may change without notice. |
| changeRequestId | path | string | true | ID of the Change Request. |

### Example responses

> 200 Response

```
{
  "properties": {
    "count": {
      "description": "The number of items returned on this page.",
      "type": "integer"
    },
    "data": {
      "description": "List of suggested change request reviewers.",
      "items": {
        "properties": {
          "firstName": {
            "description": "First Name.",
            "type": "string"
          },
          "lastName": {
            "description": "Last Name.",
            "type": "string"
          },
          "userId": {
            "description": "ID of the User.",
            "type": "string"
          },
          "username": {
            "description": "Username.",
            "type": "string"
          }
        },
        "required": [
          "firstName",
          "lastName",
          "userId",
          "username"
        ],
        "type": "object"
      },
      "maxItems": 1000,
      "type": "array"
    },
    "next": {
      "description": "The URL of the next page (if null, there is no next page).",
      "format": "uri",
      "type": [
        "string",
        "null"
      ]
    },
    "previous": {
      "description": "The URL of the previous page (if null, there is no previous page).",
      "format": "uri",
      "type": [
        "string",
        "null"
      ]
    },
    "totalCount": {
      "description": "The total number of items across all pages.",
      "type": "integer"
    }
  },
  "required": [
    "data",
    "next",
    "previous",
    "totalCount"
  ],
  "type": "object"
}
```

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 200 | OK | none | SuggestedReviewersResponse |

## Retrieve configured recommended settings by entitytype

Operation path: `GET /api/v2/recommendedSettings/{entityType}/`

Authentication requirements: `BearerAuth`

Retrieve configured recommended settings for an entity.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| entityType | path | string | true | The type of the entity to create or get the recommended settings for. |

### Enumerated Values

| Parameter | Value |
| --- | --- |
| entityType | [deployment, Deployment, DEPLOYMENT] |

### Example responses

> 200 Response

```
{
  "properties": {
    "data": {
      "description": "The list of recommended settings.",
      "items": {
        "properties": {
          "hint": {
            "description": "An optional hint for the setting.",
            "maxLength": 255,
            "type": [
              "string",
              "null"
            ]
          },
          "label": {
            "description": "The label of the setting.",
            "maxLength": 80,
            "type": "string"
          },
          "setting": {
            "description": "The internal name of the setting.",
            "maxLength": 30,
            "type": "string"
          }
        },
        "required": [
          "label",
          "setting"
        ],
        "type": "object",
        "x-versionadded": "v2.38"
      },
      "maxItems": 20,
      "type": "array"
    }
  },
  "required": [
    "data"
  ],
  "type": "object",
  "x-versionadded": "v2.38"
}
```

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 200 | OK | none | RecommendedSettingsResponse |

## Update recommended settings by entitytype

Operation path: `PUT /api/v2/recommendedSettings/{entityType}/`

Authentication requirements: `BearerAuth`

Update recommended settings for an entity.

### Body parameter

```
{
  "properties": {
    "data": {
      "description": "The list of recommended settings to update.",
      "items": {
        "properties": {
          "hint": {
            "description": "An optional hint for the setting.",
            "maxLength": 255,
            "type": [
              "string",
              "null"
            ]
          },
          "setting": {
            "description": "The internal name of the setting.",
            "maxLength": 30,
            "type": "string"
          }
        },
        "required": [
          "setting"
        ],
        "type": "object",
        "x-versionadded": "v2.38"
      },
      "maxItems": 20,
      "type": "array"
    }
  },
  "required": [
    "data"
  ],
  "type": "object",
  "x-versionadded": "v2.38"
}
```

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| entityType | path | string | true | The type of the entity to create or get the recommended settings for. |
| body | body | RecommendedSettingsUpdate | false | none |

### Enumerated Values

| Parameter | Value |
| --- | --- |
| entityType | [deployment, Deployment, DEPLOYMENT] |

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 200 | OK | none | None |

## Retrieve the list of available setting choices by entitytype

Operation path: `GET /api/v2/recommendedSettings/{entityType}/choices/`

Authentication requirements: `BearerAuth`

Retrieve the list of available setting choices for an entity.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| entityType | path | string | true | The type of the entity to create or get the recommended settings for. |

### Enumerated Values

| Parameter | Value |
| --- | --- |
| entityType | [deployment, Deployment, DEPLOYMENT] |

### Example responses

> 200 Response

```
{
  "properties": {
    "data": {
      "description": "The list of recommended settings.",
      "items": {
        "properties": {
          "label": {
            "description": "The label of the setting.",
            "maxLength": 80,
            "type": "string"
          },
          "setting": {
            "description": "The internal name of the setting.",
            "maxLength": 30,
            "type": "string"
          }
        },
        "required": [
          "label",
          "setting"
        ],
        "type": "object",
        "x-versionadded": "v2.38"
      },
      "maxItems": 20,
      "type": "array"
    }
  },
  "required": [
    "data"
  ],
  "type": "object",
  "x-versionadded": "v2.38"
}
```

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 200 | OK | none | RecommendedSettingsChoices |

# Schemas

## ApprovalPolicy

```
{
  "properties": {
    "active": {
      "default": true,
      "description": "Whether this policy is active.",
      "type": "boolean"
    },
    "automaticAction": {
      "description": "An object describing the automated action on the Change Request that will be performed if the request is not resolved within a given time period after its creation. If ``null``, no automated actions will be taken on the related Change Requests.",
      "properties": {
        "action": {
          "description": "Action of the workflow automation.",
          "enum": [
            "cancel",
            "Cancel",
            "CANCEL",
            "approve",
            "Approve",
            "APPROVE"
          ],
          "type": "string"
        },
        "period": {
          "description": "Period (ISO 8601) after which an action is executed on a Change Request if it is not resolved or cancelled.",
          "format": "duration",
          "type": "string"
        }
      },
      "required": [
        "action",
        "period"
      ],
      "type": "object"
    },
    "name": {
      "description": "Name of the Approval Policy.",
      "maxLength": 50,
      "type": "string"
    },
    "review": {
      "description": "An object describing review requirements for Change Requests, related to a specific policy. If ``null``, no additional review requirements are added to the related Change Requests.",
      "properties": {
        "groups": {
          "description": "A list of user groups that will be added as required reviewers on Change Requests for the entities that match the policy.",
          "items": {
            "properties": {
              "id": {
                "description": "ID of the user group.",
                "type": "string"
              },
              "name": {
                "description": "Name of the user group.",
                "maxLength": 50,
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "id"
            ],
            "type": "object"
          },
          "maxItems": 100,
          "minItems": 1,
          "type": "array"
        },
        "reminderPeriod": {
          "description": "Duration period in ISO 8601 format that indicates when to send a reminder for reviewing a Change Request after its creation or last reminder if it hasn't been approved yet. If ``null``, no review reminders are sent to the reviewers.",
          "format": "duration",
          "type": [
            "string",
            "null"
          ]
        }
      },
      "type": "object"
    },
    "trigger": {
      "description": "An object describing the trigger for the Approval Policy.",
      "properties": {
        "entityType": {
          "description": "Type of entity to trigger on.",
          "enum": [
            "deployment",
            "Deployment",
            "DEPLOYMENT",
            "deploymentModel",
            "DeploymentModel",
            "DEPLOYMENT_MODEL",
            "deploymentConfig",
            "DeploymentConfig",
            "DEPLOYMENT_CONFIG",
            "deploymentStatus",
            "DeploymentStatus",
            "DEPLOYMENT_STATUS",
            "deploymentMonitoringData",
            "DeploymentMonitoringData",
            "DEPLOYMENT_MONITORING_DATA"
          ],
          "type": "string"
        },
        "filterGroups": {
          "description": "A list of user groups to apply Approval Policy for. If User 'A' and User 'B' are both members of the same organisation, and User 'A' is a member of one of the groups listed in this field,but User 'B' is not, then an approval workflow will be triggerred for User 'A' on an action to the entity that matches policy condition, but not for User 'B'. If ``null``, approvals workflow will be triggered for all users.",
          "items": {
            "properties": {
              "id": {
                "description": "ID of the user group.",
                "type": "string"
              },
              "name": {
                "description": "Name of the user group.",
                "maxLength": 50,
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "id"
            ],
            "type": "object"
          },
          "maxItems": 100,
          "type": "array"
        },
        "intendedAction": {
          "description": "An object, describing the approvals workflow intended action.",
          "properties": {
            "action": {
              "description": "Type of action to trigger on.",
              "enum": [
                "create",
                "Create",
                "CREATE",
                "update",
                "Update",
                "UPDATE",
                "delete",
                "Delete",
                "DELETE"
              ],
              "type": "string"
            },
            "condition": {
              "description": "An object, describing the condition to trigger on.",
              "properties": {
                "condition": {
                  "description": "Condition for the field content to trigger on.",
                  "enum": [
                    "equals",
                    "Equals",
                    "EQUALS"
                  ],
                  "type": "string"
                },
                "fieldName": {
                  "description": "Name of the attribute of the entity to filter entities by. An example value is ``importance`` attribute for the deployment entity.",
                  "maxLength": 50,
                  "type": "string"
                },
                "values": {
                  "description": "Array of field values to apply condition to trigger on. If ``null`` for ``equals`` condition, then any value for the field is accepted.",
                  "items": {
                    "maxLength": 50,
                    "type": "string"
                  },
                  "maxItems": 100,
                  "type": "array"
                }
              },
              "required": [
                "condition",
                "fieldName",
                "values"
              ],
              "type": "object"
            }
          },
          "required": [
            "action"
          ],
          "type": "object"
        },
        "labels": {
          "description": "Trigger Labels.",
          "properties": {
            "groupLabel": {
              "description": "Group Label.",
              "type": "string"
            },
            "label": {
              "description": "Label.",
              "type": "string"
            }
          },
          "required": [
            "groupLabel",
            "label"
          ],
          "type": "object"
        }
      },
      "required": [
        "entityType",
        "intendedAction"
      ],
      "type": "object"
    }
  },
  "required": [
    "active",
    "name",
    "trigger"
  ],
  "type": "object"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| active | boolean | true |  | Whether this policy is active. |
| automaticAction | ApprovalPolicyAutomaticAction | false |  | An object describing the automated action on the Change Request that will be performed if the request is not resolved within a given time period after its creation. If null, no automated actions will be taken on the related Change Requests. |
| name | string | true | maxLength: 50 | Name of the Approval Policy. |
| review | ApprovalPolicyReview | false |  | An object describing review requirements for Change Requests, related to a specific policy. If null, no additional review requirements are added to the related Change Requests. |
| trigger | ApprovalPolicyTrigger | true |  | An object describing the trigger for the Approval Policy. |

## ApprovalPolicyAutomaticAction

```
{
  "description": "An object describing the automated action on the Change Request that will be performed if the request is not resolved within a given time period after its creation. If ``null``, no automated actions will be taken on the related Change Requests.",
  "properties": {
    "action": {
      "description": "Action of the workflow automation.",
      "enum": [
        "cancel",
        "Cancel",
        "CANCEL",
        "approve",
        "Approve",
        "APPROVE"
      ],
      "type": "string"
    },
    "period": {
      "description": "Period (ISO 8601) after which an action is executed on a Change Request if it is not resolved or cancelled.",
      "format": "duration",
      "type": "string"
    }
  },
  "required": [
    "action",
    "period"
  ],
  "type": "object"
}
```

An object describing the automated action on the Change Request that will be performed if the request is not resolved within a given time period after its creation. If `null`, no automated actions will be taken on the related Change Requests.

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| action | string | true |  | Action of the workflow automation. |
| period | string(duration) | true |  | Period (ISO 8601) after which an action is executed on a Change Request if it is not resolved or cancelled. |

### Enumerated Values

| Property | Value |
| --- | --- |
| action | [cancel, Cancel, CANCEL, approve, Approve, APPROVE] |

## ApprovalPolicyIntendedAction

```
{
  "description": "An object, describing the approvals workflow intended action.",
  "properties": {
    "action": {
      "description": "Type of action to trigger on.",
      "enum": [
        "create",
        "Create",
        "CREATE",
        "update",
        "Update",
        "UPDATE",
        "delete",
        "Delete",
        "DELETE"
      ],
      "type": "string"
    },
    "condition": {
      "description": "An object, describing the condition to trigger on.",
      "properties": {
        "condition": {
          "description": "Condition for the field content to trigger on.",
          "enum": [
            "equals",
            "Equals",
            "EQUALS"
          ],
          "type": "string"
        },
        "fieldName": {
          "description": "Name of the attribute of the entity to filter entities by. An example value is ``importance`` attribute for the deployment entity.",
          "maxLength": 50,
          "type": "string"
        },
        "values": {
          "description": "Array of field values to apply condition to trigger on. If ``null`` for ``equals`` condition, then any value for the field is accepted.",
          "items": {
            "maxLength": 50,
            "type": "string"
          },
          "maxItems": 100,
          "type": "array"
        }
      },
      "required": [
        "condition",
        "fieldName",
        "values"
      ],
      "type": "object"
    }
  },
  "required": [
    "action"
  ],
  "type": "object"
}
```

An object, describing the approvals workflow intended action.

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| action | string | true |  | Type of action to trigger on. |
| condition | ApprovalPolicyIntendedActionCondition | false |  | An object, describing the condition to trigger on. |

### Enumerated Values

| Property | Value |
| --- | --- |
| action | [create, Create, CREATE, update, Update, UPDATE, delete, Delete, DELETE] |

## ApprovalPolicyIntendedActionCondition

```
{
  "description": "An object, describing the condition to trigger on.",
  "properties": {
    "condition": {
      "description": "Condition for the field content to trigger on.",
      "enum": [
        "equals",
        "Equals",
        "EQUALS"
      ],
      "type": "string"
    },
    "fieldName": {
      "description": "Name of the attribute of the entity to filter entities by. An example value is ``importance`` attribute for the deployment entity.",
      "maxLength": 50,
      "type": "string"
    },
    "values": {
      "description": "Array of field values to apply condition to trigger on. If ``null`` for ``equals`` condition, then any value for the field is accepted.",
      "items": {
        "maxLength": 50,
        "type": "string"
      },
      "maxItems": 100,
      "type": "array"
    }
  },
  "required": [
    "condition",
    "fieldName",
    "values"
  ],
  "type": "object"
}
```

An object, describing the condition to trigger on.

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| condition | string | true |  | Condition for the field content to trigger on. |
| fieldName | string | true | maxLength: 50 | Name of the attribute of the entity to filter entities by. An example value is importance attribute for the deployment entity. |
| values | [string] | true | maxItems: 100 | Array of field values to apply condition to trigger on. If null for equals condition, then any value for the field is accepted. |

### Enumerated Values

| Property | Value |
| --- | --- |
| condition | [equals, Equals, EQUALS] |

## ApprovalPolicyListResponse

```
{
  "properties": {
    "count": {
      "description": "The number of items returned on this page.",
      "type": "integer"
    },
    "data": {
      "description": "List of Approval Policies.",
      "items": {
        "properties": {
          "active": {
            "default": true,
            "description": "Whether this policy is active.",
            "type": "boolean"
          },
          "automaticAction": {
            "description": "An object describing the automated action on the Change Request that will be performed if the request is not resolved within a given time period after its creation. If ``null``, no automated actions will be taken on the related Change Requests.",
            "properties": {
              "action": {
                "description": "Action of the workflow automation.",
                "enum": [
                  "cancel",
                  "Cancel",
                  "CANCEL",
                  "approve",
                  "Approve",
                  "APPROVE"
                ],
                "type": "string"
              },
              "period": {
                "description": "Period (ISO 8601) after which an action is executed on a Change Request if it is not resolved or cancelled.",
                "format": "duration",
                "type": "string"
              }
            },
            "required": [
              "action",
              "period"
            ],
            "type": "object"
          },
          "id": {
            "description": "ID of the Approval Policy.",
            "type": "string"
          },
          "name": {
            "description": "Name of the Approval Policy.",
            "maxLength": 50,
            "type": "string"
          },
          "openRequests": {
            "description": "Number of open Change Requests associated with the policy.",
            "minimum": 0,
            "type": "integer"
          },
          "review": {
            "description": "An object describing review requirements for Change Requests, related to a specific policy. If ``null``, no additional review requirements are added to the related Change Requests.",
            "properties": {
              "groups": {
                "description": "A list of user groups that will be added as required reviewers on Change Requests for the entities that match the policy.",
                "items": {
                  "properties": {
                    "id": {
                      "description": "ID of the user group.",
                      "type": "string"
                    },
                    "name": {
                      "description": "Name of the user group.",
                      "maxLength": 50,
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  },
                  "required": [
                    "id"
                  ],
                  "type": "object"
                },
                "maxItems": 100,
                "minItems": 1,
                "type": "array"
              },
              "reminderPeriod": {
                "description": "Duration period in ISO 8601 format that indicates when to send a reminder for reviewing a Change Request after its creation or last reminder if it hasn't been approved yet. If ``null``, no review reminders are sent to the reviewers.",
                "format": "duration",
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "type": "object"
          },
          "trigger": {
            "description": "An object describing the trigger for the Approval Policy.",
            "properties": {
              "entityType": {
                "description": "Type of entity to trigger on.",
                "enum": [
                  "deployment",
                  "Deployment",
                  "DEPLOYMENT",
                  "deploymentModel",
                  "DeploymentModel",
                  "DEPLOYMENT_MODEL",
                  "deploymentConfig",
                  "DeploymentConfig",
                  "DEPLOYMENT_CONFIG",
                  "deploymentStatus",
                  "DeploymentStatus",
                  "DEPLOYMENT_STATUS",
                  "deploymentMonitoringData",
                  "DeploymentMonitoringData",
                  "DEPLOYMENT_MONITORING_DATA"
                ],
                "type": "string"
              },
              "filterGroups": {
                "description": "A list of user groups to apply Approval Policy for. If User 'A' and User 'B' are both members of the same organisation, and User 'A' is a member of one of the groups listed in this field,but User 'B' is not, then an approval workflow will be triggerred for User 'A' on an action to the entity that matches policy condition, but not for User 'B'. If ``null``, approvals workflow will be triggered for all users.",
                "items": {
                  "properties": {
                    "id": {
                      "description": "ID of the user group.",
                      "type": "string"
                    },
                    "name": {
                      "description": "Name of the user group.",
                      "maxLength": 50,
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  },
                  "required": [
                    "id"
                  ],
                  "type": "object"
                },
                "maxItems": 100,
                "type": "array"
              },
              "intendedAction": {
                "description": "An object, describing the approvals workflow intended action.",
                "properties": {
                  "action": {
                    "description": "Type of action to trigger on.",
                    "enum": [
                      "create",
                      "Create",
                      "CREATE",
                      "update",
                      "Update",
                      "UPDATE",
                      "delete",
                      "Delete",
                      "DELETE"
                    ],
                    "type": "string"
                  },
                  "condition": {
                    "description": "An object, describing the condition to trigger on.",
                    "properties": {
                      "condition": {
                        "description": "Condition for the field content to trigger on.",
                        "enum": [
                          "equals",
                          "Equals",
                          "EQUALS"
                        ],
                        "type": "string"
                      },
                      "fieldName": {
                        "description": "Name of the attribute of the entity to filter entities by. An example value is ``importance`` attribute for the deployment entity.",
                        "maxLength": 50,
                        "type": "string"
                      },
                      "values": {
                        "description": "Array of field values to apply condition to trigger on. If ``null`` for ``equals`` condition, then any value for the field is accepted.",
                        "items": {
                          "maxLength": 50,
                          "type": "string"
                        },
                        "maxItems": 100,
                        "type": "array"
                      }
                    },
                    "required": [
                      "condition",
                      "fieldName",
                      "values"
                    ],
                    "type": "object"
                  }
                },
                "required": [
                  "action"
                ],
                "type": "object"
              },
              "labels": {
                "description": "Trigger Labels.",
                "properties": {
                  "groupLabel": {
                    "description": "Group Label.",
                    "type": "string"
                  },
                  "label": {
                    "description": "Label.",
                    "type": "string"
                  }
                },
                "required": [
                  "groupLabel",
                  "label"
                ],
                "type": "object"
              }
            },
            "required": [
              "entityType",
              "intendedAction"
            ],
            "type": "object"
          }
        },
        "required": [
          "active",
          "id",
          "name",
          "openRequests",
          "trigger"
        ],
        "type": "object"
      },
      "type": "array"
    },
    "next": {
      "description": "The URL of the next page (if null, there is no next page).",
      "format": "uri",
      "type": [
        "string",
        "null"
      ]
    },
    "previous": {
      "description": "The URL of the previous page (if null, there is no previous page).",
      "format": "uri",
      "type": [
        "string",
        "null"
      ]
    },
    "totalCount": {
      "description": "The total number of items across all pages.",
      "type": "integer"
    }
  },
  "required": [
    "data",
    "next",
    "previous",
    "totalCount"
  ],
  "type": "object"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| count | integer | false |  | The number of items returned on this page. |
| data | [ApprovalPolicyResponse] | true |  | List of Approval Policies. |
| next | string,null(uri) | true |  | The URL of the next page (if null, there is no next page). |
| previous | string,null(uri) | true |  | The URL of the previous page (if null, there is no previous page). |
| totalCount | integer | true |  | The total number of items across all pages. |

## ApprovalPolicyMatchResponse

```
{
  "properties": {
    "action": {
      "description": "Searched policy action.",
      "enum": [
        "create",
        "Create",
        "CREATE",
        "update",
        "Update",
        "UPDATE",
        "delete",
        "Delete",
        "DELETE"
      ],
      "type": "string"
    },
    "entityType": {
      "description": "Searched typed of the entity.",
      "enum": [
        "deployment",
        "Deployment",
        "DEPLOYMENT",
        "deploymentModel",
        "DeploymentModel",
        "DEPLOYMENT_MODEL",
        "deploymentConfig",
        "DeploymentConfig",
        "DEPLOYMENT_CONFIG",
        "deploymentStatus",
        "DeploymentStatus",
        "DEPLOYMENT_STATUS",
        "deploymentMonitoringData",
        "DeploymentMonitoringData",
        "DEPLOYMENT_MONITORING_DATA"
      ],
      "type": "string"
    },
    "fieldName": {
      "description": "Name of the entity field to filter policies by.",
      "maxLength": 50,
      "type": [
        "string",
        "null"
      ]
    },
    "fieldValue": {
      "description": "Value of the entity field to filter policies by.",
      "maxLength": 50,
      "type": [
        "string",
        "null"
      ]
    },
    "policyId": {
      "description": "ID of the matching approval policy. ``null`` if no matching policies found.",
      "type": [
        "string",
        "null"
      ]
    }
  },
  "required": [
    "action",
    "entityType",
    "policyId"
  ],
  "type": "object"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| action | string | true |  | Searched policy action. |
| entityType | string | true |  | Searched typed of the entity. |
| fieldName | string,null | false | maxLength: 50 | Name of the entity field to filter policies by. |
| fieldValue | string,null | false | maxLength: 50 | Value of the entity field to filter policies by. |
| policyId | string,null | true |  | ID of the matching approval policy. null if no matching policies found. |

### Enumerated Values

| Property | Value |
| --- | --- |
| action | [create, Create, CREATE, update, Update, UPDATE, delete, Delete, DELETE] |
| entityType | [deployment, Deployment, DEPLOYMENT, deploymentModel, DeploymentModel, DEPLOYMENT_MODEL, deploymentConfig, DeploymentConfig, DEPLOYMENT_CONFIG, deploymentStatus, DeploymentStatus, DEPLOYMENT_STATUS, deploymentMonitoringData, DeploymentMonitoringData, DEPLOYMENT_MONITORING_DATA] |

## ApprovalPolicyResponse

```
{
  "properties": {
    "active": {
      "default": true,
      "description": "Whether this policy is active.",
      "type": "boolean"
    },
    "automaticAction": {
      "description": "An object describing the automated action on the Change Request that will be performed if the request is not resolved within a given time period after its creation. If ``null``, no automated actions will be taken on the related Change Requests.",
      "properties": {
        "action": {
          "description": "Action of the workflow automation.",
          "enum": [
            "cancel",
            "Cancel",
            "CANCEL",
            "approve",
            "Approve",
            "APPROVE"
          ],
          "type": "string"
        },
        "period": {
          "description": "Period (ISO 8601) after which an action is executed on a Change Request if it is not resolved or cancelled.",
          "format": "duration",
          "type": "string"
        }
      },
      "required": [
        "action",
        "period"
      ],
      "type": "object"
    },
    "id": {
      "description": "ID of the Approval Policy.",
      "type": "string"
    },
    "name": {
      "description": "Name of the Approval Policy.",
      "maxLength": 50,
      "type": "string"
    },
    "openRequests": {
      "description": "Number of open Change Requests associated with the policy.",
      "minimum": 0,
      "type": "integer"
    },
    "review": {
      "description": "An object describing review requirements for Change Requests, related to a specific policy. If ``null``, no additional review requirements are added to the related Change Requests.",
      "properties": {
        "groups": {
          "description": "A list of user groups that will be added as required reviewers on Change Requests for the entities that match the policy.",
          "items": {
            "properties": {
              "id": {
                "description": "ID of the user group.",
                "type": "string"
              },
              "name": {
                "description": "Name of the user group.",
                "maxLength": 50,
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "id"
            ],
            "type": "object"
          },
          "maxItems": 100,
          "minItems": 1,
          "type": "array"
        },
        "reminderPeriod": {
          "description": "Duration period in ISO 8601 format that indicates when to send a reminder for reviewing a Change Request after its creation or last reminder if it hasn't been approved yet. If ``null``, no review reminders are sent to the reviewers.",
          "format": "duration",
          "type": [
            "string",
            "null"
          ]
        }
      },
      "type": "object"
    },
    "trigger": {
      "description": "An object describing the trigger for the Approval Policy.",
      "properties": {
        "entityType": {
          "description": "Type of entity to trigger on.",
          "enum": [
            "deployment",
            "Deployment",
            "DEPLOYMENT",
            "deploymentModel",
            "DeploymentModel",
            "DEPLOYMENT_MODEL",
            "deploymentConfig",
            "DeploymentConfig",
            "DEPLOYMENT_CONFIG",
            "deploymentStatus",
            "DeploymentStatus",
            "DEPLOYMENT_STATUS",
            "deploymentMonitoringData",
            "DeploymentMonitoringData",
            "DEPLOYMENT_MONITORING_DATA"
          ],
          "type": "string"
        },
        "filterGroups": {
          "description": "A list of user groups to apply Approval Policy for. If User 'A' and User 'B' are both members of the same organisation, and User 'A' is a member of one of the groups listed in this field,but User 'B' is not, then an approval workflow will be triggerred for User 'A' on an action to the entity that matches policy condition, but not for User 'B'. If ``null``, approvals workflow will be triggered for all users.",
          "items": {
            "properties": {
              "id": {
                "description": "ID of the user group.",
                "type": "string"
              },
              "name": {
                "description": "Name of the user group.",
                "maxLength": 50,
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "id"
            ],
            "type": "object"
          },
          "maxItems": 100,
          "type": "array"
        },
        "intendedAction": {
          "description": "An object, describing the approvals workflow intended action.",
          "properties": {
            "action": {
              "description": "Type of action to trigger on.",
              "enum": [
                "create",
                "Create",
                "CREATE",
                "update",
                "Update",
                "UPDATE",
                "delete",
                "Delete",
                "DELETE"
              ],
              "type": "string"
            },
            "condition": {
              "description": "An object, describing the condition to trigger on.",
              "properties": {
                "condition": {
                  "description": "Condition for the field content to trigger on.",
                  "enum": [
                    "equals",
                    "Equals",
                    "EQUALS"
                  ],
                  "type": "string"
                },
                "fieldName": {
                  "description": "Name of the attribute of the entity to filter entities by. An example value is ``importance`` attribute for the deployment entity.",
                  "maxLength": 50,
                  "type": "string"
                },
                "values": {
                  "description": "Array of field values to apply condition to trigger on. If ``null`` for ``equals`` condition, then any value for the field is accepted.",
                  "items": {
                    "maxLength": 50,
                    "type": "string"
                  },
                  "maxItems": 100,
                  "type": "array"
                }
              },
              "required": [
                "condition",
                "fieldName",
                "values"
              ],
              "type": "object"
            }
          },
          "required": [
            "action"
          ],
          "type": "object"
        },
        "labels": {
          "description": "Trigger Labels.",
          "properties": {
            "groupLabel": {
              "description": "Group Label.",
              "type": "string"
            },
            "label": {
              "description": "Label.",
              "type": "string"
            }
          },
          "required": [
            "groupLabel",
            "label"
          ],
          "type": "object"
        }
      },
      "required": [
        "entityType",
        "intendedAction"
      ],
      "type": "object"
    }
  },
  "required": [
    "active",
    "id",
    "name",
    "openRequests",
    "trigger"
  ],
  "type": "object"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| active | boolean | true |  | Whether this policy is active. |
| automaticAction | ApprovalPolicyAutomaticAction | false |  | An object describing the automated action on the Change Request that will be performed if the request is not resolved within a given time period after its creation. If null, no automated actions will be taken on the related Change Requests. |
| id | string | true |  | ID of the Approval Policy. |
| name | string | true | maxLength: 50 | Name of the Approval Policy. |
| openRequests | integer | true | minimum: 0 | Number of open Change Requests associated with the policy. |
| review | ApprovalPolicyReview | false |  | An object describing review requirements for Change Requests, related to a specific policy. If null, no additional review requirements are added to the related Change Requests. |
| trigger | ApprovalPolicyTrigger | true |  | An object describing the trigger for the Approval Policy. |

## ApprovalPolicyReview

```
{
  "description": "An object describing review requirements for Change Requests, related to a specific policy. If ``null``, no additional review requirements are added to the related Change Requests.",
  "properties": {
    "groups": {
      "description": "A list of user groups that will be added as required reviewers on Change Requests for the entities that match the policy.",
      "items": {
        "properties": {
          "id": {
            "description": "ID of the user group.",
            "type": "string"
          },
          "name": {
            "description": "Name of the user group.",
            "maxLength": 50,
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "maxItems": 100,
      "minItems": 1,
      "type": "array"
    },
    "reminderPeriod": {
      "description": "Duration period in ISO 8601 format that indicates when to send a reminder for reviewing a Change Request after its creation or last reminder if it hasn't been approved yet. If ``null``, no review reminders are sent to the reviewers.",
      "format": "duration",
      "type": [
        "string",
        "null"
      ]
    }
  },
  "type": "object"
}
```

An object describing review requirements for Change Requests, related to a specific policy. If `null`, no additional review requirements are added to the related Change Requests.

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| groups | [PolicyUserGroup] | false | maxItems: 100minItems: 1 | A list of user groups that will be added as required reviewers on Change Requests for the entities that match the policy. |
| reminderPeriod | string,null(duration) | false |  | Duration period in ISO 8601 format that indicates when to send a reminder for reviewing a Change Request after its creation or last reminder if it hasn't been approved yet. If null, no review reminders are sent to the reviewers. |

## ApprovalPolicyTrigger

```
{
  "description": "An object describing the trigger for the Approval Policy.",
  "properties": {
    "entityType": {
      "description": "Type of entity to trigger on.",
      "enum": [
        "deployment",
        "Deployment",
        "DEPLOYMENT",
        "deploymentModel",
        "DeploymentModel",
        "DEPLOYMENT_MODEL",
        "deploymentConfig",
        "DeploymentConfig",
        "DEPLOYMENT_CONFIG",
        "deploymentStatus",
        "DeploymentStatus",
        "DEPLOYMENT_STATUS",
        "deploymentMonitoringData",
        "DeploymentMonitoringData",
        "DEPLOYMENT_MONITORING_DATA"
      ],
      "type": "string"
    },
    "filterGroups": {
      "description": "A list of user groups to apply Approval Policy for. If User 'A' and User 'B' are both members of the same organisation, and User 'A' is a member of one of the groups listed in this field,but User 'B' is not, then an approval workflow will be triggerred for User 'A' on an action to the entity that matches policy condition, but not for User 'B'. If ``null``, approvals workflow will be triggered for all users.",
      "items": {
        "properties": {
          "id": {
            "description": "ID of the user group.",
            "type": "string"
          },
          "name": {
            "description": "Name of the user group.",
            "maxLength": 50,
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "maxItems": 100,
      "type": "array"
    },
    "intendedAction": {
      "description": "An object, describing the approvals workflow intended action.",
      "properties": {
        "action": {
          "description": "Type of action to trigger on.",
          "enum": [
            "create",
            "Create",
            "CREATE",
            "update",
            "Update",
            "UPDATE",
            "delete",
            "Delete",
            "DELETE"
          ],
          "type": "string"
        },
        "condition": {
          "description": "An object, describing the condition to trigger on.",
          "properties": {
            "condition": {
              "description": "Condition for the field content to trigger on.",
              "enum": [
                "equals",
                "Equals",
                "EQUALS"
              ],
              "type": "string"
            },
            "fieldName": {
              "description": "Name of the attribute of the entity to filter entities by. An example value is ``importance`` attribute for the deployment entity.",
              "maxLength": 50,
              "type": "string"
            },
            "values": {
              "description": "Array of field values to apply condition to trigger on. If ``null`` for ``equals`` condition, then any value for the field is accepted.",
              "items": {
                "maxLength": 50,
                "type": "string"
              },
              "maxItems": 100,
              "type": "array"
            }
          },
          "required": [
            "condition",
            "fieldName",
            "values"
          ],
          "type": "object"
        }
      },
      "required": [
        "action"
      ],
      "type": "object"
    },
    "labels": {
      "description": "Trigger Labels.",
      "properties": {
        "groupLabel": {
          "description": "Group Label.",
          "type": "string"
        },
        "label": {
          "description": "Label.",
          "type": "string"
        }
      },
      "required": [
        "groupLabel",
        "label"
      ],
      "type": "object"
    }
  },
  "required": [
    "entityType",
    "intendedAction"
  ],
  "type": "object"
}
```

An object describing the trigger for the Approval Policy.

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| entityType | string | true |  | Type of entity to trigger on. |
| filterGroups | [PolicyUserGroup] | false | maxItems: 100 | A list of user groups to apply Approval Policy for. If User 'A' and User 'B' are both members of the same organisation, and User 'A' is a member of one of the groups listed in this field,but User 'B' is not, then an approval workflow will be triggerred for User 'A' on an action to the entity that matches policy condition, but not for User 'B'. If null, approvals workflow will be triggered for all users. |
| intendedAction | ApprovalPolicyIntendedAction | true |  | An object, describing the approvals workflow intended action. |
| labels | ApprovalPolicyTriggerLabel | false |  | Trigger Labels. |

### Enumerated Values

| Property | Value |
| --- | --- |
| entityType | [deployment, Deployment, DEPLOYMENT, deploymentModel, DeploymentModel, DEPLOYMENT_MODEL, deploymentConfig, DeploymentConfig, DEPLOYMENT_CONFIG, deploymentStatus, DeploymentStatus, DEPLOYMENT_STATUS, deploymentMonitoringData, DeploymentMonitoringData, DEPLOYMENT_MONITORING_DATA] |

## ApprovalPolicyTriggerLabel

```
{
  "description": "Trigger Labels.",
  "properties": {
    "groupLabel": {
      "description": "Group Label.",
      "type": "string"
    },
    "label": {
      "description": "Label.",
      "type": "string"
    }
  },
  "required": [
    "groupLabel",
    "label"
  ],
  "type": "object"
}
```

Trigger Labels.

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| groupLabel | string | true |  | Group Label. |
| label | string | true |  | Label. |

## ApprovalWorkflowListTriggerResponse

```
{
  "properties": {
    "data": {
      "description": "List of available Approval Policy Triggers.",
      "items": {
        "description": "An object describing the trigger for the Approval Policy.",
        "properties": {
          "entityType": {
            "description": "Type of entity to trigger on.",
            "enum": [
              "deployment",
              "Deployment",
              "DEPLOYMENT",
              "deploymentModel",
              "DeploymentModel",
              "DEPLOYMENT_MODEL",
              "deploymentConfig",
              "DeploymentConfig",
              "DEPLOYMENT_CONFIG",
              "deploymentStatus",
              "DeploymentStatus",
              "DEPLOYMENT_STATUS",
              "deploymentMonitoringData",
              "DeploymentMonitoringData",
              "DEPLOYMENT_MONITORING_DATA"
            ],
            "type": "string"
          },
          "filterGroups": {
            "description": "A list of user groups to apply Approval Policy for. If User 'A' and User 'B' are both members of the same organisation, and User 'A' is a member of one of the groups listed in this field,but User 'B' is not, then an approval workflow will be triggerred for User 'A' on an action to the entity that matches policy condition, but not for User 'B'. If ``null``, approvals workflow will be triggered for all users.",
            "items": {
              "properties": {
                "id": {
                  "description": "ID of the user group.",
                  "type": "string"
                },
                "name": {
                  "description": "Name of the user group.",
                  "maxLength": 50,
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "required": [
                "id"
              ],
              "type": "object"
            },
            "maxItems": 100,
            "type": "array"
          },
          "intendedAction": {
            "description": "An object, describing the approvals workflow intended action.",
            "properties": {
              "action": {
                "description": "Type of action to trigger on.",
                "enum": [
                  "create",
                  "Create",
                  "CREATE",
                  "update",
                  "Update",
                  "UPDATE",
                  "delete",
                  "Delete",
                  "DELETE"
                ],
                "type": "string"
              },
              "condition": {
                "description": "An object, describing the condition to trigger on.",
                "properties": {
                  "condition": {
                    "description": "Condition for the field content to trigger on.",
                    "enum": [
                      "equals",
                      "Equals",
                      "EQUALS"
                    ],
                    "type": "string"
                  },
                  "fieldName": {
                    "description": "Name of the attribute of the entity to filter entities by. An example value is ``importance`` attribute for the deployment entity.",
                    "maxLength": 50,
                    "type": "string"
                  },
                  "values": {
                    "description": "Array of field values to apply condition to trigger on. If ``null`` for ``equals`` condition, then any value for the field is accepted.",
                    "items": {
                      "maxLength": 50,
                      "type": "string"
                    },
                    "maxItems": 100,
                    "type": "array"
                  }
                },
                "required": [
                  "condition",
                  "fieldName",
                  "values"
                ],
                "type": "object"
              }
            },
            "required": [
              "action"
            ],
            "type": "object"
          },
          "labels": {
            "description": "Trigger Labels.",
            "properties": {
              "groupLabel": {
                "description": "Group Label.",
                "type": "string"
              },
              "label": {
                "description": "Label.",
                "type": "string"
              }
            },
            "required": [
              "groupLabel",
              "label"
            ],
            "type": "object"
          }
        },
        "required": [
          "entityType",
          "intendedAction"
        ],
        "type": "object"
      },
      "type": "array"
    }
  },
  "required": [
    "data"
  ],
  "type": "object"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| data | [ApprovalPolicyTrigger] | true |  | List of available Approval Policy Triggers. |

## ChangeRequestCreate

```
{
  "discriminator": {
    "propertyName": "action"
  },
  "oneOf": [
    {
      "properties": {
        "action": {
          "description": "Actions the user can take on the entity. Each entity type has a specific set of actions.",
          "enum": [
            "approve"
          ],
          "type": "string"
        },
        "autoApply": {
          "default": false,
          "description": "Whether to automatically apply the change when the request is approved. If `true`, the requested changes will be applied on approval.",
          "type": "boolean"
        },
        "change": {
          "description": "Approve a deployment.",
          "properties": {
            "approvalStatus": {
              "description": "Deployment approval status to set.",
              "enum": [
                "APPROVED"
              ],
              "type": "string"
            }
          },
          "required": [
            "approvalStatus"
          ],
          "type": "object"
        },
        "comment": {
          "description": "Free form text to comment on the requested changes.",
          "maxLength": 10000,
          "type": "string"
        },
        "entityId": {
          "description": "ID of the Product Entity the request is intended to change.",
          "type": "string"
        },
        "entityType": {
          "description": "Type of the Product Entity that is requested to be changed.",
          "enum": [
            "deployment",
            "Deployment",
            "DEPLOYMENT"
          ],
          "type": "string"
        }
      },
      "required": [
        "action",
        "autoApply",
        "change",
        "entityId",
        "entityType"
      ],
      "type": "object"
    },
    {
      "properties": {
        "action": {
          "description": "Actions the user can take on the entity. Each entity type has a specific set of actions.",
          "enum": [
            "changeStatus"
          ],
          "type": "string"
        },
        "autoApply": {
          "default": false,
          "description": "Whether to automatically apply the change when the request is approved. If `true`, the requested changes will be applied on approval.",
          "type": "boolean"
        },
        "change": {
          "description": "Change deployment status.",
          "properties": {
            "status": {
              "description": "Deployment status to set.",
              "enum": [
                "active",
                "inactive"
              ],
              "type": "string"
            }
          },
          "required": [
            "status"
          ],
          "type": "object"
        },
        "comment": {
          "description": "Free form text to comment on the requested changes.",
          "maxLength": 10000,
          "type": "string"
        },
        "entityId": {
          "description": "ID of the Product Entity the request is intended to change.",
          "type": "string"
        },
        "entityType": {
          "description": "Type of the Product Entity that is requested to be changed.",
          "enum": [
            "deployment",
            "Deployment",
            "DEPLOYMENT"
          ],
          "type": "string"
        }
      },
      "required": [
        "action",
        "autoApply",
        "change",
        "entityId",
        "entityType"
      ],
      "type": "object"
    },
    {
      "properties": {
        "action": {
          "description": "Actions the user can take on the entity. Each entity type has a specific set of actions.",
          "enum": [
            "changeImportance"
          ],
          "type": "string"
        },
        "autoApply": {
          "default": false,
          "description": "Whether to automatically apply the change when the request is approved. If `true`, the requested changes will be applied on approval.",
          "type": "boolean"
        },
        "change": {
          "description": "Change deployment importance.",
          "properties": {
            "importance": {
              "description": "Deployment Importance to set.",
              "enum": [
                "CRITICAL",
                "HIGH",
                "MODERATE",
                "LOW"
              ],
              "type": "string"
            }
          },
          "required": [
            "importance"
          ],
          "type": "object"
        },
        "comment": {
          "description": "Free form text to comment on the requested changes.",
          "maxLength": 10000,
          "type": "string"
        },
        "entityId": {
          "description": "ID of the Product Entity the request is intended to change.",
          "type": "string"
        },
        "entityType": {
          "description": "Type of the Product Entity that is requested to be changed.",
          "enum": [
            "deployment",
            "Deployment",
            "DEPLOYMENT"
          ],
          "type": "string"
        }
      },
      "required": [
        "action",
        "autoApply",
        "change",
        "entityId",
        "entityType"
      ],
      "type": "object"
    },
    {
      "properties": {
        "action": {
          "description": "Actions the user can take on the entity. Each entity type has a specific set of actions.",
          "enum": [
            "cleanupStats"
          ],
          "type": "string"
        },
        "autoApply": {
          "default": false,
          "description": "Whether to automatically apply the change when the request is approved. If `true`, the requested changes will be applied on approval.",
          "type": "boolean"
        },
        "change": {
          "description": "Cleanup deployment stats.",
          "properties": {
            "dataType": {
              "description": "Type of stats to cleanup.",
              "enum": [
                "monitoring"
              ],
              "type": "string"
            },
            "end": {
              "description": "If specified, the stats will be cleaned up to this timestamp. If ``null`` all stats till the deployment end forecast date will be cleaned up. Defaults to ``null``.",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "modelId": {
              "default": null,
              "description": "ID of the model to remove deployment stats for. If ``null``, the stats will be cleaned up for all models in the mathcing period. Defaults to ``null``.",
              "type": [
                "string",
                "null"
              ]
            },
            "start": {
              "description": "If specified, the stats will be cleaned up from this timestamp. If ``null`` all stats from the deployment start forecast date will be cleaned up. Defaults to ``null``.",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            }
          },
          "required": [
            "dataType",
            "end",
            "modelId",
            "start"
          ],
          "type": "object"
        },
        "comment": {
          "description": "Free form text to comment on the requested changes.",
          "maxLength": 10000,
          "type": "string"
        },
        "entityId": {
          "description": "ID of the Product Entity the request is intended to change.",
          "type": "string"
        },
        "entityType": {
          "description": "Type of the Product Entity that is requested to be changed.",
          "enum": [
            "deployment",
            "Deployment",
            "DEPLOYMENT"
          ],
          "type": "string"
        }
      },
      "required": [
        "action",
        "autoApply",
        "change",
        "entityId",
        "entityType"
      ],
      "type": "object"
    },
    {
      "properties": {
        "action": {
          "description": "Actions the user can take on the entity. Each entity type has a specific set of actions.",
          "enum": [
            "delete"
          ],
          "type": "string"
        },
        "autoApply": {
          "default": false,
          "description": "Whether to automatically apply the change when the request is approved. If `true`, the requested changes will be applied on approval.",
          "type": "boolean"
        },
        "change": {
          "description": "Delete a deployment.",
          "properties": {
            "defaultDeploymentId": {
              "description": "Used by management agent to recalculate endpoint traffic. Traffic from the deploymentbeing deleted flipped to a default deployment.",
              "type": "string"
            },
            "ignoreManagementAgent": {
              "default": "false",
              "description": "Do not wait for management agent to delete the deployment first.",
              "enum": [
                "false",
                "False",
                "true",
                "True"
              ],
              "type": "string"
            }
          },
          "type": "object"
        },
        "comment": {
          "description": "Free form text to comment on the requested changes.",
          "maxLength": 10000,
          "type": "string"
        },
        "entityId": {
          "description": "ID of the Product Entity the request is intended to change.",
          "type": "string"
        },
        "entityType": {
          "description": "Type of the Product Entity that is requested to be changed.",
          "enum": [
            "deployment",
            "Deployment",
            "DEPLOYMENT"
          ],
          "type": "string"
        }
      },
      "required": [
        "action",
        "autoApply",
        "entityId",
        "entityType"
      ],
      "type": "object"
    },
    {
      "properties": {
        "action": {
          "description": "Actions the user can take on the entity. Each entity type has a specific set of actions.",
          "enum": [
            "replaceModel"
          ],
          "type": "string"
        },
        "autoApply": {
          "default": false,
          "description": "Whether to automatically apply the change when the request is approved. If `true`, the requested changes will be applied on approval.",
          "type": "boolean"
        },
        "change": {
          "description": "Replace model in deployment.",
          "properties": {
            "modelId": {
              "description": "ID of the Model to deploy.",
              "type": "string"
            },
            "replacementReason": {
              "default": "other",
              "description": "Reason for replacement.",
              "enum": [
                "accuracy",
                "data_drift",
                "errors",
                "scheduled_refresh",
                "scoring_speed",
                "deprecation",
                "other"
              ],
              "type": "string"
            }
          },
          "required": [
            "modelId",
            "replacementReason"
          ],
          "type": "object"
        },
        "comment": {
          "description": "Free form text to comment on the requested changes.",
          "maxLength": 10000,
          "type": "string"
        },
        "entityId": {
          "description": "ID of the Product Entity the request is intended to change.",
          "type": "string"
        },
        "entityType": {
          "description": "Type of the Product Entity that is requested to be changed.",
          "enum": [
            "deployment",
            "Deployment",
            "DEPLOYMENT"
          ],
          "type": "string"
        }
      },
      "required": [
        "action",
        "autoApply",
        "change",
        "entityId",
        "entityType"
      ],
      "type": "object"
    },
    {
      "properties": {
        "action": {
          "description": "Actions the user can take on the entity. Each entity type has a specific set of actions.",
          "enum": [
            "replaceModelPackage"
          ],
          "type": "string"
        },
        "autoApply": {
          "default": false,
          "description": "Whether to automatically apply the change when the request is approved. If `true`, the requested changes will be applied on approval.",
          "type": "boolean"
        },
        "change": {
          "description": "Replace model package in deployment.",
          "properties": {
            "modelPackageId": {
              "description": "ID of the Model Package to deploy.",
              "type": "string"
            },
            "replacementReason": {
              "default": "other",
              "description": "Reason for replacement.",
              "enum": [
                "accuracy",
                "data_drift",
                "errors",
                "scheduled_refresh",
                "scoring_speed",
                "deprecation",
                "other"
              ],
              "type": "string"
            }
          },
          "required": [
            "modelPackageId",
            "replacementReason"
          ],
          "type": "object"
        },
        "comment": {
          "description": "Free form text to comment on the requested changes.",
          "maxLength": 10000,
          "type": "string"
        },
        "entityId": {
          "description": "ID of the Product Entity the request is intended to change.",
          "type": "string"
        },
        "entityType": {
          "description": "Type of the Product Entity that is requested to be changed.",
          "enum": [
            "deployment",
            "Deployment",
            "DEPLOYMENT"
          ],
          "type": "string"
        }
      },
      "required": [
        "action",
        "autoApply",
        "change",
        "entityId",
        "entityType"
      ],
      "type": "object"
    },
    {
      "properties": {
        "action": {
          "description": "Actions the user can take on the entity. Each entity type has a specific set of actions.",
          "enum": [
            "updateSecondaryDatasetConfigs"
          ],
          "type": "string"
        },
        "autoApply": {
          "default": false,
          "description": "Whether to automatically apply the change when the request is approved. If `true`, the requested changes will be applied on approval.",
          "type": "boolean"
        },
        "change": {
          "description": "Update secondary dataset config for deployment.",
          "properties": {
            "secondaryDatasetsConfigId": {
              "description": "ID of the secondary dataset configs.",
              "type": "string"
            }
          },
          "required": [
            "secondaryDatasetsConfigId"
          ],
          "type": "object"
        },
        "comment": {
          "description": "Free form text to comment on the requested changes.",
          "maxLength": 10000,
          "type": "string"
        },
        "entityId": {
          "description": "ID of the Product Entity the request is intended to change.",
          "type": "string"
        },
        "entityType": {
          "description": "Type of the Product Entity that is requested to be changed.",
          "enum": [
            "deployment",
            "Deployment",
            "DEPLOYMENT"
          ],
          "type": "string"
        }
      },
      "required": [
        "action",
        "autoApply",
        "change",
        "entityId",
        "entityType"
      ],
      "type": "object"
    }
  ]
}
```

### Properties

oneOf

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| anonymous | object | false |  | none |
| » action | string | true |  | Actions the user can take on the entity. Each entity type has a specific set of actions. |
| » autoApply | boolean | true |  | Whether to automatically apply the change when the request is approved. If true, the requested changes will be applied on approval. |
| » change | DeploymentApproveChange | true |  | Approve a deployment. |
| » comment | string | false | maxLength: 10000 | Free form text to comment on the requested changes. |
| » entityId | string | true |  | ID of the Product Entity the request is intended to change. |
| » entityType | string | true |  | Type of the Product Entity that is requested to be changed. |

xor

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| anonymous | object | false |  | none |
| » action | string | true |  | Actions the user can take on the entity. Each entity type has a specific set of actions. |
| » autoApply | boolean | true |  | Whether to automatically apply the change when the request is approved. If true, the requested changes will be applied on approval. |
| » change | DeploymentChangeStatusChange | true |  | Change deployment status. |
| » comment | string | false | maxLength: 10000 | Free form text to comment on the requested changes. |
| » entityId | string | true |  | ID of the Product Entity the request is intended to change. |
| » entityType | string | true |  | Type of the Product Entity that is requested to be changed. |

xor

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| anonymous | object | false |  | none |
| » action | string | true |  | Actions the user can take on the entity. Each entity type has a specific set of actions. |
| » autoApply | boolean | true |  | Whether to automatically apply the change when the request is approved. If true, the requested changes will be applied on approval. |
| » change | DeploymentChangeImportanceChange | true |  | Change deployment importance. |
| » comment | string | false | maxLength: 10000 | Free form text to comment on the requested changes. |
| » entityId | string | true |  | ID of the Product Entity the request is intended to change. |
| » entityType | string | true |  | Type of the Product Entity that is requested to be changed. |

xor

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| anonymous | object | false |  | none |
| » action | string | true |  | Actions the user can take on the entity. Each entity type has a specific set of actions. |
| » autoApply | boolean | true |  | Whether to automatically apply the change when the request is approved. If true, the requested changes will be applied on approval. |
| » change | DeploymentCleanupStatsChange | true |  | Cleanup deployment stats. |
| » comment | string | false | maxLength: 10000 | Free form text to comment on the requested changes. |
| » entityId | string | true |  | ID of the Product Entity the request is intended to change. |
| » entityType | string | true |  | Type of the Product Entity that is requested to be changed. |

xor

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| anonymous | object | false |  | none |
| » action | string | true |  | Actions the user can take on the entity. Each entity type has a specific set of actions. |
| » autoApply | boolean | true |  | Whether to automatically apply the change when the request is approved. If true, the requested changes will be applied on approval. |
| » change | DeploymentDeleteChange | false |  | Delete a deployment. |
| » comment | string | false | maxLength: 10000 | Free form text to comment on the requested changes. |
| » entityId | string | true |  | ID of the Product Entity the request is intended to change. |
| » entityType | string | true |  | Type of the Product Entity that is requested to be changed. |

xor

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| anonymous | object | false |  | none |
| » action | string | true |  | Actions the user can take on the entity. Each entity type has a specific set of actions. |
| » autoApply | boolean | true |  | Whether to automatically apply the change when the request is approved. If true, the requested changes will be applied on approval. |
| » change | DeploymentReplaceModelChange | true |  | Replace model in deployment. |
| » comment | string | false | maxLength: 10000 | Free form text to comment on the requested changes. |
| » entityId | string | true |  | ID of the Product Entity the request is intended to change. |
| » entityType | string | true |  | Type of the Product Entity that is requested to be changed. |

xor

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| anonymous | object | false |  | none |
| » action | string | true |  | Actions the user can take on the entity. Each entity type has a specific set of actions. |
| » autoApply | boolean | true |  | Whether to automatically apply the change when the request is approved. If true, the requested changes will be applied on approval. |
| » change | DeploymentReplaceModelPackageChange | true |  | Replace model package in deployment. |
| » comment | string | false | maxLength: 10000 | Free form text to comment on the requested changes. |
| » entityId | string | true |  | ID of the Product Entity the request is intended to change. |
| » entityType | string | true |  | Type of the Product Entity that is requested to be changed. |

xor

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| anonymous | object | false |  | none |
| » action | string | true |  | Actions the user can take on the entity. Each entity type has a specific set of actions. |
| » autoApply | boolean | true |  | Whether to automatically apply the change when the request is approved. If true, the requested changes will be applied on approval. |
| » change | DeploymentUpdateSecondaryDatasetConfigChange | true |  | Update secondary dataset config for deployment. |
| » comment | string | false | maxLength: 10000 | Free form text to comment on the requested changes. |
| » entityId | string | true |  | ID of the Product Entity the request is intended to change. |
| » entityType | string | true |  | Type of the Product Entity that is requested to be changed. |

### Enumerated Values

| Property | Value |
| --- | --- |
| action | approve |
| entityType | [deployment, Deployment, DEPLOYMENT] |
| action | changeStatus |
| entityType | [deployment, Deployment, DEPLOYMENT] |
| action | changeImportance |
| entityType | [deployment, Deployment, DEPLOYMENT] |
| action | cleanupStats |
| entityType | [deployment, Deployment, DEPLOYMENT] |
| action | delete |
| entityType | [deployment, Deployment, DEPLOYMENT] |
| action | replaceModel |
| entityType | [deployment, Deployment, DEPLOYMENT] |
| action | replaceModelPackage |
| entityType | [deployment, Deployment, DEPLOYMENT] |
| action | updateSecondaryDatasetConfigs |
| entityType | [deployment, Deployment, DEPLOYMENT] |

## ChangeRequestDiff

```
{
  "description": "The difference between the current entity state and the state of the entity if the Change Request gets applied.",
  "properties": {
    "changesFrom": {
      "description": "List of human readable messages describing the state of the entity before changes are applied.",
      "items": {
        "description": "Single message line.",
        "type": "string"
      },
      "maxItems": 1000,
      "type": "array"
    },
    "changesTo": {
      "description": "List of human readable messages describing the state of the entity after changes are applied.",
      "items": {
        "description": "Single message line.",
        "type": "string"
      },
      "maxItems": 1000,
      "type": "array"
    }
  },
  "required": [
    "changesFrom",
    "changesTo"
  ],
  "type": "object"
}
```

The difference between the current entity state and the state of the entity if the Change Request gets applied.

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| changesFrom | [string] | true | maxItems: 1000 | List of human readable messages describing the state of the entity before changes are applied. |
| changesTo | [string] | true | maxItems: 1000 | List of human readable messages describing the state of the entity after changes are applied. |

## ChangeRequestInfoListResponse

```
{
  "properties": {
    "count": {
      "description": "The number of items returned on this page.",
      "type": "integer"
    },
    "data": {
      "description": "List of Approval Policies.",
      "items": {
        "properties": {
          "changeRequestId": {
            "description": "ID of the Change Request.",
            "type": "string"
          },
          "createDate": {
            "description": "Change Request creation date.",
            "format": "date-time",
            "type": "string"
          },
          "entityId": {
            "description": "ID of the modified entity.",
            "type": "string"
          },
          "entityName": {
            "description": "Name of the modified entity.",
            "type": [
              "string",
              "null"
            ]
          },
          "requester": {
            "description": "Username of the account that initiated a Change Request.",
            "type": "string"
          },
          "state": {
            "description": "Status of the Change Request.",
            "enum": [
              "OPENED",
              "RESOLVED",
              "CANCELLED"
            ],
            "type": "string"
          },
          "updateDate": {
            "description": "Last date when Change Request was modified.",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "updatedBy": {
            "description": "Username of the account that last updated the Change Request.",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "changeRequestId",
          "createDate",
          "entityId",
          "entityName",
          "requester",
          "state",
          "updateDate",
          "updatedBy"
        ],
        "type": "object"
      },
      "type": "array"
    },
    "next": {
      "description": "The URL of the next page (if null, there is no next page).",
      "format": "uri",
      "type": [
        "string",
        "null"
      ]
    },
    "previous": {
      "description": "The URL of the previous page (if null, there is no previous page).",
      "format": "uri",
      "type": [
        "string",
        "null"
      ]
    },
    "totalCount": {
      "description": "The total number of items across all pages.",
      "type": "integer"
    }
  },
  "required": [
    "data",
    "next",
    "previous",
    "totalCount"
  ],
  "type": "object"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| count | integer | false |  | The number of items returned on this page. |
| data | [ChangeRequestInfoResponse] | true |  | List of Approval Policies. |
| next | string,null(uri) | true |  | The URL of the next page (if null, there is no next page). |
| previous | string,null(uri) | true |  | The URL of the previous page (if null, there is no previous page). |
| totalCount | integer | true |  | The total number of items across all pages. |

## ChangeRequestInfoResponse

```
{
  "properties": {
    "changeRequestId": {
      "description": "ID of the Change Request.",
      "type": "string"
    },
    "createDate": {
      "description": "Change Request creation date.",
      "format": "date-time",
      "type": "string"
    },
    "entityId": {
      "description": "ID of the modified entity.",
      "type": "string"
    },
    "entityName": {
      "description": "Name of the modified entity.",
      "type": [
        "string",
        "null"
      ]
    },
    "requester": {
      "description": "Username of the account that initiated a Change Request.",
      "type": "string"
    },
    "state": {
      "description": "Status of the Change Request.",
      "enum": [
        "OPENED",
        "RESOLVED",
        "CANCELLED"
      ],
      "type": "string"
    },
    "updateDate": {
      "description": "Last date when Change Request was modified.",
      "format": "date-time",
      "type": [
        "string",
        "null"
      ]
    },
    "updatedBy": {
      "description": "Username of the account that last updated the Change Request.",
      "type": [
        "string",
        "null"
      ]
    }
  },
  "required": [
    "changeRequestId",
    "createDate",
    "entityId",
    "entityName",
    "requester",
    "state",
    "updateDate",
    "updatedBy"
  ],
  "type": "object"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| changeRequestId | string | true |  | ID of the Change Request. |
| createDate | string(date-time) | true |  | Change Request creation date. |
| entityId | string | true |  | ID of the modified entity. |
| entityName | string,null | true |  | Name of the modified entity. |
| requester | string | true |  | Username of the account that initiated a Change Request. |
| state | string | true |  | Status of the Change Request. |
| updateDate | string,null(date-time) | true |  | Last date when Change Request was modified. |
| updatedBy | string,null | true |  | Username of the account that last updated the Change Request. |

### Enumerated Values

| Property | Value |
| --- | --- |
| state | [OPENED, RESOLVED, CANCELLED] |

## ChangeRequestRequestReview

```
{
  "properties": {
    "comment": {
      "description": "Free form text to comment on the requested changes.",
      "maxLength": 10000,
      "type": "string"
    }
  },
  "type": "object",
  "x-versionadded": "v2.38"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| comment | string | false | maxLength: 10000 | Free form text to comment on the requested changes. |

## ChangeRequestResponse

```
{
  "properties": {
    "action": {
      "description": "Actions the user can take on the entity. Each entity type has a specific set of actions.",
      "enum": [
        "approve",
        "Approve",
        "APPROVE",
        "changeStatus",
        "ChangeStatus",
        "CHANGE_STATUS",
        "changeImportance",
        "ChangeImportance",
        "CHANGE_IMPORTANCE",
        "cleanupStats",
        "CleanupStats",
        "CLEANUP_STATS",
        "delete",
        "Delete",
        "DELETE",
        "replaceModel",
        "ReplaceModel",
        "REPLACE_MODEL",
        "replaceModelPackage",
        "ReplaceModelPackage",
        "REPLACE_MODEL_PACKAGE",
        "updateSecondaryDatasetConfigs",
        "UpdateSecondaryDatasetConfigs",
        "UPDATE_SECONDARY_DATASET_CONFIGS"
      ],
      "type": "string"
    },
    "autoApply": {
      "default": false,
      "description": "Whether to automatically apply the change when the request is approved. If `true`, the requested changes will be applied on approval.",
      "type": "boolean"
    },
    "change": {
      "description": "Change that the user wants to apply to the entity. Needs to be provided if the action, like `approve` action for a deployment, requires additional parameters . `null` if the action does not require any additional parameters to be applied. ",
      "oneOf": [
        {
          "description": "Approve a deployment.",
          "properties": {
            "approvalStatus": {
              "description": "Deployment approval status to set.",
              "enum": [
                "APPROVED"
              ],
              "type": "string"
            }
          },
          "required": [
            "approvalStatus"
          ],
          "type": "object"
        },
        {
          "description": "Change deployment status.",
          "properties": {
            "status": {
              "description": "Deployment status to set.",
              "enum": [
                "active",
                "inactive"
              ],
              "type": "string"
            }
          },
          "required": [
            "status"
          ],
          "type": "object"
        },
        {
          "description": "Change deployment importance.",
          "properties": {
            "importance": {
              "description": "Deployment Importance to set.",
              "enum": [
                "CRITICAL",
                "HIGH",
                "MODERATE",
                "LOW"
              ],
              "type": "string"
            }
          },
          "required": [
            "importance"
          ],
          "type": "object"
        },
        {
          "description": "Cleanup deployment stats.",
          "properties": {
            "dataType": {
              "description": "Type of stats to cleanup.",
              "enum": [
                "monitoring"
              ],
              "type": "string"
            },
            "end": {
              "description": "If specified, the stats will be cleaned up to this timestamp. If ``null`` all stats till the deployment end forecast date will be cleaned up. Defaults to ``null``.",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "modelId": {
              "default": null,
              "description": "ID of the model to remove deployment stats for. If ``null``, the stats will be cleaned up for all models in the mathcing period. Defaults to ``null``.",
              "type": [
                "string",
                "null"
              ]
            },
            "start": {
              "description": "If specified, the stats will be cleaned up from this timestamp. If ``null`` all stats from the deployment start forecast date will be cleaned up. Defaults to ``null``.",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            }
          },
          "required": [
            "dataType",
            "end",
            "modelId",
            "start"
          ],
          "type": "object"
        },
        {
          "description": "Replace model in deployment.",
          "properties": {
            "modelId": {
              "description": "ID of the Model to deploy.",
              "type": "string"
            },
            "replacementReason": {
              "default": "other",
              "description": "Reason for replacement.",
              "enum": [
                "accuracy",
                "data_drift",
                "errors",
                "scheduled_refresh",
                "scoring_speed",
                "deprecation",
                "other"
              ],
              "type": "string"
            }
          },
          "required": [
            "modelId",
            "replacementReason"
          ],
          "type": "object"
        },
        {
          "description": "Replace model package in deployment.",
          "properties": {
            "modelPackageId": {
              "description": "ID of the Model Package to deploy.",
              "type": "string"
            },
            "replacementReason": {
              "default": "other",
              "description": "Reason for replacement.",
              "enum": [
                "accuracy",
                "data_drift",
                "errors",
                "scheduled_refresh",
                "scoring_speed",
                "deprecation",
                "other"
              ],
              "type": "string"
            }
          },
          "required": [
            "modelPackageId",
            "replacementReason"
          ],
          "type": "object"
        },
        {
          "description": "Update secondary dataset config for deployment.",
          "properties": {
            "secondaryDatasetsConfigId": {
              "description": "ID of the secondary dataset configs.",
              "type": "string"
            }
          },
          "required": [
            "secondaryDatasetsConfigId"
          ],
          "type": "object"
        },
        {
          "type": "null"
        }
      ]
    },
    "changeVersionId": {
      "description": "ID of the current version of change within this Change Request. It's possible to modify the changes that have been requested. At the same time, we need to make sure that review is associated with the correct changes, that's why we implement versioning on the changes and associate user reviews with the specific Change Request versions.",
      "type": "string"
    },
    "comment": {
      "description": "Free form text to comment on the requested changes.",
      "maxLength": 10000,
      "type": "string"
    },
    "createdAt": {
      "description": "Timestamp when the request was created.",
      "format": "date-time",
      "type": "string"
    },
    "diff": {
      "description": "The difference between the current entity state and the state of the entity if the Change Request gets applied.",
      "properties": {
        "changesFrom": {
          "description": "List of human readable messages describing the state of the entity before changes are applied.",
          "items": {
            "description": "Single message line.",
            "type": "string"
          },
          "maxItems": 1000,
          "type": "array"
        },
        "changesTo": {
          "description": "List of human readable messages describing the state of the entity after changes are applied.",
          "items": {
            "description": "Single message line.",
            "type": "string"
          },
          "maxItems": 1000,
          "type": "array"
        }
      },
      "required": [
        "changesFrom",
        "changesTo"
      ],
      "type": "object"
    },
    "entityId": {
      "description": "ID of the Product Entity the request is intended to change.",
      "type": "string"
    },
    "entityType": {
      "description": "Type of the Product Entity that is requested to be changed.",
      "enum": [
        "deployment",
        "Deployment",
        "DEPLOYMENT"
      ],
      "type": "string"
    },
    "id": {
      "description": "ID of the Change Request.",
      "type": "string"
    },
    "numApprovalsRequired": {
      "description": "Number of approving reviews required for the Change Request to be considered approved.",
      "minimum": 0,
      "type": "integer"
    },
    "processedAt": {
      "description": "Timestamp when the request was processed.",
      "format": "date-time",
      "type": [
        "string",
        "null"
      ]
    },
    "status": {
      "description": "Change Request Status.",
      "enum": [
        "pending",
        "Pending",
        "PENDING",
        "approved",
        "Approved",
        "APPROVED",
        "changesRequested",
        "ChangesRequested",
        "CHANGES_REQUESTED",
        "resolved",
        "Resolved",
        "RESOLVED",
        "cancelled",
        "Cancelled",
        "CANCELLED"
      ],
      "type": "string"
    },
    "statusChangedAt": {
      "description": "Timestamp when the current request status was set. `null` if status is set by the system.",
      "format": "date-time",
      "type": [
        "string",
        "null"
      ]
    },
    "statusChangedBy": {
      "description": "ID of the user who set the current request status. `null` if the status was set by the system.",
      "type": [
        "string",
        "null"
      ]
    },
    "updatedAt": {
      "description": "Timestamp when the request was last modified.",
      "format": "date-time",
      "type": "string"
    },
    "userId": {
      "description": "ID of the user, who created the Change Request.",
      "type": "string"
    },
    "userName": {
      "description": "Email of the user, who created the Change Request",
      "type": [
        "string",
        "null"
      ]
    },
    "userOperations": {
      "description": "A set operations the user can or can not make with the Change Request.",
      "properties": {
        "canCancel": {
          "description": "Whether the user can cancel the Change Request.",
          "type": "boolean"
        },
        "canComment": {
          "description": "Whether the user can create commenting review on the Change Request.",
          "type": "boolean"
        },
        "canResolve": {
          "description": "Whether the user can resolve the Change Request.",
          "type": "boolean"
        },
        "canReview": {
          "description": "Whether the user can review (approve or request updates) the Change Request.",
          "type": "boolean"
        },
        "canUpdate": {
          "description": "Whether the user can update the Change Request.",
          "type": "boolean"
        }
      },
      "required": [
        "canCancel",
        "canComment",
        "canResolve",
        "canReview",
        "canUpdate"
      ],
      "type": "object"
    }
  },
  "required": [
    "action",
    "autoApply",
    "change",
    "changeVersionId",
    "createdAt",
    "diff",
    "entityId",
    "entityType",
    "id",
    "numApprovalsRequired",
    "processedAt",
    "status",
    "statusChangedAt",
    "statusChangedBy",
    "updatedAt",
    "userId",
    "userName",
    "userOperations"
  ],
  "type": "object"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| action | string | true |  | Actions the user can take on the entity. Each entity type has a specific set of actions. |
| autoApply | boolean | true |  | Whether to automatically apply the change when the request is approved. If true, the requested changes will be applied on approval. |
| change | any | true |  | Change that the user wants to apply to the entity. Needs to be provided if the action, like approve action for a deployment, requires additional parameters . null if the action does not require any additional parameters to be applied. |

oneOf

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| » anonymous | DeploymentApproveChange | false |  | Approve a deployment. |

xor

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| » anonymous | DeploymentChangeStatusChange | false |  | Change deployment status. |

xor

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| » anonymous | DeploymentChangeImportanceChange | false |  | Change deployment importance. |

xor

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| » anonymous | DeploymentCleanupStatsChange | false |  | Cleanup deployment stats. |

xor

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| » anonymous | DeploymentReplaceModelChange | false |  | Replace model in deployment. |

xor

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| » anonymous | DeploymentReplaceModelPackageChange | false |  | Replace model package in deployment. |

xor

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| » anonymous | DeploymentUpdateSecondaryDatasetConfigChange | false |  | Update secondary dataset config for deployment. |

xor

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| » anonymous | null | false |  | none |

continued

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| changeVersionId | string | true |  | ID of the current version of change within this Change Request. It's possible to modify the changes that have been requested. At the same time, we need to make sure that review is associated with the correct changes, that's why we implement versioning on the changes and associate user reviews with the specific Change Request versions. |
| comment | string | false | maxLength: 10000 | Free form text to comment on the requested changes. |
| createdAt | string(date-time) | true |  | Timestamp when the request was created. |
| diff | ChangeRequestDiff | true |  | The difference between the current entity state and the state of the entity if the Change Request gets applied. |
| entityId | string | true |  | ID of the Product Entity the request is intended to change. |
| entityType | string | true |  | Type of the Product Entity that is requested to be changed. |
| id | string | true |  | ID of the Change Request. |
| numApprovalsRequired | integer | true | minimum: 0 | Number of approving reviews required for the Change Request to be considered approved. |
| processedAt | string,null(date-time) | true |  | Timestamp when the request was processed. |
| status | string | true |  | Change Request Status. |
| statusChangedAt | string,null(date-time) | true |  | Timestamp when the current request status was set. null if status is set by the system. |
| statusChangedBy | string,null | true |  | ID of the user who set the current request status. null if the status was set by the system. |
| updatedAt | string(date-time) | true |  | Timestamp when the request was last modified. |
| userId | string | true |  | ID of the user, who created the Change Request. |
| userName | string,null | true |  | Email of the user, who created the Change Request |
| userOperations | UserOperations | true |  | A set operations the user can or can not make with the Change Request. |

### Enumerated Values

| Property | Value |
| --- | --- |
| action | [approve, Approve, APPROVE, changeStatus, ChangeStatus, CHANGE_STATUS, changeImportance, ChangeImportance, CHANGE_IMPORTANCE, cleanupStats, CleanupStats, CLEANUP_STATS, delete, Delete, DELETE, replaceModel, ReplaceModel, REPLACE_MODEL, replaceModelPackage, ReplaceModelPackage, REPLACE_MODEL_PACKAGE, updateSecondaryDatasetConfigs, UpdateSecondaryDatasetConfigs, UPDATE_SECONDARY_DATASET_CONFIGS] |
| entityType | [deployment, Deployment, DEPLOYMENT] |
| status | [pending, Pending, PENDING, approved, Approved, APPROVED, changesRequested, ChangesRequested, CHANGES_REQUESTED, resolved, Resolved, RESOLVED, cancelled, Cancelled, CANCELLED] |

## ChangeRequestUpdate

```
{
  "properties": {
    "autoApply": {
      "description": "Whether to automatically apply the change when the request is approved. If `true`, the requested changes will be applied on approval.",
      "type": "boolean"
    },
    "change": {
      "description": "Change that the user wants to apply to the entity. Needs to be provided if the action, like `approve` action for a deployment, requires additional parameters . `null` if the action does not require any additional parameters to be applied. ",
      "oneOf": [
        {
          "description": "Approve a deployment.",
          "properties": {
            "approvalStatus": {
              "description": "Deployment approval status to set.",
              "enum": [
                "APPROVED"
              ],
              "type": "string"
            }
          },
          "required": [
            "approvalStatus"
          ],
          "type": "object"
        },
        {
          "description": "Change deployment status.",
          "properties": {
            "status": {
              "description": "Deployment status to set.",
              "enum": [
                "active",
                "inactive"
              ],
              "type": "string"
            }
          },
          "required": [
            "status"
          ],
          "type": "object"
        },
        {
          "description": "Change deployment importance.",
          "properties": {
            "importance": {
              "description": "Deployment Importance to set.",
              "enum": [
                "CRITICAL",
                "HIGH",
                "MODERATE",
                "LOW"
              ],
              "type": "string"
            }
          },
          "required": [
            "importance"
          ],
          "type": "object"
        },
        {
          "description": "Cleanup deployment stats.",
          "properties": {
            "dataType": {
              "description": "Type of stats to cleanup.",
              "enum": [
                "monitoring"
              ],
              "type": "string"
            },
            "end": {
              "description": "If specified, the stats will be cleaned up to this timestamp. If ``null`` all stats till the deployment end forecast date will be cleaned up. Defaults to ``null``.",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            },
            "modelId": {
              "default": null,
              "description": "ID of the model to remove deployment stats for. If ``null``, the stats will be cleaned up for all models in the mathcing period. Defaults to ``null``.",
              "type": [
                "string",
                "null"
              ]
            },
            "start": {
              "description": "If specified, the stats will be cleaned up from this timestamp. If ``null`` all stats from the deployment start forecast date will be cleaned up. Defaults to ``null``.",
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            }
          },
          "required": [
            "dataType",
            "end",
            "modelId",
            "start"
          ],
          "type": "object"
        },
        {
          "description": "Replace model in deployment.",
          "properties": {
            "modelId": {
              "description": "ID of the Model to deploy.",
              "type": "string"
            },
            "replacementReason": {
              "default": "other",
              "description": "Reason for replacement.",
              "enum": [
                "accuracy",
                "data_drift",
                "errors",
                "scheduled_refresh",
                "scoring_speed",
                "deprecation",
                "other"
              ],
              "type": "string"
            }
          },
          "required": [
            "modelId",
            "replacementReason"
          ],
          "type": "object"
        },
        {
          "description": "Replace model package in deployment.",
          "properties": {
            "modelPackageId": {
              "description": "ID of the Model Package to deploy.",
              "type": "string"
            },
            "replacementReason": {
              "default": "other",
              "description": "Reason for replacement.",
              "enum": [
                "accuracy",
                "data_drift",
                "errors",
                "scheduled_refresh",
                "scoring_speed",
                "deprecation",
                "other"
              ],
              "type": "string"
            }
          },
          "required": [
            "modelPackageId",
            "replacementReason"
          ],
          "type": "object"
        },
        {
          "description": "Update secondary dataset config for deployment.",
          "properties": {
            "secondaryDatasetsConfigId": {
              "description": "ID of the secondary dataset configs.",
              "type": "string"
            }
          },
          "required": [
            "secondaryDatasetsConfigId"
          ],
          "type": "object"
        }
      ]
    },
    "comment": {
      "description": "Free form text to comment on the requested changes.",
      "maxLength": 10000,
      "type": "string"
    }
  },
  "type": "object"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| autoApply | boolean | false |  | Whether to automatically apply the change when the request is approved. If true, the requested changes will be applied on approval. |
| change | any | false |  | Change that the user wants to apply to the entity. Needs to be provided if the action, like approve action for a deployment, requires additional parameters . null if the action does not require any additional parameters to be applied. |

oneOf

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| » anonymous | DeploymentApproveChange | false |  | Approve a deployment. |

xor

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| » anonymous | DeploymentChangeStatusChange | false |  | Change deployment status. |

xor

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| » anonymous | DeploymentChangeImportanceChange | false |  | Change deployment importance. |

xor

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| » anonymous | DeploymentCleanupStatsChange | false |  | Cleanup deployment stats. |

xor

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| » anonymous | DeploymentReplaceModelChange | false |  | Replace model in deployment. |

xor

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| » anonymous | DeploymentReplaceModelPackageChange | false |  | Replace model package in deployment. |

xor

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| » anonymous | DeploymentUpdateSecondaryDatasetConfigChange | false |  | Update secondary dataset config for deployment. |

continued

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| comment | string | false | maxLength: 10000 | Free form text to comment on the requested changes. |

## ChangeRequestUpdateStatus

```
{
  "properties": {
    "status": {
      "description": "Change Request status to set.",
      "enum": [
        "cancelled",
        "resolving"
      ],
      "type": "string"
    }
  },
  "required": [
    "status"
  ],
  "type": "object"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| status | string | true |  | Change Request status to set. |

### Enumerated Values

| Property | Value |
| --- | --- |
| status | [cancelled, resolving] |

## ChangeRequestsListResponse

```
{
  "properties": {
    "count": {
      "description": "The number of items returned on this page.",
      "type": "integer"
    },
    "data": {
      "description": "List of Change Requests",
      "items": {
        "properties": {
          "action": {
            "description": "Actions the user can take on the entity. Each entity type has a specific set of actions.",
            "enum": [
              "approve",
              "Approve",
              "APPROVE",
              "changeStatus",
              "ChangeStatus",
              "CHANGE_STATUS",
              "changeImportance",
              "ChangeImportance",
              "CHANGE_IMPORTANCE",
              "cleanupStats",
              "CleanupStats",
              "CLEANUP_STATS",
              "delete",
              "Delete",
              "DELETE",
              "replaceModel",
              "ReplaceModel",
              "REPLACE_MODEL",
              "replaceModelPackage",
              "ReplaceModelPackage",
              "REPLACE_MODEL_PACKAGE",
              "updateSecondaryDatasetConfigs",
              "UpdateSecondaryDatasetConfigs",
              "UPDATE_SECONDARY_DATASET_CONFIGS"
            ],
            "type": "string"
          },
          "autoApply": {
            "default": false,
            "description": "Whether to automatically apply the change when the request is approved. If `true`, the requested changes will be applied on approval.",
            "type": "boolean"
          },
          "change": {
            "description": "Change that the user wants to apply to the entity. Needs to be provided if the action, like `approve` action for a deployment, requires additional parameters . `null` if the action does not require any additional parameters to be applied. ",
            "oneOf": [
              {
                "description": "Approve a deployment.",
                "properties": {
                  "approvalStatus": {
                    "description": "Deployment approval status to set.",
                    "enum": [
                      "APPROVED"
                    ],
                    "type": "string"
                  }
                },
                "required": [
                  "approvalStatus"
                ],
                "type": "object"
              },
              {
                "description": "Change deployment status.",
                "properties": {
                  "status": {
                    "description": "Deployment status to set.",
                    "enum": [
                      "active",
                      "inactive"
                    ],
                    "type": "string"
                  }
                },
                "required": [
                  "status"
                ],
                "type": "object"
              },
              {
                "description": "Change deployment importance.",
                "properties": {
                  "importance": {
                    "description": "Deployment Importance to set.",
                    "enum": [
                      "CRITICAL",
                      "HIGH",
                      "MODERATE",
                      "LOW"
                    ],
                    "type": "string"
                  }
                },
                "required": [
                  "importance"
                ],
                "type": "object"
              },
              {
                "description": "Cleanup deployment stats.",
                "properties": {
                  "dataType": {
                    "description": "Type of stats to cleanup.",
                    "enum": [
                      "monitoring"
                    ],
                    "type": "string"
                  },
                  "end": {
                    "description": "If specified, the stats will be cleaned up to this timestamp. If ``null`` all stats till the deployment end forecast date will be cleaned up. Defaults to ``null``.",
                    "format": "date-time",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "modelId": {
                    "default": null,
                    "description": "ID of the model to remove deployment stats for. If ``null``, the stats will be cleaned up for all models in the mathcing period. Defaults to ``null``.",
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "start": {
                    "description": "If specified, the stats will be cleaned up from this timestamp. If ``null`` all stats from the deployment start forecast date will be cleaned up. Defaults to ``null``.",
                    "format": "date-time",
                    "type": [
                      "string",
                      "null"
                    ]
                  }
                },
                "required": [
                  "dataType",
                  "end",
                  "modelId",
                  "start"
                ],
                "type": "object"
              },
              {
                "description": "Replace model in deployment.",
                "properties": {
                  "modelId": {
                    "description": "ID of the Model to deploy.",
                    "type": "string"
                  },
                  "replacementReason": {
                    "default": "other",
                    "description": "Reason for replacement.",
                    "enum": [
                      "accuracy",
                      "data_drift",
                      "errors",
                      "scheduled_refresh",
                      "scoring_speed",
                      "deprecation",
                      "other"
                    ],
                    "type": "string"
                  }
                },
                "required": [
                  "modelId",
                  "replacementReason"
                ],
                "type": "object"
              },
              {
                "description": "Replace model package in deployment.",
                "properties": {
                  "modelPackageId": {
                    "description": "ID of the Model Package to deploy.",
                    "type": "string"
                  },
                  "replacementReason": {
                    "default": "other",
                    "description": "Reason for replacement.",
                    "enum": [
                      "accuracy",
                      "data_drift",
                      "errors",
                      "scheduled_refresh",
                      "scoring_speed",
                      "deprecation",
                      "other"
                    ],
                    "type": "string"
                  }
                },
                "required": [
                  "modelPackageId",
                  "replacementReason"
                ],
                "type": "object"
              },
              {
                "description": "Update secondary dataset config for deployment.",
                "properties": {
                  "secondaryDatasetsConfigId": {
                    "description": "ID of the secondary dataset configs.",
                    "type": "string"
                  }
                },
                "required": [
                  "secondaryDatasetsConfigId"
                ],
                "type": "object"
              },
              {
                "type": "null"
              }
            ]
          },
          "changeVersionId": {
            "description": "ID of the current version of change within this Change Request. It's possible to modify the changes that have been requested. At the same time, we need to make sure that review is associated with the correct changes, that's why we implement versioning on the changes and associate user reviews with the specific Change Request versions.",
            "type": "string"
          },
          "comment": {
            "description": "Free form text to comment on the requested changes.",
            "maxLength": 10000,
            "type": "string"
          },
          "createdAt": {
            "description": "Timestamp when the request was created.",
            "format": "date-time",
            "type": "string"
          },
          "diff": {
            "description": "The difference between the current entity state and the state of the entity if the Change Request gets applied.",
            "properties": {
              "changesFrom": {
                "description": "List of human readable messages describing the state of the entity before changes are applied.",
                "items": {
                  "description": "Single message line.",
                  "type": "string"
                },
                "maxItems": 1000,
                "type": "array"
              },
              "changesTo": {
                "description": "List of human readable messages describing the state of the entity after changes are applied.",
                "items": {
                  "description": "Single message line.",
                  "type": "string"
                },
                "maxItems": 1000,
                "type": "array"
              }
            },
            "required": [
              "changesFrom",
              "changesTo"
            ],
            "type": "object"
          },
          "entityId": {
            "description": "ID of the Product Entity the request is intended to change.",
            "type": "string"
          },
          "entityType": {
            "description": "Type of the Product Entity that is requested to be changed.",
            "enum": [
              "deployment",
              "Deployment",
              "DEPLOYMENT"
            ],
            "type": "string"
          },
          "id": {
            "description": "ID of the Change Request.",
            "type": "string"
          },
          "numApprovalsRequired": {
            "description": "Number of approving reviews required for the Change Request to be considered approved.",
            "minimum": 0,
            "type": "integer"
          },
          "processedAt": {
            "description": "Timestamp when the request was processed.",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "status": {
            "description": "Change Request Status.",
            "enum": [
              "pending",
              "Pending",
              "PENDING",
              "approved",
              "Approved",
              "APPROVED",
              "changesRequested",
              "ChangesRequested",
              "CHANGES_REQUESTED",
              "resolved",
              "Resolved",
              "RESOLVED",
              "cancelled",
              "Cancelled",
              "CANCELLED"
            ],
            "type": "string"
          },
          "statusChangedAt": {
            "description": "Timestamp when the current request status was set. `null` if status is set by the system.",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "statusChangedBy": {
            "description": "ID of the user who set the current request status. `null` if the status was set by the system.",
            "type": [
              "string",
              "null"
            ]
          },
          "updatedAt": {
            "description": "Timestamp when the request was last modified.",
            "format": "date-time",
            "type": "string"
          },
          "userId": {
            "description": "ID of the user, who created the Change Request.",
            "type": "string"
          },
          "userName": {
            "description": "Email of the user, who created the Change Request",
            "type": [
              "string",
              "null"
            ]
          },
          "userOperations": {
            "description": "A set operations the user can or can not make with the Change Request.",
            "properties": {
              "canCancel": {
                "description": "Whether the user can cancel the Change Request.",
                "type": "boolean"
              },
              "canComment": {
                "description": "Whether the user can create commenting review on the Change Request.",
                "type": "boolean"
              },
              "canResolve": {
                "description": "Whether the user can resolve the Change Request.",
                "type": "boolean"
              },
              "canReview": {
                "description": "Whether the user can review (approve or request updates) the Change Request.",
                "type": "boolean"
              },
              "canUpdate": {
                "description": "Whether the user can update the Change Request.",
                "type": "boolean"
              }
            },
            "required": [
              "canCancel",
              "canComment",
              "canResolve",
              "canReview",
              "canUpdate"
            ],
            "type": "object"
          }
        },
        "required": [
          "action",
          "autoApply",
          "change",
          "changeVersionId",
          "createdAt",
          "diff",
          "entityId",
          "entityType",
          "id",
          "numApprovalsRequired",
          "processedAt",
          "status",
          "statusChangedAt",
          "statusChangedBy",
          "updatedAt",
          "userId",
          "userName",
          "userOperations"
        ],
        "type": "object"
      },
      "maxItems": 1000,
      "type": "array"
    },
    "next": {
      "description": "The URL of the next page (if null, there is no next page).",
      "format": "uri",
      "type": [
        "string",
        "null"
      ]
    },
    "previous": {
      "description": "The URL of the previous page (if null, there is no previous page).",
      "format": "uri",
      "type": [
        "string",
        "null"
      ]
    },
    "totalCount": {
      "description": "The total number of items across all pages.",
      "type": "integer"
    }
  },
  "required": [
    "data",
    "next",
    "previous",
    "totalCount"
  ],
  "type": "object"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| count | integer | false |  | The number of items returned on this page. |
| data | [ChangeRequestResponse] | true | maxItems: 1000 | List of Change Requests |
| next | string,null(uri) | true |  | The URL of the next page (if null, there is no next page). |
| previous | string,null(uri) | true |  | The URL of the previous page (if null, there is no previous page). |
| totalCount | integer | true |  | The total number of items across all pages. |

## DeploymentApproveChange

```
{
  "description": "Approve a deployment.",
  "properties": {
    "approvalStatus": {
      "description": "Deployment approval status to set.",
      "enum": [
        "APPROVED"
      ],
      "type": "string"
    }
  },
  "required": [
    "approvalStatus"
  ],
  "type": "object"
}
```

Approve a deployment.

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| approvalStatus | string | true |  | Deployment approval status to set. |

### Enumerated Values

| Property | Value |
| --- | --- |
| approvalStatus | APPROVED |

## DeploymentChangeImportanceChange

```
{
  "description": "Change deployment importance.",
  "properties": {
    "importance": {
      "description": "Deployment Importance to set.",
      "enum": [
        "CRITICAL",
        "HIGH",
        "MODERATE",
        "LOW"
      ],
      "type": "string"
    }
  },
  "required": [
    "importance"
  ],
  "type": "object"
}
```

Change deployment importance.

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| importance | string | true |  | Deployment Importance to set. |

### Enumerated Values

| Property | Value |
| --- | --- |
| importance | [CRITICAL, HIGH, MODERATE, LOW] |

## DeploymentChangeStatusChange

```
{
  "description": "Change deployment status.",
  "properties": {
    "status": {
      "description": "Deployment status to set.",
      "enum": [
        "active",
        "inactive"
      ],
      "type": "string"
    }
  },
  "required": [
    "status"
  ],
  "type": "object"
}
```

Change deployment status.

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| status | string | true |  | Deployment status to set. |

### Enumerated Values

| Property | Value |
| --- | --- |
| status | [active, inactive] |

## DeploymentCleanupStatsChange

```
{
  "description": "Cleanup deployment stats.",
  "properties": {
    "dataType": {
      "description": "Type of stats to cleanup.",
      "enum": [
        "monitoring"
      ],
      "type": "string"
    },
    "end": {
      "description": "If specified, the stats will be cleaned up to this timestamp. If ``null`` all stats till the deployment end forecast date will be cleaned up. Defaults to ``null``.",
      "format": "date-time",
      "type": [
        "string",
        "null"
      ]
    },
    "modelId": {
      "default": null,
      "description": "ID of the model to remove deployment stats for. If ``null``, the stats will be cleaned up for all models in the mathcing period. Defaults to ``null``.",
      "type": [
        "string",
        "null"
      ]
    },
    "start": {
      "description": "If specified, the stats will be cleaned up from this timestamp. If ``null`` all stats from the deployment start forecast date will be cleaned up. Defaults to ``null``.",
      "format": "date-time",
      "type": [
        "string",
        "null"
      ]
    }
  },
  "required": [
    "dataType",
    "end",
    "modelId",
    "start"
  ],
  "type": "object"
}
```

Cleanup deployment stats.

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| dataType | string | true |  | Type of stats to cleanup. |
| end | string,null(date-time) | true |  | If specified, the stats will be cleaned up to this timestamp. If null all stats till the deployment end forecast date will be cleaned up. Defaults to null. |
| modelId | string,null | true |  | ID of the model to remove deployment stats for. If null, the stats will be cleaned up for all models in the mathcing period. Defaults to null. |
| start | string,null(date-time) | true |  | If specified, the stats will be cleaned up from this timestamp. If null all stats from the deployment start forecast date will be cleaned up. Defaults to null. |

### Enumerated Values

| Property | Value |
| --- | --- |
| dataType | monitoring |

## DeploymentDeleteChange

```
{
  "description": "Delete a deployment.",
  "properties": {
    "defaultDeploymentId": {
      "description": "Used by management agent to recalculate endpoint traffic. Traffic from the deploymentbeing deleted flipped to a default deployment.",
      "type": "string"
    },
    "ignoreManagementAgent": {
      "default": "false",
      "description": "Do not wait for management agent to delete the deployment first.",
      "enum": [
        "false",
        "False",
        "true",
        "True"
      ],
      "type": "string"
    }
  },
  "type": "object"
}
```

Delete a deployment.

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| defaultDeploymentId | string | false |  | Used by management agent to recalculate endpoint traffic. Traffic from the deploymentbeing deleted flipped to a default deployment. |
| ignoreManagementAgent | string | false |  | Do not wait for management agent to delete the deployment first. |

### Enumerated Values

| Property | Value |
| --- | --- |
| ignoreManagementAgent | [false, False, true, True] |

## DeploymentReplaceModelChange

```
{
  "description": "Replace model in deployment.",
  "properties": {
    "modelId": {
      "description": "ID of the Model to deploy.",
      "type": "string"
    },
    "replacementReason": {
      "default": "other",
      "description": "Reason for replacement.",
      "enum": [
        "accuracy",
        "data_drift",
        "errors",
        "scheduled_refresh",
        "scoring_speed",
        "deprecation",
        "other"
      ],
      "type": "string"
    }
  },
  "required": [
    "modelId",
    "replacementReason"
  ],
  "type": "object"
}
```

Replace model in deployment.

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| modelId | string | true |  | ID of the Model to deploy. |
| replacementReason | string | true |  | Reason for replacement. |

### Enumerated Values

| Property | Value |
| --- | --- |
| replacementReason | [accuracy, data_drift, errors, scheduled_refresh, scoring_speed, deprecation, other] |

## DeploymentReplaceModelPackageChange

```
{
  "description": "Replace model package in deployment.",
  "properties": {
    "modelPackageId": {
      "description": "ID of the Model Package to deploy.",
      "type": "string"
    },
    "replacementReason": {
      "default": "other",
      "description": "Reason for replacement.",
      "enum": [
        "accuracy",
        "data_drift",
        "errors",
        "scheduled_refresh",
        "scoring_speed",
        "deprecation",
        "other"
      ],
      "type": "string"
    }
  },
  "required": [
    "modelPackageId",
    "replacementReason"
  ],
  "type": "object"
}
```

Replace model package in deployment.

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| modelPackageId | string | true |  | ID of the Model Package to deploy. |
| replacementReason | string | true |  | Reason for replacement. |

### Enumerated Values

| Property | Value |
| --- | --- |
| replacementReason | [accuracy, data_drift, errors, scheduled_refresh, scoring_speed, deprecation, other] |

## DeploymentUpdateSecondaryDatasetConfigChange

```
{
  "description": "Update secondary dataset config for deployment.",
  "properties": {
    "secondaryDatasetsConfigId": {
      "description": "ID of the secondary dataset configs.",
      "type": "string"
    }
  },
  "required": [
    "secondaryDatasetsConfigId"
  ],
  "type": "object"
}
```

Update secondary dataset config for deployment.

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| secondaryDatasetsConfigId | string | true |  | ID of the secondary dataset configs. |

## PolicyUserGroup

```
{
  "properties": {
    "id": {
      "description": "ID of the user group.",
      "type": "string"
    },
    "name": {
      "description": "Name of the user group.",
      "maxLength": 50,
      "type": [
        "string",
        "null"
      ]
    }
  },
  "required": [
    "id"
  ],
  "type": "object"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| id | string | true |  | ID of the user group. |
| name | string,null | false | maxLength: 50 | Name of the user group. |

## RecommendedSetting

```
{
  "properties": {
    "hint": {
      "description": "An optional hint for the setting.",
      "maxLength": 255,
      "type": [
        "string",
        "null"
      ]
    },
    "label": {
      "description": "The label of the setting.",
      "maxLength": 80,
      "type": "string"
    },
    "setting": {
      "description": "The internal name of the setting.",
      "maxLength": 30,
      "type": "string"
    }
  },
  "required": [
    "label",
    "setting"
  ],
  "type": "object",
  "x-versionadded": "v2.38"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| hint | string,null | false | maxLength: 255 | An optional hint for the setting. |
| label | string | true | maxLength: 80 | The label of the setting. |
| setting | string | true | maxLength: 30 | The internal name of the setting. |

## RecommendedSettingChoice

```
{
  "properties": {
    "label": {
      "description": "The label of the setting.",
      "maxLength": 80,
      "type": "string"
    },
    "setting": {
      "description": "The internal name of the setting.",
      "maxLength": 30,
      "type": "string"
    }
  },
  "required": [
    "label",
    "setting"
  ],
  "type": "object",
  "x-versionadded": "v2.38"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| label | string | true | maxLength: 80 | The label of the setting. |
| setting | string | true | maxLength: 30 | The internal name of the setting. |

## RecommendedSettingItem

```
{
  "properties": {
    "hint": {
      "description": "An optional hint for the setting.",
      "maxLength": 255,
      "type": [
        "string",
        "null"
      ]
    },
    "setting": {
      "description": "The internal name of the setting.",
      "maxLength": 30,
      "type": "string"
    }
  },
  "required": [
    "setting"
  ],
  "type": "object",
  "x-versionadded": "v2.38"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| hint | string,null | false | maxLength: 255 | An optional hint for the setting. |
| setting | string | true | maxLength: 30 | The internal name of the setting. |

## RecommendedSettingsChoices

```
{
  "properties": {
    "data": {
      "description": "The list of recommended settings.",
      "items": {
        "properties": {
          "label": {
            "description": "The label of the setting.",
            "maxLength": 80,
            "type": "string"
          },
          "setting": {
            "description": "The internal name of the setting.",
            "maxLength": 30,
            "type": "string"
          }
        },
        "required": [
          "label",
          "setting"
        ],
        "type": "object",
        "x-versionadded": "v2.38"
      },
      "maxItems": 20,
      "type": "array"
    }
  },
  "required": [
    "data"
  ],
  "type": "object",
  "x-versionadded": "v2.38"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| data | [RecommendedSettingChoice] | true | maxItems: 20 | The list of recommended settings. |

## RecommendedSettingsResponse

```
{
  "properties": {
    "data": {
      "description": "The list of recommended settings.",
      "items": {
        "properties": {
          "hint": {
            "description": "An optional hint for the setting.",
            "maxLength": 255,
            "type": [
              "string",
              "null"
            ]
          },
          "label": {
            "description": "The label of the setting.",
            "maxLength": 80,
            "type": "string"
          },
          "setting": {
            "description": "The internal name of the setting.",
            "maxLength": 30,
            "type": "string"
          }
        },
        "required": [
          "label",
          "setting"
        ],
        "type": "object",
        "x-versionadded": "v2.38"
      },
      "maxItems": 20,
      "type": "array"
    }
  },
  "required": [
    "data"
  ],
  "type": "object",
  "x-versionadded": "v2.38"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| data | [RecommendedSetting] | true | maxItems: 20 | The list of recommended settings. |

## RecommendedSettingsUpdate

```
{
  "properties": {
    "data": {
      "description": "The list of recommended settings to update.",
      "items": {
        "properties": {
          "hint": {
            "description": "An optional hint for the setting.",
            "maxLength": 255,
            "type": [
              "string",
              "null"
            ]
          },
          "setting": {
            "description": "The internal name of the setting.",
            "maxLength": 30,
            "type": "string"
          }
        },
        "required": [
          "setting"
        ],
        "type": "object",
        "x-versionadded": "v2.38"
      },
      "maxItems": 20,
      "type": "array"
    }
  },
  "required": [
    "data"
  ],
  "type": "object",
  "x-versionadded": "v2.38"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| data | [RecommendedSettingItem] | true | maxItems: 20 | The list of recommended settings to update. |

## ReviewCreate

```
{
  "properties": {
    "changeVersionId": {
      "description": "ID of the change version.",
      "type": "string"
    },
    "comment": {
      "description": "Free form text to comment on the review.",
      "maxLength": 10000,
      "type": "string"
    },
    "status": {
      "description": "Status of the review.",
      "enum": [
        "approved",
        "Approved",
        "APPROVED",
        "changesRequested",
        "ChangesRequested",
        "CHANGES_REQUESTED",
        "commented",
        "Commented",
        "COMMENTED"
      ],
      "type": "string"
    }
  },
  "required": [
    "changeVersionId",
    "status"
  ],
  "type": "object"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| changeVersionId | string | true |  | ID of the change version. |
| comment | string | false | maxLength: 10000 | Free form text to comment on the review. |
| status | string | true |  | Status of the review. |

### Enumerated Values

| Property | Value |
| --- | --- |
| status | [approved, Approved, APPROVED, changesRequested, ChangesRequested, CHANGES_REQUESTED, commented, Commented, COMMENTED] |

## ReviewResponse

```
{
  "properties": {
    "changeRequestId": {
      "description": "ID of the Change Request.",
      "type": "string"
    },
    "changeVersionId": {
      "description": "ID of the change version.",
      "type": "string"
    },
    "comment": {
      "description": "Free form text to comment on the review.",
      "maxLength": 10000,
      "type": "string"
    },
    "createdAt": {
      "description": "Timestamp when the review was created.",
      "format": "date-time",
      "type": "string"
    },
    "id": {
      "description": "ID of the review.",
      "type": "string"
    },
    "status": {
      "description": "Status of the review.",
      "enum": [
        "approved",
        "Approved",
        "APPROVED",
        "changesRequested",
        "ChangesRequested",
        "CHANGES_REQUESTED",
        "commented",
        "Commented",
        "COMMENTED"
      ],
      "type": "string"
    },
    "userId": {
      "description": "ID of the user, who created the review.",
      "type": "string"
    },
    "userName": {
      "description": "Email of the user, who created the review",
      "type": [
        "string",
        "null"
      ]
    }
  },
  "required": [
    "changeRequestId",
    "changeVersionId",
    "createdAt",
    "id",
    "status",
    "userId",
    "userName"
  ],
  "type": "object"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| changeRequestId | string | true |  | ID of the Change Request. |
| changeVersionId | string | true |  | ID of the change version. |
| comment | string | false | maxLength: 10000 | Free form text to comment on the review. |
| createdAt | string(date-time) | true |  | Timestamp when the review was created. |
| id | string | true |  | ID of the review. |
| status | string | true |  | Status of the review. |
| userId | string | true |  | ID of the user, who created the review. |
| userName | string,null | true |  | Email of the user, who created the review |

### Enumerated Values

| Property | Value |
| --- | --- |
| status | [approved, Approved, APPROVED, changesRequested, ChangesRequested, CHANGES_REQUESTED, commented, Commented, COMMENTED] |

## ReviewsListResponse

```
{
  "properties": {
    "count": {
      "description": "The number of items returned on this page.",
      "type": "integer"
    },
    "data": {
      "description": "List of change request reviews.",
      "items": {
        "properties": {
          "changeRequestId": {
            "description": "ID of the Change Request.",
            "type": "string"
          },
          "changeVersionId": {
            "description": "ID of the change version.",
            "type": "string"
          },
          "comment": {
            "description": "Free form text to comment on the review.",
            "maxLength": 10000,
            "type": "string"
          },
          "createdAt": {
            "description": "Timestamp when the review was created.",
            "format": "date-time",
            "type": "string"
          },
          "id": {
            "description": "ID of the review.",
            "type": "string"
          },
          "status": {
            "description": "Status of the review.",
            "enum": [
              "approved",
              "Approved",
              "APPROVED",
              "changesRequested",
              "ChangesRequested",
              "CHANGES_REQUESTED",
              "commented",
              "Commented",
              "COMMENTED"
            ],
            "type": "string"
          },
          "userId": {
            "description": "ID of the user, who created the review.",
            "type": "string"
          },
          "userName": {
            "description": "Email of the user, who created the review",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "changeRequestId",
          "changeVersionId",
          "createdAt",
          "id",
          "status",
          "userId",
          "userName"
        ],
        "type": "object"
      },
      "maxItems": 1000,
      "type": "array"
    },
    "next": {
      "description": "The URL of the next page (if null, there is no next page).",
      "format": "uri",
      "type": [
        "string",
        "null"
      ]
    },
    "previous": {
      "description": "The URL of the previous page (if null, there is no previous page).",
      "format": "uri",
      "type": [
        "string",
        "null"
      ]
    },
    "totalCount": {
      "description": "The total number of items across all pages.",
      "type": "integer"
    }
  },
  "required": [
    "data",
    "next",
    "previous",
    "totalCount"
  ],
  "type": "object"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| count | integer | false |  | The number of items returned on this page. |
| data | [ReviewResponse] | true | maxItems: 1000 | List of change request reviews. |
| next | string,null(uri) | true |  | The URL of the next page (if null, there is no next page). |
| previous | string,null(uri) | true |  | The URL of the previous page (if null, there is no previous page). |
| totalCount | integer | true |  | The total number of items across all pages. |

## SuggestedReviewersResponse

```
{
  "properties": {
    "count": {
      "description": "The number of items returned on this page.",
      "type": "integer"
    },
    "data": {
      "description": "List of suggested change request reviewers.",
      "items": {
        "properties": {
          "firstName": {
            "description": "First Name.",
            "type": "string"
          },
          "lastName": {
            "description": "Last Name.",
            "type": "string"
          },
          "userId": {
            "description": "ID of the User.",
            "type": "string"
          },
          "username": {
            "description": "Username.",
            "type": "string"
          }
        },
        "required": [
          "firstName",
          "lastName",
          "userId",
          "username"
        ],
        "type": "object"
      },
      "maxItems": 1000,
      "type": "array"
    },
    "next": {
      "description": "The URL of the next page (if null, there is no next page).",
      "format": "uri",
      "type": [
        "string",
        "null"
      ]
    },
    "previous": {
      "description": "The URL of the previous page (if null, there is no previous page).",
      "format": "uri",
      "type": [
        "string",
        "null"
      ]
    },
    "totalCount": {
      "description": "The total number of items across all pages.",
      "type": "integer"
    }
  },
  "required": [
    "data",
    "next",
    "previous",
    "totalCount"
  ],
  "type": "object"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| count | integer | false |  | The number of items returned on this page. |
| data | [UserInfo] | true | maxItems: 1000 | List of suggested change request reviewers. |
| next | string,null(uri) | true |  | The URL of the next page (if null, there is no next page). |
| previous | string,null(uri) | true |  | The URL of the previous page (if null, there is no previous page). |
| totalCount | integer | true |  | The total number of items across all pages. |

## UserInfo

```
{
  "properties": {
    "firstName": {
      "description": "First Name.",
      "type": "string"
    },
    "lastName": {
      "description": "Last Name.",
      "type": "string"
    },
    "userId": {
      "description": "ID of the User.",
      "type": "string"
    },
    "username": {
      "description": "Username.",
      "type": "string"
    }
  },
  "required": [
    "firstName",
    "lastName",
    "userId",
    "username"
  ],
  "type": "object"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| firstName | string | true |  | First Name. |
| lastName | string | true |  | Last Name. |
| userId | string | true |  | ID of the User. |
| username | string | true |  | Username. |

## UserOperations

```
{
  "description": "A set operations the user can or can not make with the Change Request.",
  "properties": {
    "canCancel": {
      "description": "Whether the user can cancel the Change Request.",
      "type": "boolean"
    },
    "canComment": {
      "description": "Whether the user can create commenting review on the Change Request.",
      "type": "boolean"
    },
    "canResolve": {
      "description": "Whether the user can resolve the Change Request.",
      "type": "boolean"
    },
    "canReview": {
      "description": "Whether the user can review (approve or request updates) the Change Request.",
      "type": "boolean"
    },
    "canUpdate": {
      "description": "Whether the user can update the Change Request.",
      "type": "boolean"
    }
  },
  "required": [
    "canCancel",
    "canComment",
    "canResolve",
    "canReview",
    "canUpdate"
  ],
  "type": "object"
}
```

A set operations the user can or can not make with the Change Request.

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| canCancel | boolean | true |  | Whether the user can cancel the Change Request. |
| canComment | boolean | true |  | Whether the user can create commenting review on the Change Request. |
| canResolve | boolean | true |  | Whether the user can resolve the Change Request. |
| canReview | boolean | true |  | Whether the user can review (approve or request updates) the Change Request. |
| canUpdate | boolean | true |  | Whether the user can update the Change Request. |

---
