Jira

Integration version: 41.0

Configure Jira to work with Google Security Operations SOAR

Create an API token

Create an API token from your Atlassian account:

  1. Log in to your Atlassian Account.
  2. Click Create API token.
  3. From the dialog that appears, enter a memorable and concise Label for your token and click Create.
  4. Click Copy to clipboard, then paste the token somewhere secure to save.

Configure Jira integration in Google Security Operations SOAR

For detailed instructions on how to configure an integration in Google Security Operations SOAR, see Configure integrations.

Integration parameters

Use the following parameters to configure the integration:

Parameter Display Name Type Default Value Is Mandatory Description
Instance Name String N/A No Name of the Instance you intend to configure integration for.
Description String N/A No Description of the Instance.
Api Root String https://{jira_address} Yes Address of the Jira instance.
Username String N/A Yes A username that should be used to connect to Jira.
Api Token Password N/A Yes

Token generated in the Jira console.

Note: This parameter can be used to contain the "Password" string in case of On-prem authentication, using username and password combination.

Verify SSL Checkbox Unchecked No Use this checkbox, if your Jira connection requires an SSL verification.
Run Remotely Checkbox Unchecked No Check the field in order to run the configured integration remotely. Once checked, the option appears to select the remote user (agent).

Actions

Add Comment

Description

Composing comments to an issue is an effective way to document further elements about an issue and participate with team members.

Parameters

Parameters Type Default Value Is Mandatory Description
Issue Key String N/A Yes

The issue key of the issue.

Example: ABC-123

Comment String N/A Yes The comment content to add to the issue.

Run On

This action runs on all entities.

Action Results

Script Result
Script Result Name Value Options Example
comment_id N/A N/A
JSON Result
N/A

Assign Issue

Description

Assign an issue to a specific user. Jira username could be for example name or mail. For the new Jira API, the action tries to find a match for the assignee to assign an issue based on user email, and then tries with the displayName field.

Parameters

Parameter Type Default Value Is Mandatory Description
Issue Key String N/A Yes The issue key of the issue.
Assignee String N/A Yes The new assignee of the issue.
Jira Username String N/A No The Jira username of the initiator of the action.

Run On

This action runs on all entities.

Action Results

Script Result
Script Result Name Value Options Example
success True/False success:False

Create Alert Issue

Description

Assign an incident to a particular group.

Parameters

Parameter Type Default Value Is Mandatory Description
Project Key String N/A Yes The key of the project to create the issue in.
Summary String N/A Yes The summary of the issue.
Issue Type String N/A Yes The type of the issue.

Run On

This action runs on all entities.

Action Results

Script Result
Script Result Name Value Options Example
issue_key N/A N/A
JSON Result
{
   "comment":
      {
        "total": 0,
        "startAt": 0,
        "comments": [],
        "maxResults": 0
       },
   "Creator":
      {
        "displayName": "user1",
        "name": "user1",
        "self": "",
        "avatarUrls":
           {
              "24x24": "",
              "16x16": "",
              "48x48": "",
              "32x32": ""
            },
        "emailAddress": "john_doe@example.com",
        "key": "user1user",
        "active": true,
        "timeZone": "Asia/Jerusalem",
        "accountId": "0"
       },
   "aggregatetimeestimate": null,
   "labels": ["Label1"],
   "aggregatetimespent": null,
   "watches":
       {
         "self": "",
         "watchCount": 1,
         "isWatching": false
        },
   "Assignee":
       {
         "displayName": "user2",
         "name": "user2",
         "self": "",
         "avatarUrls":
            {
                "24x24": "",
                "16x16": "",
                "48x48": "",
                "32x32": ""
             },
         "emailAddress": "john_doe@example.com",
         "key": "user2",
         "active": true,
         "timeZone": "Asia/Jerusalem",
         "accountId": ""
         },
   "lastViewed": "2019-01-22T10:14:02.910+0200",
   "issuelinks": [],
   "worklog":
        {
         "worklogs": [],
         "total": 0,
         "startAt": 0,
         "maxResults": 20
        },
   "aggregateprogress":
        {
         "progress": 0,
         "total": 0
        },
   "priority":
        {
         "iconUrl": "",
         "self": "",
         "name": "Medium",
         "id": "3"
         },
    "votes":
        {
         "hasVoted": false,
         "self": "", "votes": 0
        },
    "workratio": -1,
    "fixVersions": [],
    "environment": null,
    "timespent": null,
    "attachment":
      [{
         "mimeType": "binary/octet-stream",
         "created": "2018-06-19T15:23:07.369+0300",
         "self": "",
         "Author":
             {
                "displayName": "user1",
                "name": "user1",
                "self": "",
                "avatarUrls":
                    {
                      "24x24": "",
                      "16x16": "",
                      "48x48": "",
                      "32x32": ""
                     },
                "emailAddress": "john_doe@example.com",
                "key": "user1",
                "active": true,
                "timeZone": "Asia/Jerusalem",
                "accountId": "0"
              },
         "filename": "file.rar",
         "content": "",
         "id": "0",
         "size": 0
        }],
    "progress": {"progress": 0,
                 "total": 0},
    "duedate": null,
    "status":
        {
          "statusCategory":
              {
                 "name": "Done",
                 "self": "",
                 "id": 3,
                 "key": "done",
                 "colorName": "green"
               },
           "description": "",
           "self": "",
           "iconUrl": "",
           "id": "0",
           "name": "DONE"
         },
    "updated": "2018-09-18T10:02:06.347+0300",
    "subtasks": [],
    "description": "Create Enrich entities action using Insights API (IOC search)\\n\\nWrite connector for laerts\\n\\nIn a couple of days we will have access to an instance",
    "reporter":
         {
            "displayName": "user1",
            "name": "user1",
            "self": "",
            "avatarUrls":
               {
                  "24x24": "",
                  "16x16": "",
                  "48x48": "",
                  "32x32": ""
               },
            "emailAddress": "john_doe@example.com",
            "key": "user1",
            "active": true,
             "timeZone": "Asia/Jerusalem",
             "accountId": "0"
           },
    "timeoriginalestimate": null,
    "aggregatetimeoriginalestimate": null,
    "created": "2018-06-19T15:23:13.701+0300",
    "versions": [],
    "resolutiondate": "2018-09-18T10:02:06.340+0300",
    "summary": "Sample issue",
    "project":
          {
             "name": "Project 1",
             "self": "",
             "projectTypeKey": "software",
             "avatarUrls":
                {
                  "24x24": "",
                  "16x16": "",
                  "48x48": "",
                  "32x32": ""
                },
            "key": "PR",
            "id": "0"
          },
    "timetracking": {},
    "components": [],
    "issuetype":
         {
            "name": "Task",
            "self": "",
            "iconUrl": "",
            "subtask": false,
            "avatarId": 10318,
            "id": "10002",
            "description": "A task that needs to be done."
          },
    "security": null,
    "resolution":
          {
            "id": "10000",
            "self": "",
            "description": "Work has been completed on this issue.",
            "name": "Done"
          },
  "timeestimate": null
}

Create Issue

Description

Create an issue in a project. Jira username could be for example name or mail. For the new Jira API, the action tries to find a match for the assignee to assign an issue based on user email, and then tries with the displayName field.

Parameters

Parameter Type Default Value Is Mandatory Description
Project Key String N/A Yes The key of the project to create an issue in.
Summary String N/A Yes The summary of the issue.
Description String N/A Yes The description of the issue.
Issue Type String N/A Yes The type of the issue.
Assignee String N/A No The new assignee of the issue.
Jira Username String N/A No The Jira username of the initiator of the action.
Components String N/A No

The components field of the issue.

This parameter accepts multiple values as a comma-separated string.

Labels String N/A No

The components field of the issue.

This parameter accepts multiple values as a comma-separated string.

Custom Fields JSON N/A No

Specify a JSON object containing all of the fields and values that will be used during issue creation.

Note: This parameter has priority and all of the fields are overwritten with the value that is provided for this parameter.

Example: {"field":"value"}

Run On

This action runs on all entities.

Action Results

Script Result
Script Result Name Value Options Example
issue_key N/A N/A
JSON Result
N/A

Delete Issue

Description

Delete an issue.

Parameters

Parameter Type Default Value Is Mandatory Description
Issue Key String N/A Yes The key of the issue to delete.

Run On

This action runs on all entities.

Action Results

Script Result
Script Result Name Value Options Example
success True/False success:False
JSON Result
N/A

Download Attachments

Description

Get an Issue key and download all attachments. If one of them is an EML file, then download inside the attachments as well.

Parameters

Parameter Type Default Value Is Mandatory Description
Issue Key String N/A Yes The key of the issue.
Download Path String N/A No The path where save the attachments.
Download Attachments to the Case Wall Checkbox Unchecked No If enabled, the action downloads the Jira issue attachments to the current Google Security Operations SOAR alert case wall.

Run On

This action runs on all entities.

Action Results

Script Result
Script Result Name Value Options Example
is_success True/False is_success:False
JSON Result
{
   "comment":
      {
        "total": 0,
        "startAt": 0,
        "comments": [],
        "maxResults": 0
       },
   "creator":
      {
        "displayName": "user1",
        "name": "user1",
        "self": "",
        "avatarUrls":
          {
            "24x24": "",
            "16x16": "",
            "48x48": "",
            "32x32": ""
            },
        "emailAddress": "john_doe@example.com",
        "key": "user1user",
        "active": true,
        "timeZone": "Asia/Jerusalem",
        "accountId": "0"
      },
    "aggregatetimeestimate": null,
    "labels": ["Label1"],
    "aggregatetimespent": null,
    "watches":
      {
        "self": "",
        "watchCount": 1,
        "isWatching": false
      },
     "assignee":
       {
        "displayName": "user2",
        "name": "user2",
        "self": "",
        "avatarUrls":
           {
             "24x24": "",
             "16x16": "",
             "48x48": "",
             "32x32": ""
            },
         "emailAddress": "john_doe@example.com",
         "key": "user2","active": true,
         "timeZone": "Asia/Jerusalem",
         "accountId": ""
        },
      "lastViewed": "2019-01-22T10:14:02.910+0200",
      "issuelinks": [],
      "worklog":
        {
          "worklogs": [],
          "total": 0,
          "startAt": 0,
          "maxResults": 20
         },
      "aggregateprogress":
        {
          "progress": 0,
          "total": 0
         },
      "Priority":
        {
          "iconUrl": "",
          "self": "",
          "name": "Medium",
          "id": "3"
         },
      "Votes":
         {
           "hasVoted": false,
           "self": "",
           "votes": 0
          },
      "workratio": -1,
      "fixVersions": [],
      "environment": null,
      "timespent": null,
      "attachment":
          [{
             "mimeType": "binary/octet-stream",
             "created": "2018-06-19T15:23:07.369+0300",
             "self": "",
             "author":
                {
                  "displayName": "user1",
                  "name": "user1",
                  "self": "",
                  "avatarUrls":
                      {
                        "24x24": "",
                        "16x16": "",
                        "48x48": "",
                        "32x32": ""
                      },
                 "emailAddress": "john_doe@example.com",
                 "key": "user1",
                 "active": true,
                 "timeZone": "Asia/Jerusalem",
                 "accountId": "0"
                 },
             "filename": "file.rar",
             "content": "",
             "id": "0",
             "size": 0
           }],
       "progress":
           {
             "progress": 0,
             "total": 0
            },
       "duedate": null,
       "status":
            {
             "statusCategory":
                 {
                   "name": "Done",
                   "self": "",
                   "id": 3,
                   "key": "done",
                   "colorName": "green"
                  },
             "description": "",
             "self": "",
             "iconUrl": "",
             "id": "0",
             "name": "DONE"
            },
       "updated": "2018-09-18T10:02:06.347+0300",
       "subtasks": [],
       "description": "Create Enrich entities action using Insights API (IOC search)\\n\\nWrite connector for laerts\\n\\nIn a couple of days we will have access to an instance",
       "reporter":
            {
              "displayName": "user1",
              "name": "user1",
              "self": "",
              "avatarUrls":
                  {
                    "24x24": "",
                    "16x16": "",
                    "48x48": "",
                    "32x32": ""
                   },
              "emailAddress": "john_doe@example.com",
              "key": "user1",
              "active": true,
              "timeZone": "Asia/Jerusalem",
              "accountId": "0"
             },
       "timeoriginalestimate": null,
       "aggregatetimeoriginalestimate": null,
       "created": "2018-06-19T15:23:13.701+0300",
       "versions": [],
       "resolutiondate": "2018-09-18T10:02:06.340+0300",
       "summary": "Sample issue",
       "project":
             {
               "name": "Project 1",
               "self": "",
               "projectTypeKey": "software",
               "avatarUrls":
                    {
                       "24x24": "",
                       "16x16": "",
                       "48x48": "",
                       "32x32": ""
                     },
               "key": "PR",
               "id": "0"
              },
        "timetracking": {},
        "components": [],
        "issuetype":
             {
               "name": "Task",
               "self": "",
               "iconUrl": "",
               "subtask": false,
               "avatarId": 10318,
               "id": "10002",
               "description": "A task that needs to be done."
              },
         "security": null,
         "resolution":
             {
               "id": "10000",
               "self": "",
               "description": "Work has been completed on this issue.",
               "name": "Done"
             },
         "timeestimate": null
 }

Get Issues

Description

Get the details of an issue by keys.

Parameters

Parameter Type Default Value Is Mandatory Description
Issue Keys String N/A Yes The keys of the issues to fetch separated by a comma.

Run On

This action runs on all entities.

Action Results

Script Result
Script Result Name Value Options Example
issues_details_list True/False issues_details_list:False
JSON Result
{
   "comment":
      {
        "total": 0,
        "startAt": 0,
        "comments": [],
        "maxResults": 0
       },
   "creator":
      {
        "displayName": "user1",
        "name": "user1",
        "self": "",
        "avatarUrls":
          {
            "24x24": "",
            "16x16": "",
            "48x48": "",
            "32x32": ""
            },
        "emailAddress": "john_doe@example.com",
        "key": "user1user",
        "active": true,
        "timeZone": "Asia/Jerusalem",
        "accountId": "0"
      },
    "aggregatetimeestimate": null,
    "labels": ["Label1"],
    "aggregatetimespent": null,
    "watches":
      {
        "self": "",
        "watchCount": 1,
        "isWatching": false
      },
     "assignee":
       {
        "displayName": "user2",
        "name": "user2",
        "self": "",
        "avatarUrls":
           {
             "24x24": "",
             "16x16": "",
             "48x48": "",
             "32x32": ""
            },
         "emailAddress": "john_doe@example.com",
         "key": "user2","active": true,
         "timeZone": "Asia/Jerusalem",
         "accountId": ""
        },
      "lastViewed": "2019-01-22T10:14:02.910+0200",
      "issuelinks": [],
      "worklog":
        {
          "worklogs": [],
          "total": 0,
          "startAt": 0,
          "maxResults": 20
         },
      "aggregateprogress":
        {
          "progress": 0,
          "total": 0
         },
      "Priority":
        {
          "iconUrl": "",
          "self": "",
          "name": "Medium",
          "id": "3"
         },
      "Votes":
         {
           "hasVoted": false,
           "self": "",
           "votes": 0
          },
      "workratio": -1,
      "fixVersions": [],
      "environment": null,
      "timespent": null,
      "attachment":
          [{
             "mimeType": "binary/octet-stream",
             "created": "2018-06-19T15:23:07.369+0300",
             "self": "",
             "author":
                {
                  "displayName": "user1",
                  "name": "user1",
                  "self": "",
                  "avatarUrls":
                      {
                        "24x24": "",
                        "16x16": "",
                        "48x48": "",
                        "32x32": ""
                      },
                 "emailAddress": "john_doe@example.com",
                 "key": "user1",
                 "active": true,
                 "timeZone": "Asia/Jerusalem",
                 "accountId": "0"
                 },
             "filename": "file.rar",
             "content": "",
             "id": "0",
             "size": 0
           }],
       "progress":
           {
             "progress": 0,
             "total": 0
            },
       "duedate": null,
       "status":
            {
             "statusCategory":
                 {
                   "name": "Done",
                   "self": "",
                   "id": 3,
                   "key": "done",
                   "colorName": "green"
                  },
             "description": "",
             "self": "",
             "iconUrl": "",
             "id": "0",
             "name": "DONE"
            },
       "updated": "2018-09-18T10:02:06.347+0300",
       "subtasks": [],
       "description": "Create Enrich entities action using Insights API (IOC search)\\n\\nWrite connector for laerts\\n\\nIn a couple of days we will have access to an instance",
       "reporter":
            {
              "displayName": "user1",
              "name": "user1",
              "self": "",
              "avatarUrls":
                  {
                    "24x24": "",
                    "16x16": "",
                    "48x48": "",
                    "32x32": ""
                   },
              "emailAddress": "john_doe@example.com",
              "key": "user1",
              "active": true,
              "timeZone": "Asia/Jerusalem",
              "accountId": "0"
             },
       "timeoriginalestimate": null,
       "aggregatetimeoriginalestimate": null,
       "created": "2018-06-19T15:23:13.701+0300",
       "versions": [],
       "resolutiondate": "2018-09-18T10:02:06.340+0300",
       "summary": "Sample issue",
       "project":
             {
               "name": "Project 1",
               "self": "",
               "projectTypeKey": "software",
               "avatarUrls":
                    {
                       "24x24": "",
                       "16x16": "",
                       "48x48": "",
                       "32x32": ""
                     },
               "key": "PR",
               "id": "0"
              },
        "timetracking": {},
        "components": [],
        "issuetype":
             {
               "name": "Task",
               "self": "",
               "iconUrl": "",
               "subtask": false,
               "avatarId": 10318,
               "id": "10002",
               "description": "A task that needs to be done."
              },
         "security": null,
         "resolution":
             {
               "id": "10000",
               "self": "",
               "description": "Work has been completed on this issue.",
               "name": "Done"
             },
         "timeestimate": null
 }

List Issues

Description

Search for issues.

Parameters

Parameter Type Default Value Is Mandatory Description
Project Names String N/A No The names of the projects to search in, comma-separated.
Summary String N/A No The summary to filter by.
Description String N/A No The description to filter by.
Issue Types String Bug No The issue types to filter by.
Priorities String N/A No The priority to filter by.
Created From String N/A No

The earliest creation date to filter by.

Format: YYYY/MM/DD.

Updated From String N/A No

The earliest update date to filter by.

Format: YYYY/MM/DD.

Assignees String N/A No The name of the assignees to filter by, comma-separated.
Reporter String N/A No The name of the reporters to filter by, comma-separated.
Statuses String N/A No The statuses to filter by, comma-separated.

Run On

This action runs on all entities.

Action Results

Script Result
Script Result Name Value Options Example
issues True/False issues:False
JSON Result
[ "PR-123", "PR-124"]

Ping

Description

Verifies that the user has a connection to Jira through the user's device.

Parameters

This action has no input parameters.

Run On

This action runs on all entities.

Action Results

Script Result
Script Result Name Value Options Example
success True/False success:False
JSON Result
N/A

Update Issue

Description

Update an issue. For the new Jira API, the action tries to find a match for the assignee to assign an issue based on user email, and then tries with the displayName field.

Parameters

Parameter Type Default Value Is Mandatory Description
Issue Key String N/A Yes The key of the issue to update.
Status String N/A No Specify the relevant transition name, to transition this issue to the new desired status.
Summary String N/A No The new summary of the issue.
Description String N/A No The new description of the issue.
Issue Type String N/A No The new type of the issue.
Assignee String N/A No The new assignee of the issue.
Jira Username String N/A No The Jira username of the action initiator.
Components String N/A No

The components field of the issue.

This parameter accepts multiple values as a comma-separated string.

Custom Fields JSON NA No

Specify a JSON object containing all of the fields and values that are used during issue creation.

Note: This parameter has priority and all of the fields are overwritten with the value that is provided for this parameter.

Example: {"field":"value"}

Labels String N/A No

The components field of the issue.

This parameter accepts multiple values as a comma-separated string.

Run On

This action runs on all entities.

Action Results

Script Result
Script Result Name Value Options Example
Success True/False Success:False
JSON Result
{
   "comment":
     {
       "total": 0,
       "startAt": 0,
       "comments": [],
       "maxResults": 0
      },
   "creator":
     {
       "displayName": "user1",
       "name": "user1",
       "self": "",
       "avatarUrls":
          {
            "24x24": "",
            "16x16": "",
            "48x48": "",
            "32x32": ""
           },
        "emailAddress": "john_doe@example.com",
        "key": "user1user",
        "active": true,
        "timeZone": "Asia/Jerusalem",
        "accountId": "0"
       },
   "aggregatetimeestimate": null,
   "labels": ["Label1"],
   "aggregatetimespent": null,
   "watches":
      {
        "self": "",
        "watchCount": 1,
        "isWatching": false
       },
   "assignee":
      {
        "displayName": "user2",
        "name": "user2",
        "self": "",
        "avatarUrls":
           {
              "24x24": "",
              "16x16": "",
              "48x48": "",
              "32x32": ""
            },
        "emailAddress": "john_doe@example.com",
        "key": "user2",
        "active": true,
        "timeZone": "Asia/Jerusalem",
        "accountId": ""
       },
   "lastViewed": "2019-01-22T10:14:02.910+0200",
   "issuelinks": [],
   "Worklog":
      {
        "worklogs": [],
        "total": 0,
        "startAt": 0,
        "maxResults": 20
       },
   "aggregateprogress":
      {
        "progress": 0,
        "total": 0
       },
   "Priority":
      {
        "iconUrl": "",
        "self": "",
        "name": "Medium",
        "id": "3"
       },
   "votes":
       {
          "hasVoted": false,
          "self": "",
          "votes": 0
        },
   "workratio": -1,
   "fixVersions": [],
   "environment": null,
   "timespent": null,
   "attachment":
      [{
          "mimeType": "binary/octet-stream",
          "created": "2018-06-19T15:23:07.369+0300",
          "self": "",
          "author":
             {
               "displayName": "user1",
               "name": "user1",
               "self": "",
               "avatarUrls":
                  {
                     "24x24": "",
                     "16x16": "",
                     "48x48": "",
                     "32x32": ""
                   },
               "emailAddress": "john_doe@example.com",
               "key": "user1",
               "active": true,
               "timeZone": "Asia/Jerusalem",
               "accountId": "0"
              },
           "filename": "file.rar",
           "content": "",
           "id": "0",
           "size": 0
        }],
   "progress":
        {
          "progress": 0,
          "total": 0
         },
   "duedate": null,
   "status":
        {
          "statusCategory":
              {
                 "name": "Done",
                 "self": "",
                 "id": 3,
                 "key": "done",
                 "colorName": "green"
               },
          "description": "",
          "self": "",
          "iconUrl": "",
          "id": "0",
          "name": "DONE"
         },
   "updated": "2018-09-18T10:02:06.347+0300",
   "subtasks": [],
   "description": "Create Enrich entities action using Insights API (IOC search)\\n\\nWrite connector for laerts\\n\\nIn a couple of days we will have access to an instance",
   "reporter":
         {
           "displayName": "user1",
           "name": "user1",
           "self": "",
           "avatarUrls":
               {
                 "24x24": "",
                 "16x16": "",
                 "48x48": "",
                 "32x32": ""
               },
           "emailAddress": "john_doe@example.com",
           "key": "user1",
           "active": true,
           "timeZone": "Asia/Jerusalem",
           "accountId": "0"
          },
    "timeoriginalestimate": null,
    "aggregatetimeoriginalestimate": null,
    "created": "2018-06-19T15:23:13.701+0300",
    "versions": [],
    "resolutiondate": "2018-09-18T10:02:06.340+0300",
    "summary": "Sample issue",
    "project":
          {
             "name": "Project 1",
             "self": "",
             "projectTypeKey": "software",
             "avatarUrls":
                 {
                   "24x24": "",
                   "16x16": "",
                   "48x48": "",
                   "32x32": ""
                  },
             "key": "PR",
             "id": "0"
           },
    "timetracking": {},
    "components": [],
    "issuetype":
          {
             "name": "Task",
             "self": "",
             "iconUrl": "",
             "subtask": false,
             "avatarId": 10318,
             "id": "10002",
             "description": "A task that needs to be done."
           },
    "security": null,
    "resolution":
           {
             "id": "10000",
             "self": "",
             "description": "Work has been completed on this issue.",
              "name": "Done"
             },
    "timeestimate": null
}

Upload Attachment

Description

Add an attachment to an issue.

Parameters

Parameter Type Default Value Is Mandatory Description
Issue Key String N/A Yes File Paths.
File Paths String N/A Yes The paths of the files to upload, comma-separated.

Run On

This action runs on all entities.

Action Results

Script Result
Script Result Name Value Options Example
is_success True/False is_success:False
JSON Result
N/A

Description

Link multiple issues in Jira.

Parameters

Parameter Type Default Value Is Mandatory Description
Inward Issue ID String N/A Yes

Specify a comma-separated list of inward issue IDs.

For example, if the relation type is "Blocks", then in the UI you would see this issue with relation "blocked by".

Outward Issue IDs CSV N/A Yes

Specify the outward issue ID.

For example, if the relation type is "Blocks", then in the UI you would see this issue with relation "blocks".

Relation Type String Blocks Yes Specify the relation type that will be used to link multiple issues. A list of all available relation types is available in the "List Relation Types" action.

Run On

This action doesn't run on entities.

Action Results

Script Result
Script Result Name Value Options Example
is_success True/False is_success:False
JSON Result
N/A
Case Wall
Result Type Value / Description Type
Output message*

The action should not fail nor stop a playbook execution:

If the 201 status code is reported for some issues (is_success = true): "Successfully linked issue "{source issue}" with the following issues in Jira: {destination issues}".

If the 404 status code and the "Issue Does Not Exist" error is reported for one issue (is_success=true): "Action wasn't able to find the following destination issues in Jira: {jira issues that were not found}".

If the 404 status code and the "Issue Does Not Exist" error is reported for all issues (is_success=false): "None of the destination issues were found in Jira."

The action should fail and stop a playbook execution:

If fatal error, like wrong credentials, no connection to server, other is reported: "Error executing action". Reason: {0}''.format(error.Stacktrace)

If source issue is not found: "Error executing action". Reason: source issue "{source issue}" was not found in Jira. Please check the spelling'.

If the 404 status code and it is not the "Issue Does Not Exist"error for at least one: "Error executing action". Reason: {error messages}.

General

List Relation Types

Description

List available relation types in Jira.

Parameters

Parameter Type Default Value Is Mandatory Description
Filter Key DDL

Select One

Possible Values:

  • Name
  • Inward
  • Outward
No Specify the key that needs to be used to filter {item type}.
Filter Logic DDL

Not Specified

Possible Values:

  • Not Specified
  • Equal
  • Contains
No Specify what filter logic should be applied. Filtering logic is working based on the value provided in the "Filter Key" parameter.
Filter Value String N/A No

Specify what value should be used in the filter.

If "Equal" is selected, the action will try to find the exact match among results.

If "Contains" is selected, the action will try to find results that contain the specified substring.

If nothing is provided in this parameter, the filter will not be applied. Filtering logic is working based on the value provided in the "Filter Key" parameter.

Max Records To Return Integer 50 No Specify the number of records to return. If nothing is provided, the action returns 50 records.

Run On

This action doesn't run on entities.

Action Results

Script Result
Script Result Name Value Options Example
is_success True/False is_success:False
JSON Result
[{
    "id": "10000",
    "name": "Blocks",
    "inward": "is blocked by",
    "outward": "blocks",
    "self": "http://172.30.201.69:8080/rest/api/2/issueLinkType/10000"
}]
Case Wall
Result Type Value / Description Type
Output message*

The action should not fail nor stop a playbook execution:

If data is available (is_success = true): "Successfully found relation types for the provided criteria in Jira".

If data is not available (is_success=false): "No relation types were found for the provided criteria in Jira"

If the "Filter Value" parameter is empty (is_success=true): "The filter was not applied, because parameter "Filter Value" has an empty value."

The action should fail and stop a playbook execution:

If the "Filter Key" parameter is set to "Select One" and the "Filter Logic" is set to "Equal" or "Contains": Error executing action "{action name}". Reason: you need to select a field from the "Filter Key" parameter."

If invalid value is provided for Max Records to Return: "Error executing action "{action name}". Reason: "Invalid value was provided for "Max Records to Return": . Positive number should be provided"."

If fatal error, like wrong credentials, no connection to server, other is reported: "Error executing action "{action name}". Reason: {0}''.format(error.Stacktrace)

General
Case Wall Table

Table Name: Available Relation

Table Columns:

  • Name - name
  • Inward - inward
  • Outward - outward
General

Search Users

Search users in Jira.

Entities

This action doesn't run on entities.

Action inputs

To configure the action, use the following parameters:

Parameters
User Email Addresses Optional

Comma-separated list of email addresses to return the users for.

User Names Optional

Comma-separated list of usernames to return the users for.

Project Optional

Name of the project to search email addresses in. If provided, only Project Assignable Users is returned.

Action outputs

Action output type
Case wall attachment N/A
Case wall link N/A
Case wall table N/A
Enrichment table N/A
JSON result Available
Script result Available
Script result
Script result name Value
is_success True/False
JSON result
[
 {
   "Entity": "example",
   "EntityResult": {
     "_resource": "user?accountId={0}",
     "_options": {
       "server": "https://siemplify.atlassian.net",
       "auth_url": "/rest/auth/1/session",
       "context_path": "/",
       "rest_path": "api",
       "rest_api_version": "2",
       "agile_rest_path": "agile",
       "agile_rest_api_version": "1.0",
       "verify": false,
       "resilient": true,
       "async": false,
       "async_workers": 5,
       "client_cert": null,
       "check_update": false,
       "delay_reload": 0,
       "headers": {
         "Cache-Control": "no-cache",
         "Content-Type": "application/json",
         "X-Atlassian-Token": "no-check"
       }
     },
     "_session": "<jira.resilientsession.ResilientSession object>",
     "_base_url": "{server}/rest/{rest_path}/{rest_api_version}/{path}",
     "raw": {
       "self": "https://siemplify.atlassian.net/rest/api/2/user?accountId=example-account-id",
       "accountId": "example-account-id",
       "accountType": "atlassian",
       "emailAddress": "example.user",
       "avatarUrls": {
         "48x48": "https://example.com"
       },
       "displayName": "Example",
       "active": true,
       "timeZone": "UTC",
       "locale": "en_US"
     },
     "self": "https://siemplify.atlassian.net/rest/api/2/user?accountId=example-account-id",
     "accountId": "example-account-id",
     "accountType": "atlassian",
     "emailAddress": "example.user",
     "avatarUrls": "<jira.resources.PropertyHolder object>",
     "displayName": "Example",
     "active": true,
     "timeZone": "UTC",
     "locale": "en_US"
   }
 }
]
Case wall

The action provides the following output messages:

Output message Message description

Successfully found the following users in Jira for project PROJECT_NAME: USER_LIST

The following users were not found in Jira for project PROJECT_NAME: USER_LIST

None of the provided users were found in the project PROJECT_NAME

Action succeeded.
Error executing action "Search Users". Reason: ERROR_REASON

Action failed.

Check connection to the server, input parameters, or credentials.

Connectors

Jira Connector

Description

Fetch issues from Jira to Google Security Operations SOAR.

Configure Jira Connector in Google Security Operations SOAR

For detailed instructions on how to configure a connector in Google Security Operations SOAR, see Configuring the connector.

Connector parameters

Use the following parameters to configure the connector:

Parameter Type Default Value Is Mandatory Description
DeviceProductField String device_product Yes The field name used to determine the device product.
EventClassId String name No The field name used to determine the event name (sub-type).
PythonProcessTimeout String 60 Yes The timeout limit (in seconds) for the python process running current script.
API Root String https://{jira_address} Yes The API root of the Jira instance.
Username String N/A Yes N/A
API Token Password N/A Yes

Token generated in the Jira console.

Note: This parameter can be used to contain the "Password" string in case of On-prem authentication, using username and password combination

Days Backwards Integer 5 No Max number of days backwards to pull alerts from.
Max Tickets Per Cycle Integer 10 No Max tickets to fetch and process in one connector cycle.
Project Names String N/A No Project names separated by a comma.
Issue Statuses String N/A No Issues' statuses separated by a comma.
Assignees String N/A No Users' full names separated by a comma.
Issue Types String N/A No Issue types separated by a comma.
Issue Priorities String N/A No Issue priorities separated by a comma.
Issue Components String N/A No Issue components separated by a comma.
Proxy Server Address String N/A No The address of the proxy server to use.
Proxy Username String N/A No The proxy username to authenticate with.
Proxy Password Password N/A No The proxy password to authenticate with.
Environment Field Name String "" No

Describes the name of the field where the environment name is stored.

If the environment field isn't found, the environment is the default environment.

Environment Regex Pattern String .* No

A regex pattern to run on the value found in the "Environment Field Name" field.

Default is .* to catch all and return the value unchanged.

Used to allow the user to manipulate the environment field via regex logic.

If the regex pattern is null or empty, or the environment value is null, the final environment result is the default environment.

Connector Rules

Proxy Support

The connector supports proxy.

Dynamic list and blocklist

The connector supports dynamic list and blocklist rules only for specific labels inside Jira.

Jobs

Sync Closure Job

Description

Close tickets in Jira if corresponding Google Security Operations SOAR alerts were closed.

Parameters

Parameter Display Name Type Default Value Is Mandatory Description
API Root String https://{jira_address} Yes Jira instance api root url.
Username String N/A Yes Username to connect to Jira instance.
API Token Password N/A Yes

Token generated in the Jira console.

Note: This parameter can be used to contain the "Password" string in case of On-prem authentication, using username and password combination

Project Names String project names separated by a comma Yes Jira project names separated by a comma that job should monitor.
Max Days Backwards Integer 1 Yes Maximum number of days to sync tickets status backward.

Sync Comments Job

Description

Sync comments between the Google Security Operations SOAR case and the corresponding Jira ticket. Synchronizing is bidirectional—that is, from Google Security Operations SOAR to Jira and from Jira to Google Security Operations SOAR.

This job supports Google Security Operations SOAR cases with the Jira tag only.

When the job creates a comment, it applies the prefix. If a Google Security Operations SOAR user comments in the Google Security Operations SOAR case, the job creates and synchronizes the user comment in the corresponding Jira ticket using the Chronicle Comment Prefix parameter.

This feature is added for two purposes:

  1. Visibility.
  2. Prevent comments added by the job from being synced again to the other side, and cause a loop.

Parameters

Parameter Display Name Type Default Value Is Mandatory Description
API Root String https://{jira_address} Yes Jira instance api root url.
Username String N/A Yes Username to connect to Jira instance.
API Token Password N/A Yes

Token generated in the Jira console.

Note: This parameter can be used to contain the "Password" string in case of On-prem authentication, using username and password combination

Project Names String project names separated by comma Yes Jira project names separated by comma that job should monitor.
Max Days Backwards Integer 1 Yes Maximum number of days to sync tickets status backwards.
Siemplify Comment Prefix String SIEMPLIFY: Yes Prefix that is added by the sync job to comments created for Jira tickets.
Jira Comment Prefix String Jira Comment Sync Job: Yes Prefix that is added by the sync job to the Google Security Operations SOAR alert case comments.