Open Context Protocol is live! 🚀 Read the launch post

createDashboard

Create dashboard

Details

  • Method: POST
  • Path: /rest/api/3/dashboard
  • Operation ID: createDashboard

Parameters

{
  "extendAdminPermissions": {
    "description": "Whether admin level permissions are used. It should only be true if the user has *Administer Jira* [global permission](https://confluence.atlassian.com/x/x4dKLg)",
    "required": false,
    "location": "query",
    "type": "boolean"
  },
  "description": {
    "description": "The description of the dashboard.",
    "required": false,
    "location": "body",
    "type": "string"
  },
  "editPermissions": {
    "description": "The edit permissions for the dashboard.",
    "required": true,
    "location": "body",
    "type": "array"
  },
  "name": {
    "description": "The name of the dashboard.",
    "required": true,
    "location": "body",
    "type": "string"
  },
  "sharePermissions": {
    "description": "The share permissions for the dashboard.",
    "required": true,
    "location": "body",
    "type": "array"
  }
}

Response Schema

{
  "additionalProperties": false,
  "description": "Details of a dashboard.",
  "properties": {
    "automaticRefreshMs": {
      "description": "The automatic refresh interval for the dashboard in milliseconds.",
      "format": "int32",
      "readOnly": true,
      "type": "integer"
    },
    "description": {
      "type": "string"
    },
    "editPermissions": {
      "description": "The details of any edit share permissions for the dashboard.",
      "items": {
        "additionalProperties": false,
        "description": "Details of a share permission for the filter.",
        "properties": {
          "group": {
            "allOf": [
              {
                "$ref": "#/components/schemas/GroupName"
              }
            ],
            "description": "The group that the filter is shared with. For a request, specify the `groupId` or `name` property for the group. As a group's name can change, use of `groupId` is recommended."
          },
          "id": {
            "description": "The unique identifier of the share permission.",
            "format": "int64",
            "readOnly": true,
            "type": "integer"
          },
          "project": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Project"
              }
            ],
            "description": "The project that the filter is shared with. This is similar to the project object returned by [Get project](#api-rest-api-3-project-projectIdOrKey-get) but it contains a subset of the properties, which are: `self`, `id`, `key`, `assigneeType`, `name`, `roles`, `avatarUrls`, `projectType`, `simplified`.  \nFor a request, specify the `id` for the project."
          },
          "role": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ProjectRole"
              }
            ],
            "description": "The project role that the filter is shared with.  \nFor a request, specify the `id` for the role. You must also specify the `project` object and `id` for the project that the role is in."
          },
          "type": {
            "description": "The type of share permission:\n\n *  `user` Shared with a user.\n *  `group` Shared with a group. If set in a request, then specify `sharePermission.group` as well.\n *  `project` Shared with a project. If set in a request, then specify `sharePermission.project` as well.\n *  `projectRole` Share with a project role in a project. This value is not returned in responses. It is used in requests, where it needs to be specify with `projectId` and `projectRoleId`.\n *  `global` Shared globally. If set in a request, no other `sharePermission` properties need to be specified.\n *  `loggedin` Shared with all logged-in users. Note: This value is set in a request by specifying `authenticated` as the `type`.\n *  `project-unknown` Shared with a project that the user does not have access to. Cannot be set in a request.",
            "enum": [
              "user",
              "group",
              "project",
              "projectRole",
              "global",
              "loggedin",
              "authenticated",
              "project-unknown"
            ],
            "type": "string"
          },
          "user": {
            "allOf": [
              {
                "$ref": "#/components/schemas/UserBean"
              }
            ],
            "description": "The user account ID that the filter is shared with. For a request, specify the `accountId` property for the user."
          }
        },
        "required": [
          "type"
        ],
        "type": "object"
      },
      "readOnly": true,
      "type": "array"
    },
    "id": {
      "description": "The ID of the dashboard.",
      "readOnly": true,
      "type": "string"
    },
    "isFavourite": {
      "description": "Whether the dashboard is selected as a favorite by the user.",
      "readOnly": true,
      "type": "boolean"
    },
    "isWritable": {
      "description": "Whether the current user has permission to edit the dashboard.",
      "readOnly": true,
      "type": "boolean"
    },
    "name": {
      "description": "The name of the dashboard.",
      "readOnly": true,
      "type": "string"
    },
    "owner": {
      "allOf": [
        {
          "$ref": "#/components/schemas/UserBean"
        }
      ],
      "description": "The owner of the dashboard.",
      "readOnly": true
    },
    "popularity": {
      "description": "The number of users who have this dashboard as a favorite.",
      "format": "int64",
      "readOnly": true,
      "type": "integer"
    },
    "rank": {
      "description": "The rank of this dashboard.",
      "format": "int32",
      "readOnly": true,
      "type": "integer"
    },
    "self": {
      "description": "The URL of these dashboard details.",
      "format": "uri",
      "readOnly": true,
      "type": "string"
    },
    "sharePermissions": {
      "description": "The details of any view share permissions for the dashboard.",
      "items": {
        "additionalProperties": false,
        "description": "Details of a share permission for the filter.",
        "properties": {
          "group": {
            "allOf": [
              {
                "$ref": "#/components/schemas/GroupName"
              }
            ],
            "description": "The group that the filter is shared with. For a request, specify the `groupId` or `name` property for the group. As a group's name can change, use of `groupId` is recommended."
          },
          "id": {
            "description": "The unique identifier of the share permission.",
            "format": "int64",
            "readOnly": true,
            "type": "integer"
          },
          "project": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Project"
              }
            ],
            "description": "The project that the filter is shared with. This is similar to the project object returned by [Get project](#api-rest-api-3-project-projectIdOrKey-get) but it contains a subset of the properties, which are: `self`, `id`, `key`, `assigneeType`, `name`, `roles`, `avatarUrls`, `projectType`, `simplified`.  \nFor a request, specify the `id` for the project."
          },
          "role": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ProjectRole"
              }
            ],
            "description": "The project role that the filter is shared with.  \nFor a request, specify the `id` for the role. You must also specify the `project` object and `id` for the project that the role is in."
          },
          "type": {
            "description": "The type of share permission:\n\n *  `user` Shared with a user.\n *  `group` Shared with a group. If set in a request, then specify `sharePermission.group` as well.\n *  `project` Shared with a project. If set in a request, then specify `sharePermission.project` as well.\n *  `projectRole` Share with a project role in a project. This value is not returned in responses. It is used in requests, where it needs to be specify with `projectId` and `projectRoleId`.\n *  `global` Shared globally. If set in a request, no other `sharePermission` properties need to be specified.\n *  `loggedin` Shared with all logged-in users. Note: This value is set in a request by specifying `authenticated` as the `type`.\n *  `project-unknown` Shared with a project that the user does not have access to. Cannot be set in a request.",
            "enum": [
              "user",
              "group",
              "project",
              "projectRole",
              "global",
              "loggedin",
              "authenticated",
              "project-unknown"
            ],
            "type": "string"
          },
          "user": {
            "allOf": [
              {
                "$ref": "#/components/schemas/UserBean"
              }
            ],
            "description": "The user account ID that the filter is shared with. For a request, specify the `accountId` property for the user."
          }
        },
        "required": [
          "type"
        ],
        "type": "object"
      },
      "readOnly": true,
      "type": "array"
    },
    "systemDashboard": {
      "description": "Whether the current dashboard is system dashboard.",
      "readOnly": true,
      "type": "boolean"
    },
    "view": {
      "description": "The URL of the dashboard.",
      "readOnly": true,
      "type": "string"
    }
  },
  "type": "object"
}

Usage

from ocp_agent import OCPAgent

agent = OCPAgent()
await agent.register_api('jira')

# Call this tool
result = await agent.call_tool('createDashboard', {
    # Add required parameters here
})