REST API

The app provides a set of REST Endpoints to perform operations such as add new customfield option value or set default value for the supported field types.

Rest API Explorer

With app version 1.2 we introduced the REST API Explorer which will help you to send REST requests to the API directly in the browser. This Screencast will show you how to use REST API Explorer:

Intoduction to REST API Explorer

Rest API Endpoint Documentation

This is the static documentation for the Customfield Editor for Jira's REST-API.

The baseUrl of the REST API might be one of the following URLs on your instance of Jira:

  • http[s]://server:port/jira/rest/jiracustomfieldeditorplugin/1/*
  • http[s]://server:port/rest/jiracustomfieldeditorplugin/1/*

You need to use Basic Authentication for every request to the API.

admin-custom-field-operations

List all available customfields.
Not all of them will be editable with the Customfield Editor for Jira. See User Guide for supported FieldTypes.
You need to be administrator or system administrator to use this endpoint.


Version History
  • New in 1.2
  • Changed in 1.3.0
    Internal change so that normal admins can use endpoint too. Before only system administrators could use it.

consumes application/json produces application/json
Request Parameters
ParameterDescriptionData Type
Response Messages
StatusDescriptionSchema / JSON Example
200successful operation
array of object
PropertyTypeDescription
fieldIdintegerThe customField Id.
fieldNamestringThe customField name.
fieldTypestringThe customField Type.
fieldDescriptionstringThe customField Description.
[
    {
        "fieldId": 0,
        "fieldName": "foo",
        "fieldType": "foo",
        "fieldDescription": "foo"
    }
]
401Unauthorized (no user is authenticated).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
403Permission Denied (insufficient rights on field, or field does not exist).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
500RestError shows you generic errors that are more severe than ValidationErrors.
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}

You can get permissions of the specified customfield. Will return usernames and groupnames that have permission.
You need to be administrator or system administrator to use this endpoint.


Version History
  • New in 1.2
  • Changed in 1.3.0
    Internal change so that normal admins can use endpoint too. Before only system administrators could use it.

consumes application/json produces application/json
Request Parameters
ParameterDescriptionData Type
customFieldIdtype: path required: true

integer default: 12345
Response Messages
StatusDescriptionSchema / JSON Example
200successful operation
object
PropertyTypeDescription
userlistarrayUsernames who have permission (GET). Or are destined to have permission (PUT).
array of string
grouplistarrayGroupnames who have permission (GET). Or are destined to have permission (PUT).
array of string
{
    "userlist": [
        "foo",
        "bar"
    ],
    "grouplist": [
        "foo",
        "bar"
    ]
}
401Unauthorized (no user is authenticated).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
403Permission Denied (insufficient rights on field, or field does not exist).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
412The custom field type is not on allowed types list. (customfield cannot be edited)
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
500RestError shows you generic errors that are more severe than ValidationErrors.
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}

You can submit usernames or groupnames to give permissions on the specified customfield.
Notice: Always provide the full list of usernames and groupnames! You cannot just add a username, what you submit will overwrite the previous values of usernames and groupnames fields.
You need to be administrator or system administrator to use this endpoint.


Version History
  • New in 1.2
  • Changed in 1.3.0
    Internal change so that normal admins can use endpoint too. Before only system administrators could use it.

consumes application/json produces application/json
Request Parameters
ParameterDescriptionData Type
bodytype: body required: false

CustomFieldPermissionModel is used to save and get permissions on customfield.Userlist and grouplist contain usernames and groupnames.
object
PropertyTypeDescription
userlistarrayUsernames who have permission (GET). Or are destined to have permission (PUT).
array of string
grouplistarrayGroupnames who have permission (GET). Or are destined to have permission (PUT).
array of string
{
    "userlist": [
        "foo",
        "bar"
    ],
    "grouplist": [
        "foo",
        "bar"
    ]
}
customFieldIdtype: path required: true

integer default: 12345
Response Messages
StatusDescriptionSchema / JSON Example
200No content returned.
401Unauthorized (no user is authenticated).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
403Permission Denied (insufficient rights on field, or field does not exist).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
412The custom field type is not on allowed types list. (customfield cannot be edited)
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
500RestError shows you generic errors that are more severe than ValidationErrors.
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}

You can get all contexts of a customfield.

You can set the optional Query-Parameter ?expand=projects to get information on associated projects.
You could also set ?expand=issueTypes to get information on associated issue types.
Or set ?expand=projects,issueTypes to get information on both associated projects and issue types.
Note that the containers will only show up when the corresponding expand parameter is set.
See examples of all expand variants in issue CEP-31.
When the expand parameter is not set the response will look like this:

[
  {
    "contextId": 123,
    "contextName": "foo",
    "contextDescription": "bar"
  }
]


You need to be administrator or system administrator to use this endpoint.


Version History
  • Changed in 1.5.0
    Added the expand Query-Parameter for projects and issueTypes.
  • Changed in 1.3.0
    Internal change so that normal admins can use endpoint too. Before only system administrators could use it.
  • New in 1.2.1

consumes application/json produces application/json
Request Parameters
ParameterDescriptionData Type
customFieldIdtype: path required: true

integer default: 12345
expandtype: query required: false

You can specify one or more keys as comma separated list
string default:
Response Messages
StatusDescriptionSchema / JSON Example
200successful operation
array of object
PropertyTypeDescription
contextIdintegerThe customField's context Id.
contextNamestringThe customField's context name.
contextDescriptionstringThe customField's context description.
projectsarrayJira projects associated to this specific context of the customField. Only visible when ?expand=projects is set as URL Parameter.
array of object
PropertyTypeDescription
issueTypeIdstringThe issue types's literal Id.
issueTypeNamestringThe issue types's name.
issueTypeDescriptionstringThe issue types's description.
issueTypeIsSubTaskbooleanIs the issue types a subtask (true).
issueTypesarrayJira Issue Types associated to this specific context of the customField. Only visible when ?expand=issueTypes is set as URL Parameter.
array of object
PropertyTypeDescription
issueTypeIdstringThe issue types's literal Id.
issueTypeNamestringThe issue types's name.
issueTypeDescriptionstringThe issue types's description.
issueTypeIsSubTaskbooleanIs the issue types a subtask (true).
[
    {
        "contextId": 0,
        "contextName": "foo",
        "contextDescription": "foo",
        "projects": [
            {
                "issueTypeId": "foo",
                "issueTypeName": "foo",
                "issueTypeDescription": "foo",
                "issueTypeIsSubTask": false
            }
        ],
        "issueTypes": [
            {
                "issueTypeId": "foo",
                "issueTypeName": "foo",
                "issueTypeDescription": "foo",
                "issueTypeIsSubTask": false
            }
        ]
    }
]
401Unauthorized (no user is authenticated).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
403Permission Denied (insufficient rights on field, or field does not exist).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
412The custom field type is not on allowed types list. (customfield cannot be edited)
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
500RestError shows you generic errors that are more severe than ValidationErrors.
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}

You can get permissions of the specified customfield for each context. Will return usernames and groupnames that have permission for every context.
Notice: If a user has global permissions on a field all context specific permissions will be overruled.
You need to be administrator or system administrator to use this endpoint.


Version History
  • New in 1.2.1
  • Changed in 1.3.0
    Internal change so that normal admins can use endpoint too. Before only system administrators could use it.

consumes application/json produces application/json
Request Parameters
ParameterDescriptionData Type
customFieldIdtype: path required: true

integer default: 12345
Response Messages
StatusDescriptionSchema / JSON Example
200successful operation
array of object
PropertyTypeDescription
contextIdintegerThe customField's context Id.
userlistarrayUsernames who have permission (GET). Or are destined to have permission (PUT).
array of string
grouplistarrayGroupnames who have permission (GET). Or are destined to have permission (PUT).
array of string
[
    {
        "contextId": 0,
        "userlist": [
            "foo",
            "bar"
        ],
        "grouplist": [
            "foo",
            "bar"
        ]
    }
]
401Unauthorized (no user is authenticated).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
403Permission Denied (insufficient rights on field, or field does not exist).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
412The custom field type is not on allowed types list. (customfield cannot be edited)
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
500RestError shows you generic errors that are more severe than ValidationErrors.
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}

You can submit usernames or groupnames to give permissions on the specified customfield contexts.
Notice: If a user has global permissions on a field all context specific permissions will be overruled.
Notice: Always provide the full list since it will get overwritten!
You need to be administrator or system administrator to use this endpoint.


Version History
  • New in 1.2.1
  • Changed in 1.3.0
    Internal change so that normal admins can use endpoint too. Before only system administrators could use it.

consumes application/json produces application/json
Request Parameters
ParameterDescriptionData Type
bodytype: body required: false

CustomFieldContextPermissionModel is used to save and get permissions on customfield contexts.Userlist and grouplist contain usernames and groupnames.
array of object
PropertyTypeDescription
contextIdintegerThe customField's context Id.
userlistarrayUsernames who have permission (GET). Or are destined to have permission (PUT).
array of string
grouplistarrayGroupnames who have permission (GET). Or are destined to have permission (PUT).
array of string
[
    {
        "contextId": 0,
        "userlist": [
            "foo",
            "bar"
        ],
        "grouplist": [
            "foo",
            "bar"
        ]
    }
]
customFieldIdtype: path required: true

integer default: 12345
Response Messages
StatusDescriptionSchema / JSON Example
200No content returned.
401Unauthorized (no user is authenticated).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
403Permission Denied (insufficient rights on field, or field does not exist).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
412The custom field type is not on allowed types list. (customfield cannot be edited)
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
500RestError shows you generic errors that are more severe than ValidationErrors.
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}

user-custom-field-operations

List all customfields accessable by the authenticated user. (Administrator needs to give the user permission first. Even jira-administrators need to be given permission)


Version History
  • New in 1.2

consumes application/json produces application/json
Request Parameters
ParameterDescriptionData Type
Response Messages
StatusDescriptionSchema / JSON Example
200successful operation
array of object
PropertyTypeDescription
fieldIdintegerThe customField Id.
fieldNamestringThe customField name.
fieldTypestringThe customField Type.
fieldDescriptionstringThe customField Description.
[
    {
        "fieldId": 0,
        "fieldName": "foo",
        "fieldType": "foo",
        "fieldDescription": "foo"
    }
]
401Unauthorized (no user is authenticated).
403Permission Denied (insufficient rights on field, or field does not exist).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
412not available under the requested URL (min version).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
500Entity does not exist. Or any other error.
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}

List all contexts and other information for customfield.


You can set the optional Query-Parameter ?expand=projects to get information on associated projects.
You could also set ?expand=issueTypes to get information on associated issue types.
Or set ?expand=projects,issueTypes to get information on both associated projects and issue types.
Note that the containers will only show up when the corresponding expand parameter is set.
See examples of all expand variants in issue CEP-31.
When the expand parameter is not set the response will look like this:

[
  {
    "contextId": 123,
    "contextName": "foo",
    "contextDescription": "bar"
  }
]


Version History
  • Changed in 1.5.0
    Added the expand Query-Parameter for projects and issueTypes.
  • Changed in 1.2.1
    The contexts returned are filtered by context permissions now. If there are no context permissions set, you will still see all contexts.
  • New in 1.2

consumes application/json produces application/json
Request Parameters
ParameterDescriptionData Type
customFieldIdtype: path required: true

integer default: 12345
expandtype: query required: false

You can specify one or more keys as comma separated list
string default:
Response Messages
StatusDescriptionSchema / JSON Example
200successful operation
array of object
PropertyTypeDescription
contextIdintegerThe customField's context Id.
contextNamestringThe customField's context name.
contextDescriptionstringThe customField's context description.
projectsarrayJira projects associated to this specific context of the customField. Only visible when ?expand=projects is set as URL Parameter.
array of object
PropertyTypeDescription
issueTypeIdstringThe issue types's literal Id.
issueTypeNamestringThe issue types's name.
issueTypeDescriptionstringThe issue types's description.
issueTypeIsSubTaskbooleanIs the issue types a subtask (true).
issueTypesarrayJira Issue Types associated to this specific context of the customField. Only visible when ?expand=issueTypes is set as URL Parameter.
array of object
PropertyTypeDescription
issueTypeIdstringThe issue types's literal Id.
issueTypeNamestringThe issue types's name.
issueTypeDescriptionstringThe issue types's description.
issueTypeIsSubTaskbooleanIs the issue types a subtask (true).
[
    {
        "contextId": 0,
        "contextName": "foo",
        "contextDescription": "foo",
        "projects": [
            {
                "issueTypeId": "foo",
                "issueTypeName": "foo",
                "issueTypeDescription": "foo",
                "issueTypeIsSubTask": false
            }
        ],
        "issueTypes": [
            {
                "issueTypeId": "foo",
                "issueTypeName": "foo",
                "issueTypeDescription": "foo",
                "issueTypeIsSubTask": false
            }
        ]
    }
]
401Unauthorized (no user is authenticated).
403Permission Denied (insufficient rights on field, or field does not exist).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
412not available under the requested URL (min version).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
500Entity does not exist. Or any other error.
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}

list all options of a customfield for default context.


Version History
  • New in 1.1
  • Changed in 1.2
    URL changed from /customfieldoptions/{customFieldId}.
    childOptions is no longer returned. Use special childOptions Endpoint to retrieve childOptions for cascadingSelect FieldType.

consumes application/json produces application/json
Request Parameters
ParameterDescriptionData Type
customFieldIdtype: path required: true

customFieldId of the customField
integer default: 12345
Response Messages
StatusDescriptionSchema / JSON Example
200successful operation
array of object
PropertyTypeDescription
optionvaluestringThe actual optionValue which is displayed to the user who uses the customField.
idintegerThe unique optionId.
sequenceintegerThe OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabledbooleanThe OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
[
    {
        "optionvalue": "foo",
        "id": 0,
        "sequence": 0,
        "disabled": false
    }
]
401Unauthorized (no user is authenticated).
403Permission Denied (insufficient rights on field, or field does not exist).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
412not available under the requested URL (min version).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
500Entity does not exist. Or any other error.
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}

Creates a new option for the customfield in default context .

When creating a new option try using the following and do not set sequence and id!

{ "optionvalue": "my option value" }


Version History
  • New in 1.1
  • Changed in 1.2
    URL changed from /customfieldoption/{customFieldId}
    Request and Response Parameters/Schema mostly unchanged.
    childOptions removed.
    sequence is ignored; new options are always placed at the end of the list.

consumes application/json produces application/json
Request Parameters
ParameterDescriptionData Type
customFieldIdtype: path required: true

integer default: 12345
bodytype: body required: false

CustomFieldOptionModel represents all properties of an option.The id, value, order (sequence) and disabled/enabled state.
object
PropertyTypeDescription
optionvaluestringThe actual optionValue which is displayed to the user who uses the customField.
idintegerThe unique optionId.
sequenceintegerThe OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabledbooleanThe OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
{
    "optionvalue": "foo",
    "id": 0,
    "sequence": 0,
    "disabled": false
}
Response Messages
StatusDescriptionSchema / JSON Example
200successful operation
object
PropertyTypeDescription
optionvaluestringThe actual optionValue which is displayed to the user who uses the customField.
idintegerThe unique optionId.
sequenceintegerThe OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabledbooleanThe OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
{
    "optionvalue": "foo",
    "id": 0,
    "sequence": 0,
    "disabled": false
}
400Validation Error for field.
object
PropertyTypeDescription
messagestringA human readable error message.
statusCodeintegerAn integer HTTP status code.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
errorsarrayIf there are errors that are specific to a certain property of a submitted model it will be listed here.
array of object
PropertyTypeDescription
namestringThe name of the field or property which has a validation error.
messagestringHuman readable error message.
exceptionNamestringThe Exception name (optional).
{
    "message": "foo",
    "statusCode": 0,
    "subCode": 0,
    "errors": [
        {
            "name": "foo",
            "message": "foo",
            "exceptionName": "foo"
        }
    ]
}
401Unauthorized (no user is authenticated).
403Permission Denied (insufficient rights on field, or field does not exist).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
412not available under the requested URL (min version).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
500Entity does not exist. Or any other error.
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}

Updates the value of an existing option for the customfield for default context.

When updating an existing option try using the following and do not set sequence!

{ "id": 1, "optionvalue": "my option value" }


Version History

    Version History
    • New in 1.1
    • Changed in 1.2
      URL changed from /customfieldoption/{customFieldId}/{optionId}
      Request and Response Parameters/Schema mostly unchanged.

    • childOptions removed.

consumes application/json produces application/json
Request Parameters
ParameterDescriptionData Type
customFieldIdtype: path required: true

integer default: 12345
optionIdtype: path required: true

integer default: 123
bodytype: body required: false

CustomFieldOptionModel represents all properties of an option.The id, value, order (sequence) and disabled/enabled state.
object
PropertyTypeDescription
optionvaluestringThe actual optionValue which is displayed to the user who uses the customField.
idintegerThe unique optionId.
sequenceintegerThe OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabledbooleanThe OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
{
    "optionvalue": "foo",
    "id": 0,
    "sequence": 0,
    "disabled": false
}
Response Messages
StatusDescriptionSchema / JSON Example
200successful operation
object
PropertyTypeDescription
optionvaluestringThe actual optionValue which is displayed to the user who uses the customField.
idintegerThe unique optionId.
sequenceintegerThe OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabledbooleanThe OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
{
    "optionvalue": "foo",
    "id": 0,
    "sequence": 0,
    "disabled": false
}
400Validation Error for field.
object
PropertyTypeDescription
messagestringA human readable error message.
statusCodeintegerAn integer HTTP status code.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
errorsarrayIf there are errors that are specific to a certain property of a submitted model it will be listed here.
array of object
PropertyTypeDescription
namestringThe name of the field or property which has a validation error.
messagestringHuman readable error message.
exceptionNamestringThe Exception name (optional).
{
    "message": "foo",
    "statusCode": 0,
    "subCode": 0,
    "errors": [
        {
            "name": "foo",
            "message": "foo",
            "exceptionName": "foo"
        }
    ]
}
401Unauthorized (no user is authenticated).
403Permission Denied (insufficient rights on field, or field does not exist).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
412not available under the requested URL (min version).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
500Entity does not exist. Or any other error.
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}

Deletes an option of the customfield by its id in default context. You only need to specify the id (no payload).


Version History
  • New in 1.1
  • Changed in 1.2
    URL changed from /customfieldoption/{customFieldId}/{optionId}
    Request and Response Parameters/Schema unchanged.

consumes application/json produces application/json
Request Parameters
ParameterDescriptionData Type
customFieldIdtype: path required: true

integer default: 12345
optionIdtype: path required: true

integer default: 123
Response Messages
StatusDescriptionSchema / JSON Example
200successful operation
object
PropertyTypeDescription
idintegerThe ID of the just deleted object.
{
    "id": 0
}
401Unauthorized (no user is authenticated).
403Permission Denied (insufficient rights on field, or field does not exist).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
412not available under the requested URL (min version).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
500Entity does not exist. Or any other error.
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}

Change order for existing option of customfield depending on values of RestfulTableMoveModel in default context.

Example: You have four options with IDs 10, 20, 30 and 40 which exist in exactly this order.
If you now want to place option with ID 20 between 30 and 40, then you need to send:

URL: POST /user/customfields/123/contexts/default/options/20/move
Request-Body: { "after": "30" }

There is only one special case for moving an option to the start of the list.
If you want to move option with ID 40 at the start you need to send:

URL: POST /user/customfields/123/contexts/default/options/40/move
Request-Body: { "position": "First" }


Version History
  • New in 1.1
  • Changed in 1.2
    URL changed from /customfieldoption/{customFieldId}/{optionId}/move
    Request and Response Parameters/Schema unchanged.

consumes application/json produces application/json
Request Parameters
ParameterDescriptionData Type
customFieldIdtype: path required: true

integer default: 12345
optionIdtype: path required: true

integer default: 123
bodytype: body required: true

RestfulTableMoveModel is used for drag-and-drop sorting options using the AUI Restfultable. It is advised to not use it. Use the SORT Endpoint instead or you might break the internal order sequence.
object
PropertyTypeDescription
afterstringAfter must contain the optionId to move the option after. In form of "/foo/bar/{optionid}" which is provided that way by AUI Restfultable.You can provide just the optionId too.
positionstringSpecial Case to move an option to the beginning of the option List. Specify position="First". (Notice: if after and position are defined together, after is ignored)
{
    "after": "foo",
    "position": "foo"
}
Response Messages
StatusDescriptionSchema / JSON Example
200successful operation
object
PropertyTypeDescription
optionvaluestringThe actual optionValue which is displayed to the user who uses the customField.
idintegerThe unique optionId.
sequenceintegerThe OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabledbooleanThe OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
{
    "optionvalue": "foo",
    "id": 0,
    "sequence": 0,
    "disabled": false
}
400Validation Error for field.
object
PropertyTypeDescription
messagestringA human readable error message.
statusCodeintegerAn integer HTTP status code.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
errorsarrayIf there are errors that are specific to a certain property of a submitted model it will be listed here.
array of object
PropertyTypeDescription
namestringThe name of the field or property which has a validation error.
messagestringHuman readable error message.
exceptionNamestringThe Exception name (optional).
{
    "message": "foo",
    "statusCode": 0,
    "subCode": 0,
    "errors": [
        {
            "name": "foo",
            "message": "foo",
            "exceptionName": "foo"
        }
    ]
}
401Unauthorized (no user is authenticated).
403Permission Denied (insufficient rights on field, or field does not exist).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
406operation not supported for fieldType or other unsupported operation.
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
412not available under the requested URL (min version).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
500Entity does not exist. Or any other error.
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}

Get the default value for the customfield in default context.


Version History
  • New in 1.2

consumes application/json produces application/json
Request Parameters
ParameterDescriptionData Type
customFieldIdtype: path required: true

integer default: 12345
Response Messages
StatusDescriptionSchema / JSON Example
200successful operation
object
PropertyTypeDescription
defaultOptionobjectCustomFieldOptionModel represents all properties of an option.The id, value, order (sequence) and disabled/enabled state.
object
PropertyTypeDescription
optionvaluestringThe actual optionValue which is displayed to the user who uses the customField.
idintegerThe unique optionId.
sequenceintegerThe OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabledbooleanThe OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
defaultChildOptionobjectCustomFieldOptionModel represents all properties of an option.The id, value, order (sequence) and disabled/enabled state.
object
PropertyTypeDescription
optionvaluestringThe actual optionValue which is displayed to the user who uses the customField.
idintegerThe unique optionId.
sequenceintegerThe OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabledbooleanThe OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
defaultOptionsarrayThe IDs and names of the options as default values. (null for fieldtypes other than multiselect or multicheckboxes)
array of object
PropertyTypeDescription
optionvaluestringThe actual optionValue which is displayed to the user who uses the customField.
idintegerThe unique optionId.
sequenceintegerThe OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabledbooleanThe OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
{
    "defaultOption": {
        "optionvalue": "foo",
        "id": 0,
        "sequence": 0,
        "disabled": false
    },
    "defaultChildOption": {
        "optionvalue": "foo",
        "id": 0,
        "sequence": 0,
        "disabled": false
    },
    "defaultOptions": [
        {
            "optionvalue": "foo",
            "id": 0,
            "sequence": 0,
            "disabled": false
        }
    ]
}
400Validation Error for field.
object
PropertyTypeDescription
messagestringA human readable error message.
statusCodeintegerAn integer HTTP status code.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
errorsarrayIf there are errors that are specific to a certain property of a submitted model it will be listed here.
array of object
PropertyTypeDescription
namestringThe name of the field or property which has a validation error.
messagestringHuman readable error message.
exceptionNamestringThe Exception name (optional).
{
    "message": "foo",
    "statusCode": 0,
    "subCode": 0,
    "errors": [
        {
            "name": "foo",
            "message": "foo",
            "exceptionName": "foo"
        }
    ]
}
401Unauthorized (no user is authenticated).
403Permission Denied (insufficient rights on field, or field does not exist).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
412not available under the requested URL (min version).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
500Entity does not exist. Or any other error.
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}

Set the default value for the customfield in default context. The default value is composed differently depending on the fieldType.


Version History
  • New in 1.2

consumes application/json produces application/json
Request Parameters
ParameterDescriptionData Type
customFieldIdtype: path required: true

integer default: 12345
bodytype: body required: true

Model used to set the default value of a customfield. The default value differs by fieldType.
  • A singleSelect/radioButtons fields defaultOption consists of an optionId (optionIds=null,childOptionId=null)
  • A cascadingSelect fields defaultOption consists of an optionId and a childOptionId (optionIds=null)
  • A multiSelect/multiCheckboxes fields defaultOptions consists of multiple optionIds (optionId=null,childOptionId=null)
object
PropertyTypeDescription
optionIdintegerThe ID of the option to be set as default value. (null for fieldtype multicheckboxes and multiselect)
childOptionIdintegerThe ID of the childOption to be set as default value. (null for fieldtypes other than cascadingSelect)
optionIdsarrayThe IDs of the options to be set as default values. (null for fieldtypes other than multiselect or multicheckboxes)
array of integer
{
    "optionId": 0,
    "childOptionId": 0,
    "optionIds": [
        1,
        2,
        3
    ]
}
Response Messages
StatusDescriptionSchema / JSON Example
200successful operation
object
PropertyTypeDescription
defaultOptionobjectCustomFieldOptionModel represents all properties of an option.The id, value, order (sequence) and disabled/enabled state.
object
PropertyTypeDescription
optionvaluestringThe actual optionValue which is displayed to the user who uses the customField.
idintegerThe unique optionId.
sequenceintegerThe OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabledbooleanThe OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
defaultChildOptionobjectCustomFieldOptionModel represents all properties of an option.The id, value, order (sequence) and disabled/enabled state.
object
PropertyTypeDescription
optionvaluestringThe actual optionValue which is displayed to the user who uses the customField.
idintegerThe unique optionId.
sequenceintegerThe OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabledbooleanThe OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
defaultOptionsarrayThe IDs and names of the options as default values. (null for fieldtypes other than multiselect or multicheckboxes)
array of object
PropertyTypeDescription
optionvaluestringThe actual optionValue which is displayed to the user who uses the customField.
idintegerThe unique optionId.
sequenceintegerThe OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabledbooleanThe OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
{
    "defaultOption": {
        "optionvalue": "foo",
        "id": 0,
        "sequence": 0,
        "disabled": false
    },
    "defaultChildOption": {
        "optionvalue": "foo",
        "id": 0,
        "sequence": 0,
        "disabled": false
    },
    "defaultOptions": [
        {
            "optionvalue": "foo",
            "id": 0,
            "sequence": 0,
            "disabled": false
        }
    ]
}
400Validation Error for field.
object
PropertyTypeDescription
messagestringA human readable error message.
statusCodeintegerAn integer HTTP status code.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
errorsarrayIf there are errors that are specific to a certain property of a submitted model it will be listed here.
array of object
PropertyTypeDescription
namestringThe name of the field or property which has a validation error.
messagestringHuman readable error message.
exceptionNamestringThe Exception name (optional).
{
    "message": "foo",
    "statusCode": 0,
    "subCode": 0,
    "errors": [
        {
            "name": "foo",
            "message": "foo",
            "exceptionName": "foo"
        }
    ]
}
401Unauthorized (no user is authenticated).
403Permission Denied (insufficient rights on field, or field does not exist).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
412not available under the requested URL (min version).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
500Entity does not exist. Or any other error.
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}

Delete the default value for the customfield in default context.


Version History
  • New in 1.2

consumes application/json produces application/json
Request Parameters
ParameterDescriptionData Type
customFieldIdtype: path required: true

integer default: 12345
Response Messages
StatusDescriptionSchema / JSON Example
400Validation Error for field.
object
PropertyTypeDescription
messagestringA human readable error message.
statusCodeintegerAn integer HTTP status code.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
errorsarrayIf there are errors that are specific to a certain property of a submitted model it will be listed here.
array of object
PropertyTypeDescription
namestringThe name of the field or property which has a validation error.
messagestringHuman readable error message.
exceptionNamestringThe Exception name (optional).
{
    "message": "foo",
    "statusCode": 0,
    "subCode": 0,
    "errors": [
        {
            "name": "foo",
            "message": "foo",
            "exceptionName": "foo"
        }
    ]
}
401Unauthorized (no user is authenticated).
403Permission Denied (insufficient rights on field, or field does not exist).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
412not available under the requested URL (min version).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
500Entity does not exist. Or any other error.
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}

Sorts the options alphabetically for the customfield in default context depending on the specified locale.


Version History
  • New in 1.2

consumes application/json produces application/json
Request Parameters
ParameterDescriptionData Type
customFieldIdtype: path required: true

integer default: 12345
bodytype: body required: true

SortModel specifies in which way to sort the options of a customfield.You can sort ascending or descending. The sorting will be locale dependant, so you need to specify a locale like en-US. You can specify an optional collator strength.
object
PropertyTypeDescription
localestringIETF BCP 47 language tag string in form of [a-zA-Z]+-[a-zA-Z]+
strengthstringCollator Strength in form of [A-Z]+
orderstringThe sort order in form of [A-Z]+
{
    "locale": "foo",
    "strength": "foo",
    "order": "foo"
}
Response Messages
StatusDescriptionSchema / JSON Example
200successful operation
object
PropertyTypeDescription
optionvaluestringThe actual optionValue which is displayed to the user who uses the customField.
idintegerThe unique optionId.
sequenceintegerThe OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabledbooleanThe OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
{
    "optionvalue": "foo",
    "id": 0,
    "sequence": 0,
    "disabled": false
}
400Validation Error for field.
object
PropertyTypeDescription
messagestringA human readable error message.
statusCodeintegerAn integer HTTP status code.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
errorsarrayIf there are errors that are specific to a certain property of a submitted model it will be listed here.
array of object
PropertyTypeDescription
namestringThe name of the field or property which has a validation error.
messagestringHuman readable error message.
exceptionNamestringThe Exception name (optional).
{
    "message": "foo",
    "statusCode": 0,
    "subCode": 0,
    "errors": [
        {
            "name": "foo",
            "message": "foo",
            "exceptionName": "foo"
        }
    ]
}
401Unauthorized (no user is authenticated).
403Permission Denied (insufficient rights on field, or field does not exist).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
412not available under the requested URL (min version).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
500Entity does not exist. Or any other error.
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}

list all options of a customfield for specific context.


Version History
  • New in 1.2

consumes application/json produces application/json
Request Parameters
ParameterDescriptionData Type
customFieldIdtype: path required: true

customFieldId of the customField
integer default: 12345
contextIdtype: path required: true

integer default: 678
Response Messages
StatusDescriptionSchema / JSON Example
200successful operation
array of object
PropertyTypeDescription
optionvaluestringThe actual optionValue which is displayed to the user who uses the customField.
idintegerThe unique optionId.
sequenceintegerThe OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabledbooleanThe OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
[
    {
        "optionvalue": "foo",
        "id": 0,
        "sequence": 0,
        "disabled": false
    }
]
401Unauthorized (no user is authenticated).
403Permission Denied (insufficient rights on field, or field does not exist).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
412not available under the requested URL (min version).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
500Entity does not exist. Or any other error.
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}

Creates a new option for the customfield in specific context.

When creating a new option try using the following and do not set sequence and id!

{ "optionvalue": "my option value" }
  • New in 1.2

consumes application/json produces application/json
Request Parameters
ParameterDescriptionData Type
customFieldIdtype: path required: true

integer default: 12345
contextIdtype: path required: true

integer default: 678
bodytype: body required: false

CustomFieldOptionModel represents all properties of an option.The id, value, order (sequence) and disabled/enabled state.
object
PropertyTypeDescription
optionvaluestringThe actual optionValue which is displayed to the user who uses the customField.
idintegerThe unique optionId.
sequenceintegerThe OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabledbooleanThe OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
{
    "optionvalue": "foo",
    "id": 0,
    "sequence": 0,
    "disabled": false
}
Response Messages
StatusDescriptionSchema / JSON Example
200successful operation
object
PropertyTypeDescription
optionvaluestringThe actual optionValue which is displayed to the user who uses the customField.
idintegerThe unique optionId.
sequenceintegerThe OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabledbooleanThe OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
{
    "optionvalue": "foo",
    "id": 0,
    "sequence": 0,
    "disabled": false
}
400Validation Error for field.
object
PropertyTypeDescription
messagestringA human readable error message.
statusCodeintegerAn integer HTTP status code.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
errorsarrayIf there are errors that are specific to a certain property of a submitted model it will be listed here.
array of object
PropertyTypeDescription
namestringThe name of the field or property which has a validation error.
messagestringHuman readable error message.
exceptionNamestringThe Exception name (optional).
{
    "message": "foo",
    "statusCode": 0,
    "subCode": 0,
    "errors": [
        {
            "name": "foo",
            "message": "foo",
            "exceptionName": "foo"
        }
    ]
}
401Unauthorized (no user is authenticated).
403Permission Denied (insufficient rights on field, or field does not exist).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
412not available under the requested URL (min version).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
500Entity does not exist. Or any other error.
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}

Updates the value of an existing option for the customfield for specific context.

When updating an existing option try using the following and do not set sequence!

{ "id": 1, "optionvalue": "my option value" }


Version History

    Version History
    • New in 1.2

consumes application/json produces application/json
Request Parameters
ParameterDescriptionData Type
customFieldIdtype: path required: true

integer default: 12345
contextIdtype: path required: true

integer default: 678
optionIdtype: path required: true

integer default: 123
bodytype: body required: false

CustomFieldOptionModel represents all properties of an option.The id, value, order (sequence) and disabled/enabled state.
object
PropertyTypeDescription
optionvaluestringThe actual optionValue which is displayed to the user who uses the customField.
idintegerThe unique optionId.
sequenceintegerThe OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabledbooleanThe OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
{
    "optionvalue": "foo",
    "id": 0,
    "sequence": 0,
    "disabled": false
}
Response Messages
StatusDescriptionSchema / JSON Example
200successful operation
object
PropertyTypeDescription
optionvaluestringThe actual optionValue which is displayed to the user who uses the customField.
idintegerThe unique optionId.
sequenceintegerThe OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabledbooleanThe OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
{
    "optionvalue": "foo",
    "id": 0,
    "sequence": 0,
    "disabled": false
}
400Validation Error for field.
object
PropertyTypeDescription
messagestringA human readable error message.
statusCodeintegerAn integer HTTP status code.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
errorsarrayIf there are errors that are specific to a certain property of a submitted model it will be listed here.
array of object
PropertyTypeDescription
namestringThe name of the field or property which has a validation error.
messagestringHuman readable error message.
exceptionNamestringThe Exception name (optional).
{
    "message": "foo",
    "statusCode": 0,
    "subCode": 0,
    "errors": [
        {
            "name": "foo",
            "message": "foo",
            "exceptionName": "foo"
        }
    ]
}
401Unauthorized (no user is authenticated).
403Permission Denied (insufficient rights on field, or field does not exist).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
412not available under the requested URL (min version).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
500Entity does not exist. Or any other error.
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}

Deletes an option of the customfield by its id in specific context.


Version History
  • New in 1.2

consumes application/json produces application/json
Request Parameters
ParameterDescriptionData Type
customFieldIdtype: path required: true

integer default: 12345
contextIdtype: path required: true

integer default: 678
optionIdtype: path required: true

integer default: 123
Response Messages
StatusDescriptionSchema / JSON Example
200successful operation
object
PropertyTypeDescription
idintegerThe ID of the just deleted object.
{
    "id": 0
}
401Unauthorized (no user is authenticated).
403Permission Denied (insufficient rights on field, or field does not exist).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
412not available under the requested URL (min version).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
500Entity does not exist. Or any other error.
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}

Change order for existing option of customfield depending on values of RestfulTableMoveModel in specific context.

Example: See POST /customfields/{customFieldId}/contexts/default/options/{optionId}/move Endpoint for detailed example


Version History
  • New in 1.2

consumes application/json produces application/json
Request Parameters
ParameterDescriptionData Type
customFieldIdtype: path required: true

integer default: 12345
contextIdtype: path required: true

integer default: 678
optionIdtype: path required: true

integer default: 123
bodytype: body required: true

RestfulTableMoveModel is used for drag-and-drop sorting options using the AUI Restfultable. It is advised to not use it. Use the SORT Endpoint instead or you might break the internal order sequence.
object
PropertyTypeDescription
afterstringAfter must contain the optionId to move the option after. In form of "/foo/bar/{optionid}" which is provided that way by AUI Restfultable.You can provide just the optionId too.
positionstringSpecial Case to move an option to the beginning of the option List. Specify position="First". (Notice: if after and position are defined together, after is ignored)
{
    "after": "foo",
    "position": "foo"
}
Response Messages
StatusDescriptionSchema / JSON Example
200successful operation
object
PropertyTypeDescription
optionvaluestringThe actual optionValue which is displayed to the user who uses the customField.
idintegerThe unique optionId.
sequenceintegerThe OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabledbooleanThe OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
{
    "optionvalue": "foo",
    "id": 0,
    "sequence": 0,
    "disabled": false
}
400Validation Error for field.
object
PropertyTypeDescription
messagestringA human readable error message.
statusCodeintegerAn integer HTTP status code.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
errorsarrayIf there are errors that are specific to a certain property of a submitted model it will be listed here.
array of object
PropertyTypeDescription
namestringThe name of the field or property which has a validation error.
messagestringHuman readable error message.
exceptionNamestringThe Exception name (optional).
{
    "message": "foo",
    "statusCode": 0,
    "subCode": 0,
    "errors": [
        {
            "name": "foo",
            "message": "foo",
            "exceptionName": "foo"
        }
    ]
}
401Unauthorized (no user is authenticated).
403Permission Denied (insufficient rights on field, or field does not exist).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
406operation not supported for fieldType or other unsupported operation.
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
412not available under the requested URL (min version).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
500Entity does not exist. Or any other error.
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}

Get the default value for the customfield in specific context.


Version History
  • New in 1.2

consumes application/json produces application/json
Request Parameters
ParameterDescriptionData Type
customFieldIdtype: path required: true

integer default: 12345
contextIdtype: path required: true

integer default: 678
Response Messages
StatusDescriptionSchema / JSON Example
200successful operation
object
PropertyTypeDescription
defaultOptionobjectCustomFieldOptionModel represents all properties of an option.The id, value, order (sequence) and disabled/enabled state.
object
PropertyTypeDescription
optionvaluestringThe actual optionValue which is displayed to the user who uses the customField.
idintegerThe unique optionId.
sequenceintegerThe OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabledbooleanThe OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
defaultChildOptionobjectCustomFieldOptionModel represents all properties of an option.The id, value, order (sequence) and disabled/enabled state.
object
PropertyTypeDescription
optionvaluestringThe actual optionValue which is displayed to the user who uses the customField.
idintegerThe unique optionId.
sequenceintegerThe OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabledbooleanThe OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
defaultOptionsarrayThe IDs and names of the options as default values. (null for fieldtypes other than multiselect or multicheckboxes)
array of object
PropertyTypeDescription
optionvaluestringThe actual optionValue which is displayed to the user who uses the customField.
idintegerThe unique optionId.
sequenceintegerThe OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabledbooleanThe OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
{
    "defaultOption": {
        "optionvalue": "foo",
        "id": 0,
        "sequence": 0,
        "disabled": false
    },
    "defaultChildOption": {
        "optionvalue": "foo",
        "id": 0,
        "sequence": 0,
        "disabled": false
    },
    "defaultOptions": [
        {
            "optionvalue": "foo",
            "id": 0,
            "sequence": 0,
            "disabled": false
        }
    ]
}
204Delete successful. Not content is returned.
400Validation Error for field.
object
PropertyTypeDescription
messagestringA human readable error message.
statusCodeintegerAn integer HTTP status code.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
errorsarrayIf there are errors that are specific to a certain property of a submitted model it will be listed here.
array of object
PropertyTypeDescription
namestringThe name of the field or property which has a validation error.
messagestringHuman readable error message.
exceptionNamestringThe Exception name (optional).
{
    "message": "foo",
    "statusCode": 0,
    "subCode": 0,
    "errors": [
        {
            "name": "foo",
            "message": "foo",
            "exceptionName": "foo"
        }
    ]
}
401Unauthorized (no user is authenticated).
403Permission Denied (insufficient rights on field, or field does not exist).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
412not available under the requested URL (min version).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
500Entity does not exist. Or any other error.
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}

Set the default value for the customfield in specific context. The default value is composed differently depending on the fieldType.


Version History
  • New in 1.2

consumes application/json produces application/json
Request Parameters
ParameterDescriptionData Type
customFieldIdtype: path required: true

integer default: 12345
contextIdtype: path required: true

integer default: 678
bodytype: body required: true

Model used to set the default value of a customfield. The default value differs by fieldType.
  • A singleSelect/radioButtons fields defaultOption consists of an optionId (optionIds=null,childOptionId=null)
  • A cascadingSelect fields defaultOption consists of an optionId and a childOptionId (optionIds=null)
  • A multiSelect/multiCheckboxes fields defaultOptions consists of multiple optionIds (optionId=null,childOptionId=null)
object
PropertyTypeDescription
optionIdintegerThe ID of the option to be set as default value. (null for fieldtype multicheckboxes and multiselect)
childOptionIdintegerThe ID of the childOption to be set as default value. (null for fieldtypes other than cascadingSelect)
optionIdsarrayThe IDs of the options to be set as default values. (null for fieldtypes other than multiselect or multicheckboxes)
array of integer
{
    "optionId": 0,
    "childOptionId": 0,
    "optionIds": [
        1,
        2,
        3
    ]
}
Response Messages
StatusDescriptionSchema / JSON Example
200successful operation
object
PropertyTypeDescription
defaultOptionobjectCustomFieldOptionModel represents all properties of an option.The id, value, order (sequence) and disabled/enabled state.
object
PropertyTypeDescription
optionvaluestringThe actual optionValue which is displayed to the user who uses the customField.
idintegerThe unique optionId.
sequenceintegerThe OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabledbooleanThe OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
defaultChildOptionobjectCustomFieldOptionModel represents all properties of an option.The id, value, order (sequence) and disabled/enabled state.
object
PropertyTypeDescription
optionvaluestringThe actual optionValue which is displayed to the user who uses the customField.
idintegerThe unique optionId.
sequenceintegerThe OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabledbooleanThe OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
defaultOptionsarrayThe IDs and names of the options as default values. (null for fieldtypes other than multiselect or multicheckboxes)
array of object
PropertyTypeDescription
optionvaluestringThe actual optionValue which is displayed to the user who uses the customField.
idintegerThe unique optionId.
sequenceintegerThe OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabledbooleanThe OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
{
    "defaultOption": {
        "optionvalue": "foo",
        "id": 0,
        "sequence": 0,
        "disabled": false
    },
    "defaultChildOption": {
        "optionvalue": "foo",
        "id": 0,
        "sequence": 0,
        "disabled": false
    },
    "defaultOptions": [
        {
            "optionvalue": "foo",
            "id": 0,
            "sequence": 0,
            "disabled": false
        }
    ]
}
400Validation Error for field.
object
PropertyTypeDescription
messagestringA human readable error message.
statusCodeintegerAn integer HTTP status code.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
errorsarrayIf there are errors that are specific to a certain property of a submitted model it will be listed here.
array of object
PropertyTypeDescription
namestringThe name of the field or property which has a validation error.
messagestringHuman readable error message.
exceptionNamestringThe Exception name (optional).
{
    "message": "foo",
    "statusCode": 0,
    "subCode": 0,
    "errors": [
        {
            "name": "foo",
            "message": "foo",
            "exceptionName": "foo"
        }
    ]
}
401Unauthorized (no user is authenticated).
403Permission Denied (insufficient rights on field, or field does not exist).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
412not available under the requested URL (min version).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
500Entity does not exist. Or any other error.
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}

Delete the default value for the customfield in specific context.


Version History
  • New in 1.2

consumes application/json produces application/json
Request Parameters
ParameterDescriptionData Type
customFieldIdtype: path required: true

integer default: 12345
contextIdtype: path required: true

integer default: 678
Response Messages
StatusDescriptionSchema / JSON Example
400Validation Error for field.
object
PropertyTypeDescription
messagestringA human readable error message.
statusCodeintegerAn integer HTTP status code.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
errorsarrayIf there are errors that are specific to a certain property of a submitted model it will be listed here.
array of object
PropertyTypeDescription
namestringThe name of the field or property which has a validation error.
messagestringHuman readable error message.
exceptionNamestringThe Exception name (optional).
{
    "message": "foo",
    "statusCode": 0,
    "subCode": 0,
    "errors": [
        {
            "name": "foo",
            "message": "foo",
            "exceptionName": "foo"
        }
    ]
}
401Unauthorized (no user is authenticated).
403Permission Denied (insufficient rights on field, or field does not exist).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
412not available under the requested URL (min version).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
500Entity does not exist. Or any other error.
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}

Sorts the options alphabetically for the customfield in specific context depending on the specified locale.


Version History
  • New in 1.2

consumes application/json produces application/json
Request Parameters
ParameterDescriptionData Type
customFieldIdtype: path required: true

integer default: 12345
contextIdtype: path required: true

integer default: 678
bodytype: body required: true

SortModel specifies in which way to sort the options of a customfield.You can sort ascending or descending. The sorting will be locale dependant, so you need to specify a locale like en-US. You can specify an optional collator strength.
object
PropertyTypeDescription
localestringIETF BCP 47 language tag string in form of [a-zA-Z]+-[a-zA-Z]+
strengthstringCollator Strength in form of [A-Z]+
orderstringThe sort order in form of [A-Z]+
{
    "locale": "foo",
    "strength": "foo",
    "order": "foo"
}
Response Messages
StatusDescriptionSchema / JSON Example
200successful operation
object
PropertyTypeDescription
optionvaluestringThe actual optionValue which is displayed to the user who uses the customField.
idintegerThe unique optionId.
sequenceintegerThe OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabledbooleanThe OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
{
    "optionvalue": "foo",
    "id": 0,
    "sequence": 0,
    "disabled": false
}
400Validation Error for field.
object
PropertyTypeDescription
messagestringA human readable error message.
statusCodeintegerAn integer HTTP status code.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
errorsarrayIf there are errors that are specific to a certain property of a submitted model it will be listed here.
array of object
PropertyTypeDescription
namestringThe name of the field or property which has a validation error.
messagestringHuman readable error message.
exceptionNamestringThe Exception name (optional).
{
    "message": "foo",
    "statusCode": 0,
    "subCode": 0,
    "errors": [
        {
            "name": "foo",
            "message": "foo",
            "exceptionName": "foo"
        }
    ]
}
401Unauthorized (no user is authenticated).
403Permission Denied (insufficient rights on field, or field does not exist).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
412not available under the requested URL (min version).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
500Entity does not exist. Or any other error.
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}

This feature is only available for the customfield type Cascading Select Field.

Lists child-options of parent-option for default context.


Version History
  • New in 1.1
  • Changed in 1.2
    URL changed from /customfieldchildoptions/{customfieldid}/{parentoptionid}
    Request and Response Parameters/Schema unchanged.

consumes application/json produces application/json
Request Parameters
ParameterDescriptionData Type
customFieldIdtype: path required: true

integer default: 12345
optionIdtype: path required: true

integer default: 123
Response Messages
StatusDescriptionSchema / JSON Example
200successful operation
array of object
PropertyTypeDescription
optionvaluestringThe actual optionValue which is displayed to the user who uses the customField.
idintegerThe unique optionId.
sequenceintegerThe OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabledbooleanThe OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
[
    {
        "optionvalue": "foo",
        "id": 0,
        "sequence": 0,
        "disabled": false
    }
]
401Unauthorized (no user is authenticated).
403Permission Denied (insufficient rights on field, or field does not exist).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
406operation not supported for fieldType or other unsupported operation.
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
412not available under the requested URL (min version).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
500Entity does not exist. Or any other error.
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}

This feature is only available for the customfield type Cascading Select Field.

Creates a new child-option of a parent-option for the customfield in default context.

When creating a new option try using the following and do not set sequence and id!

{ "optionvalue": "my option value" }


Version History
  • New in 1.1
  • Changed in 1.2
    URL changed from /customfieldchildoption/{customfieldid}/{parentoptionid}
    Request and Response Parameters/Schema unchanged.

consumes application/json produces application/json
Request Parameters
ParameterDescriptionData Type
customFieldIdtype: path required: true

integer default: 12345
optionIdtype: path required: true

integer default: 123
bodytype: body required: false

CustomFieldOptionModel represents all properties of an option.The id, value, order (sequence) and disabled/enabled state.
object
PropertyTypeDescription
optionvaluestringThe actual optionValue which is displayed to the user who uses the customField.
idintegerThe unique optionId.
sequenceintegerThe OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabledbooleanThe OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
{
    "optionvalue": "foo",
    "id": 0,
    "sequence": 0,
    "disabled": false
}
Response Messages
StatusDescriptionSchema / JSON Example
200successful operation
object
PropertyTypeDescription
optionvaluestringThe actual optionValue which is displayed to the user who uses the customField.
idintegerThe unique optionId.
sequenceintegerThe OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabledbooleanThe OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
{
    "optionvalue": "foo",
    "id": 0,
    "sequence": 0,
    "disabled": false
}
400Validation Error for field.
object
PropertyTypeDescription
messagestringA human readable error message.
statusCodeintegerAn integer HTTP status code.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
errorsarrayIf there are errors that are specific to a certain property of a submitted model it will be listed here.
array of object
PropertyTypeDescription
namestringThe name of the field or property which has a validation error.
messagestringHuman readable error message.
exceptionNamestringThe Exception name (optional).
{
    "message": "foo",
    "statusCode": 0,
    "subCode": 0,
    "errors": [
        {
            "name": "foo",
            "message": "foo",
            "exceptionName": "foo"
        }
    ]
}
401Unauthorized (no user is authenticated).
403Permission Denied (insufficient rights on field, or field does not exist).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
406operation not supported for fieldType or other unsupported operation.
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
412not available under the requested URL (min version).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
500Entity does not exist. Or any other error.
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}

This feature is only available for the customfield type Cascading Select Field.

Updates the value of an existing child-option of a parent-option for the customfield in default context.

When updating an existing option try using the following and do not set sequence!

{ "id": 1, "optionvalue": "my option value" }


Version History
  • New in 1.1
  • Changed in 1.2
    URL changed from /customfieldchildoption/{customfieldid}/{parentoptionid}
    Request and Response Parameters/Schema unchanged.

consumes application/json produces application/json
Request Parameters
ParameterDescriptionData Type
customFieldIdtype: path required: true

integer default: 12345
optionIdtype: path required: true

integer default: 123
childOptionIdtype: path required: true

integer default: 334
bodytype: body required: false

CustomFieldOptionModel represents all properties of an option.The id, value, order (sequence) and disabled/enabled state.
object
PropertyTypeDescription
optionvaluestringThe actual optionValue which is displayed to the user who uses the customField.
idintegerThe unique optionId.
sequenceintegerThe OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabledbooleanThe OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
{
    "optionvalue": "foo",
    "id": 0,
    "sequence": 0,
    "disabled": false
}
Response Messages
StatusDescriptionSchema / JSON Example
200successful operation
object
PropertyTypeDescription
optionvaluestringThe actual optionValue which is displayed to the user who uses the customField.
idintegerThe unique optionId.
sequenceintegerThe OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabledbooleanThe OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
{
    "optionvalue": "foo",
    "id": 0,
    "sequence": 0,
    "disabled": false
}
400Validation Error for field.
object
PropertyTypeDescription
messagestringA human readable error message.
statusCodeintegerAn integer HTTP status code.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
errorsarrayIf there are errors that are specific to a certain property of a submitted model it will be listed here.
array of object
PropertyTypeDescription
namestringThe name of the field or property which has a validation error.
messagestringHuman readable error message.
exceptionNamestringThe Exception name (optional).
{
    "message": "foo",
    "statusCode": 0,
    "subCode": 0,
    "errors": [
        {
            "name": "foo",
            "message": "foo",
            "exceptionName": "foo"
        }
    ]
}
401Unauthorized (no user is authenticated).
403Permission Denied (insufficient rights on field, or field does not exist).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
406operation not supported for fieldType or other unsupported operation.
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
412not available under the requested URL (min version).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
500Entity does not exist. Or any other error.
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}

This feature is only available for the customfield type Cascading Select Field.

Deletes a child-option of a parent-option of the customfield by its id in default context.


Version History
  • New in 1.1
  • Changed in 1.2
    URL changed from /customfieldchildoption/{customfieldid}/{parentoptionid}
    Request and Response Parameters/Schema unchanged.

consumes application/json produces application/json
Request Parameters
ParameterDescriptionData Type
customFieldIdtype: path required: true

integer default: 12345
optionIdtype: path required: true

integer default: 123
childOptionIdtype: path required: true

integer default: 334
Response Messages
StatusDescriptionSchema / JSON Example
200successful operation
object
PropertyTypeDescription
idintegerThe ID of the just deleted object.
{
    "id": 0
}
400Validation Error for field.
object
PropertyTypeDescription
messagestringA human readable error message.
statusCodeintegerAn integer HTTP status code.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
errorsarrayIf there are errors that are specific to a certain property of a submitted model it will be listed here.
array of object
PropertyTypeDescription
namestringThe name of the field or property which has a validation error.
messagestringHuman readable error message.
exceptionNamestringThe Exception name (optional).
{
    "message": "foo",
    "statusCode": 0,
    "subCode": 0,
    "errors": [
        {
            "name": "foo",
            "message": "foo",
            "exceptionName": "foo"
        }
    ]
}
401Unauthorized (no user is authenticated).
403Permission Denied (insufficient rights on field, or field does not exist).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
406operation not supported for fieldType or other unsupported operation.
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
412not available under the requested URL (min version).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
500Entity does not exist. Or any other error.
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}

This feature is only available for the customfield type Cascading Select Field.

Change order for existing child-option of parent-option of customfield depending on values of RestfulTableMoveModel in default context.

Example: See POST /customfields/{customFieldId}/contexts/default/options/{optionId}/move Endpoint for detailed example


Version History
  • New in 1.1
  • Changed in 1.2
    URL changed from /customfieldchildoption/{customfieldid}/{parentoptionid}/move
    Request and Response Parameters/Schema unchanged.

consumes application/json produces application/json
Request Parameters
ParameterDescriptionData Type
customFieldIdtype: path required: true

integer default: 12345
optionIdtype: path required: true

integer default: 123
childOptionIdtype: path required: true

integer default: 334
bodytype: body required: true

RestfulTableMoveModel is used for drag-and-drop sorting options using the AUI Restfultable. It is advised to not use it. Use the SORT Endpoint instead or you might break the internal order sequence.
object
PropertyTypeDescription
afterstringAfter must contain the optionId to move the option after. In form of "/foo/bar/{optionid}" which is provided that way by AUI Restfultable.You can provide just the optionId too.
positionstringSpecial Case to move an option to the beginning of the option List. Specify position="First". (Notice: if after and position are defined together, after is ignored)
{
    "after": "foo",
    "position": "foo"
}
Response Messages
StatusDescriptionSchema / JSON Example
200successful operation
object
PropertyTypeDescription
optionvaluestringThe actual optionValue which is displayed to the user who uses the customField.
idintegerThe unique optionId.
sequenceintegerThe OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabledbooleanThe OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
{
    "optionvalue": "foo",
    "id": 0,
    "sequence": 0,
    "disabled": false
}
400Validation Error for field.
object
PropertyTypeDescription
messagestringA human readable error message.
statusCodeintegerAn integer HTTP status code.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
errorsarrayIf there are errors that are specific to a certain property of a submitted model it will be listed here.
array of object
PropertyTypeDescription
namestringThe name of the field or property which has a validation error.
messagestringHuman readable error message.
exceptionNamestringThe Exception name (optional).
{
    "message": "foo",
    "statusCode": 0,
    "subCode": 0,
    "errors": [
        {
            "name": "foo",
            "message": "foo",
            "exceptionName": "foo"
        }
    ]
}
401Unauthorized (no user is authenticated).
403Permission Denied (insufficient rights on field, or field does not exist).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
406operation not supported for fieldType or other unsupported operation.
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
412not available under the requested URL (min version).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
500Entity does not exist. Or any other error.
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}

This feature is only available for the customfield type Cascading Select Field.

Sorts the child-options of a parent-option for the customfield in default context.


Version History
  • New in 1.2

consumes application/json produces application/json
Request Parameters
ParameterDescriptionData Type
customFieldIdtype: path required: true

integer default: 12345
optionIdtype: path required: true

integer default: 123
bodytype: body required: true

SortModel specifies in which way to sort the options of a customfield.You can sort ascending or descending. The sorting will be locale dependant, so you need to specify a locale like en-US. You can specify an optional collator strength.
object
PropertyTypeDescription
localestringIETF BCP 47 language tag string in form of [a-zA-Z]+-[a-zA-Z]+
strengthstringCollator Strength in form of [A-Z]+
orderstringThe sort order in form of [A-Z]+
{
    "locale": "foo",
    "strength": "foo",
    "order": "foo"
}
Response Messages
StatusDescriptionSchema / JSON Example
200successful operation
object
PropertyTypeDescription
optionvaluestringThe actual optionValue which is displayed to the user who uses the customField.
idintegerThe unique optionId.
sequenceintegerThe OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabledbooleanThe OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
{
    "optionvalue": "foo",
    "id": 0,
    "sequence": 0,
    "disabled": false
}
400Validation Error for field.
object
PropertyTypeDescription
messagestringA human readable error message.
statusCodeintegerAn integer HTTP status code.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
errorsarrayIf there are errors that are specific to a certain property of a submitted model it will be listed here.
array of object
PropertyTypeDescription
namestringThe name of the field or property which has a validation error.
messagestringHuman readable error message.
exceptionNamestringThe Exception name (optional).
{
    "message": "foo",
    "statusCode": 0,
    "subCode": 0,
    "errors": [
        {
            "name": "foo",
            "message": "foo",
            "exceptionName": "foo"
        }
    ]
}
401Unauthorized (no user is authenticated).
403Permission Denied (insufficient rights on field, or field does not exist).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
412not available under the requested URL (min version).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
500Entity does not exist. Or any other error.
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}

This feature is only available for the customfield type Cascading Select Field.

Lists child-options of parent-option for specific context.


Version History
  • New in 1.2

consumes application/json produces application/json
Request Parameters
ParameterDescriptionData Type
customFieldIdtype: path required: true

integer default: 12345
contextIdtype: path required: true

integer default: 678
optionIdtype: path required: true

integer default: 123
Response Messages
StatusDescriptionSchema / JSON Example
200successful operation
array of object
PropertyTypeDescription
optionvaluestringThe actual optionValue which is displayed to the user who uses the customField.
idintegerThe unique optionId.
sequenceintegerThe OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabledbooleanThe OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
[
    {
        "optionvalue": "foo",
        "id": 0,
        "sequence": 0,
        "disabled": false
    }
]
401Unauthorized (no user is authenticated).
403Permission Denied (insufficient rights on field, or field does not exist).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
406operation not supported for fieldType or other unsupported operation.
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
412not available under the requested URL (min version).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
500Entity does not exist. Or any other error.
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}

This feature is only available for the customfield type Cascading Select Field.

Creates a new child-option of a parent-option for the customfield in default context.

When creating a new option try using the following and do not set sequence and id!

{ "optionvalue": "my option value" }


Version History
  • New in 1.2

consumes application/json produces application/json
Request Parameters
ParameterDescriptionData Type
customFieldIdtype: path required: true

integer default: 12345
contextIdtype: path required: true

integer default: 334
optionIdtype: path required: true

integer default: 123
bodytype: body required: false

CustomFieldOptionModel represents all properties of an option.The id, value, order (sequence) and disabled/enabled state.
object
PropertyTypeDescription
optionvaluestringThe actual optionValue which is displayed to the user who uses the customField.
idintegerThe unique optionId.
sequenceintegerThe OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabledbooleanThe OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
{
    "optionvalue": "foo",
    "id": 0,
    "sequence": 0,
    "disabled": false
}
Response Messages
StatusDescriptionSchema / JSON Example
200successful operation
object
PropertyTypeDescription
optionvaluestringThe actual optionValue which is displayed to the user who uses the customField.
idintegerThe unique optionId.
sequenceintegerThe OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabledbooleanThe OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
{
    "optionvalue": "foo",
    "id": 0,
    "sequence": 0,
    "disabled": false
}
400Validation Error for field.
object
PropertyTypeDescription
messagestringA human readable error message.
statusCodeintegerAn integer HTTP status code.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
errorsarrayIf there are errors that are specific to a certain property of a submitted model it will be listed here.
array of object
PropertyTypeDescription
namestringThe name of the field or property which has a validation error.
messagestringHuman readable error message.
exceptionNamestringThe Exception name (optional).
{
    "message": "foo",
    "statusCode": 0,
    "subCode": 0,
    "errors": [
        {
            "name": "foo",
            "message": "foo",
            "exceptionName": "foo"
        }
    ]
}
401Unauthorized (no user is authenticated).
403Permission Denied (insufficient rights on field, or field does not exist).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
406operation not supported for fieldType or other unsupported operation.
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
412not available under the requested URL (min version).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
500Entity does not exist. Or any other error.
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}

This feature is only available for the customfield type Cascading Select Field.

Updates the value of an existing child-option of a parent-option for the customfield.

When updating an existing option try using the following and do not set sequence!

{ "id": 1, "optionvalue": "my option value" }


Version History
  • New in 1.2

consumes application/json produces application/json
Request Parameters
ParameterDescriptionData Type
customFieldIdtype: path required: true

integer default: 12345
optionIdtype: path required: true

integer default: 123
childOptionIdtype: path required: true

integer default: 334
contextIdtype: path required: true

integer default: 334
bodytype: body required: false

CustomFieldOptionModel represents all properties of an option.The id, value, order (sequence) and disabled/enabled state.
object
PropertyTypeDescription
optionvaluestringThe actual optionValue which is displayed to the user who uses the customField.
idintegerThe unique optionId.
sequenceintegerThe OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabledbooleanThe OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
{
    "optionvalue": "foo",
    "id": 0,
    "sequence": 0,
    "disabled": false
}
Response Messages
StatusDescriptionSchema / JSON Example
200successful operation
object
PropertyTypeDescription
optionvaluestringThe actual optionValue which is displayed to the user who uses the customField.
idintegerThe unique optionId.
sequenceintegerThe OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabledbooleanThe OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
{
    "optionvalue": "foo",
    "id": 0,
    "sequence": 0,
    "disabled": false
}
400Validation Error for field.
object
PropertyTypeDescription
messagestringA human readable error message.
statusCodeintegerAn integer HTTP status code.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
errorsarrayIf there are errors that are specific to a certain property of a submitted model it will be listed here.
array of object
PropertyTypeDescription
namestringThe name of the field or property which has a validation error.
messagestringHuman readable error message.
exceptionNamestringThe Exception name (optional).
{
    "message": "foo",
    "statusCode": 0,
    "subCode": 0,
    "errors": [
        {
            "name": "foo",
            "message": "foo",
            "exceptionName": "foo"
        }
    ]
}
401Unauthorized (no user is authenticated).
403Permission Denied (insufficient rights on field, or field does not exist).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
406operation not supported for fieldType or other unsupported operation.
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
412not available under the requested URL (min version).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
500Entity does not exist. Or any other error.
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}

This feature is only available for the customfield type Cascading Select Field.

Deletes a child-option of a parent-option of the customfield by its id in specific context.


Version History
  • New in 1.2

consumes application/json produces application/json
Request Parameters
ParameterDescriptionData Type
customFieldIdtype: path required: true

integer default: 12345
contextIdtype: path required: true

integer default: 334
optionIdtype: path required: true

integer default: 123
childOptionIdtype: path required: true

integer default: 334
Response Messages
StatusDescriptionSchema / JSON Example
200successful operation
object
PropertyTypeDescription
idintegerThe ID of the just deleted object.
{
    "id": 0
}
400Validation Error for field.
object
PropertyTypeDescription
messagestringA human readable error message.
statusCodeintegerAn integer HTTP status code.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
errorsarrayIf there are errors that are specific to a certain property of a submitted model it will be listed here.
array of object
PropertyTypeDescription
namestringThe name of the field or property which has a validation error.
messagestringHuman readable error message.
exceptionNamestringThe Exception name (optional).
{
    "message": "foo",
    "statusCode": 0,
    "subCode": 0,
    "errors": [
        {
            "name": "foo",
            "message": "foo",
            "exceptionName": "foo"
        }
    ]
}
401Unauthorized (no user is authenticated).
403Permission Denied (insufficient rights on field, or field does not exist).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
406operation not supported for fieldType or other unsupported operation.
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
412not available under the requested URL (min version).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
500Entity does not exist. Or any other error.
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}

This feature is only available for the customfield type Cascading Select Field.

Change order for existing child-option of parent-option of customfield depending on values of RestfulTableMoveModel in specific context.

Example: See POST /customfields/{customFieldId}/contexts/default/options/{optionId}/move Endpoint for detailed example


Version History
  • New in 1.2

consumes application/json produces application/json
Request Parameters
ParameterDescriptionData Type
customFieldIdtype: path required: true

integer default: 12345
contextIdtype: path required: true

integer default: 334
optionIdtype: path required: true

integer default: 123
childOptionIdtype: path required: true

integer default: 334
bodytype: body required: true

RestfulTableMoveModel is used for drag-and-drop sorting options using the AUI Restfultable. It is advised to not use it. Use the SORT Endpoint instead or you might break the internal order sequence.
object
PropertyTypeDescription
afterstringAfter must contain the optionId to move the option after. In form of "/foo/bar/{optionid}" which is provided that way by AUI Restfultable.You can provide just the optionId too.
positionstringSpecial Case to move an option to the beginning of the option List. Specify position="First". (Notice: if after and position are defined together, after is ignored)
{
    "after": "foo",
    "position": "foo"
}
Response Messages
StatusDescriptionSchema / JSON Example
200successful operation
object
PropertyTypeDescription
optionvaluestringThe actual optionValue which is displayed to the user who uses the customField.
idintegerThe unique optionId.
sequenceintegerThe OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabledbooleanThe OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
{
    "optionvalue": "foo",
    "id": 0,
    "sequence": 0,
    "disabled": false
}
400Validation Error for field.
object
PropertyTypeDescription
messagestringA human readable error message.
statusCodeintegerAn integer HTTP status code.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
errorsarrayIf there are errors that are specific to a certain property of a submitted model it will be listed here.
array of object
PropertyTypeDescription
namestringThe name of the field or property which has a validation error.
messagestringHuman readable error message.
exceptionNamestringThe Exception name (optional).
{
    "message": "foo",
    "statusCode": 0,
    "subCode": 0,
    "errors": [
        {
            "name": "foo",
            "message": "foo",
            "exceptionName": "foo"
        }
    ]
}
401Unauthorized (no user is authenticated).
403Permission Denied (insufficient rights on field, or field does not exist).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
406operation not supported for fieldType or other unsupported operation.
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
412not available under the requested URL (min version).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
500Entity does not exist. Or any other error.
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}

This feature is only available for the customfield type Cascading Select Field.

Sorts the child-options of a parent-option for the customfield in specific context.


Version History
  • New in 1.2

consumes application/json produces application/json
Request Parameters
ParameterDescriptionData Type
customFieldIdtype: path required: true

integer default: 12345
contextIdtype: path required: true

integer default: 678
optionIdtype: path required: true

integer default: 123
bodytype: body required: true

SortModel specifies in which way to sort the options of a customfield.You can sort ascending or descending. The sorting will be locale dependant, so you need to specify a locale like en-US. You can specify an optional collator strength.
object
PropertyTypeDescription
localestringIETF BCP 47 language tag string in form of [a-zA-Z]+-[a-zA-Z]+
strengthstringCollator Strength in form of [A-Z]+
orderstringThe sort order in form of [A-Z]+
{
    "locale": "foo",
    "strength": "foo",
    "order": "foo"
}
Response Messages
StatusDescriptionSchema / JSON Example
200successful operation
object
PropertyTypeDescription
optionvaluestringThe actual optionValue which is displayed to the user who uses the customField.
idintegerThe unique optionId.
sequenceintegerThe OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabledbooleanThe OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
{
    "optionvalue": "foo",
    "id": 0,
    "sequence": 0,
    "disabled": false
}
400Validation Error for field.
object
PropertyTypeDescription
messagestringA human readable error message.
statusCodeintegerAn integer HTTP status code.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
errorsarrayIf there are errors that are specific to a certain property of a submitted model it will be listed here.
array of object
PropertyTypeDescription
namestringThe name of the field or property which has a validation error.
messagestringHuman readable error message.
exceptionNamestringThe Exception name (optional).
{
    "message": "foo",
    "statusCode": 0,
    "subCode": 0,
    "errors": [
        {
            "name": "foo",
            "message": "foo",
            "exceptionName": "foo"
        }
    ]
}
401Unauthorized (no user is authenticated).
403Permission Denied (insufficient rights on field, or field does not exist).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
412not available under the requested URL (min version).
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}
500Entity does not exist. Or any other error.
object
PropertyTypeDescription
statusCodeintegerAn integer HTTP status code. Mostly HTTP 500.
subCodeintegerAn unique integer cep-status code to send in with bug reports.
messagestringA human readable error message.
{
    "statusCode": 0,
    "subCode": 0,
    "message": "foo"
}

Rest API Upgrade Notes

The REST API changes from time to time. We try to keep these changes as minimal as possible, but at some point technical debt needs to be dealt with. See in the version sections below which changes made to the API on the respective app version:

v1.5.0 to v1.7.1

No breaking changes.

v1.4.0 to v1.5.0

Breaking changes!

  • breaking:

    • [CEP-36] Rest-API: All Endpoints will return HTTP 403 instead of HTTP 500 on non existing custom field id.

  • non-breaking:

    • [CEP-31] Rest-API: Provide associated projects and issue types info for /*/customfields/{id}/contexts Endpoint.

v1.3.0 to v1.4.0

No breaking changes.

v1.2.3 to v1.3.0

No breaking changes.

  • breaking:

    • -

  • non-breaking:

    • [CEP-INT-8] base url is now /1 not /1.2 anymore. But will be backwards compatible.

    • [CEP-INT-8] removed the "v1.1 Compatibility Mode" completely.

    • [CEP-12] added /extended Endpoints for admin context permissions that display users fullname in userlists.

v1.2.2 to v1.2.3

No breaking changes.

v1.2.1 to v1.2.2

No breaking changes.

v1.2.0 to v1.2.1

You don't really need to do anything. Everything should work as before since it is just a bugfixing release which also brings the new context security feature. See the administrator guide for more details.

v1.0.0/1.1.0 to v1.2.0

You are advised to migrate to the new v1.2 URLs but you can use the v1.1 compatibility mode until you fully migrated. Here are the changes to the API from v1.1 to v1.2:

  • new baseUrl (with version /1.2/)

  • the URL pattern changed for all endpoints. See the the above REST-API-Endpoint-Documentation.

  • CustomFieldId is now Long (1234) not String (customfield_1234) anymore.

  • childOptions are removed from GET Options Resource response. Use separate Request on GET childOptions Resource now.

  • XML Support is removed completely. Use JSON as body-payload instead.

  • Error Responses are a little different and there are more distinct Response codes. See the the above REST-API-Endpoint-Documentation for all details.

  • Added Support for Field Contexts (with contextIDs or defaultContext).

  • Added alphabetical Sorting Endpoint for Options and childOptions.

  • Added Setting of default Value Endpoint.

  • Added a REST API Explorer on URL http://server:port/jira/plugins/servlet/customfieldeditorplugin/restapi/. You can trigger API Calls to the API directly in the Browser

  • Added admin Endpoints to set permissions and list customfields (for jira-administrator only)

CORS (Cross-Origin Resource Sharing)

CORS is not provided by the app itself. You need to configure CORS to your needs in the Webserver (Nginx or Apache Webserver) that sits in front of Jira.

Note: codeclou does not recommend you to configure CORS in a specific way. You should consult a specalist to configure CORS to your needs. The config below is provided without any warranty

Use this demo config for Apache Webserver v2.4+ to handle HTTP Options Preflight Requests and set correct CORS headers. Note that you still should abide Proxying Atlassian server applications with Apache HTTP Server (mod_proxy_http).

virtual-host.conf
<VirtualHost *:80>
  ServerName api-proxy.codeclou.io

  ## SSL => You should use SSL in production
  #SSLEngine on
  #SSLCertificateKeyFile /etc/ssl.key/example.com.key
  #SSLCertificateFile /etc/ssl.crt/example.com.crt

  ## CORS Header
  Header always set Access-Control-Allow-Origin  "*"
  Header always set Access-Control-Allow-Methods "POST, GET, OPTIONS, DELETE, PUT"
  Header always set Access-Control-Allow-Headers "x-requested-with, Content-Type, origin, authorization, accept, client-security-token"

  ## Handle HTTP Options Preflight Request always with 200
  RewriteEngine On
  RewriteCond %{REQUEST_METHOD} OPTIONS
  RewriteRule ^(.*)$ $1 [R=200,L]

  ## Proxy CEP REST Uris to Jira Server
  <LocationMatch "/rest/jiracustomfieldeditorplugin/1">
    ProxyPass http://jira-server:8080/rest/jiracustomfieldeditorplugin/1 disablereuse=On
    ProxyPassReverse http:///jira-server:8080/rest/jiracustomfieldeditorplugin/1
  </LocationMatch>
</VirtualHost>

Use this demo config for NGINX v1+ to handle HTTP Options Preflight Requests and set correct CORS headers. Note that you still should abide Integrating Jira with Nginx.

nginx.conf
server {
  listen api-proxy.codeclou.io:80;
  server_name api-proxy.codeclou.io;

  ## SSL => You should use SSL in production
  #ssl_certificate     www.example.com.crt;
  #ssl_certificate_key www.example.com.key;
  #ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
  #ssl_ciphers         HIGH:!aNULL:!MD5;

  location /rest/jiracustomfieldeditorplugin/1 {

    ## CORS Header
    add_header 'Access-Control-Allow-Origin' '*' always;
    add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS' always;
    add_header 'Access-Control-Allow-Headers' 'x-requested-with, Content-Type, origin, authorization, accept, client-security-token' always;

    ## Handle HTTP Options Preflight Request always with 200
    if ($request_method = 'OPTIONS') {
      return 200;
    }

    ## Proxy CEP REST Uris to Jira Server
    proxy_pass http://jira-server:8080/rest/jiracustomfieldeditorplugin/1;
  }
}

Now you can test your CORS config. The HTTP Options Preflight Request should have the following CORS Headers:

$
curl -I -X OPTIONS -H "Accept: application/json" -u admin:admin http://jira-server:8080/rest/jiracustomfieldeditorplugin/1/admin/customfields
HTTP/1.1 200 OK
Server: nginx/1.10.3 (Ubuntu)
Date: Tue, 24 Jul 2018 11:29:58 GMT
Content-Type: application/octet-stream
Content-Length: 0
Connection: keep-alive
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS
Access-Control-Allow-Headers: x-requested-with, Content-Type, origin, authorization, accept, client-security-token

Any normal e.g. HTTP Get Request should have the following CORS Headers.

$
curl -I -X GET -H "Accept: application/json" -u admin:admin http://jira-server:8080/rest/jiracustomfieldeditorplugin/1/admin/customfields
HTTP/1.1 200
Server: nginx/1.10.3 (Ubuntu)
Date: Tue, 24 Jul 2018 11:30:32 GMT
Content-Type: application/json;charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
X-AREQUESTID: 690x707x1
X-ANODEID: jira-cluster-7100-node1
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
Content-Security-Policy: frame-ancestors 'self'
X-ASEN: SEN-L12059515
X-Seraph-LoginReason: OK
X-ASESSIONID: cdyu96
X-AUSERNAME: admin
Cache-Control: no-cache, no-store, no-transform
...
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS
Access-Control-Allow-Headers: x-requested-with, Content-Type, origin, authorization, accept, client-security-token