{
  "service": "pagerduty",
  "displayName": "PagerDuty",
  "categories": [
    "Developer Tools"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Token",
      "placeholder": "pdus+...",
      "description": "PagerDuty REST API token used with the Authorization Token header. Create or view REST API tokens from PagerDuty Integrations > API Access Keys: https://support.pagerduty.com/main/docs/api-access-keys.",
      "extraFields": []
    }
  ],
  "homepageUrl": "https://www.pagerduty.com",
  "actions": [
    {
      "id": "pagerduty.acknowledge_incident",
      "service": "pagerduty",
      "name": "acknowledge_incident",
      "description": "Acknowledge a PagerDuty incident as the specified user.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "incident_id": {
            "type": "string",
            "minLength": 1,
            "description": "PagerDuty resource ID."
          },
          "from": {
            "type": "string",
            "description": "Email address of the PagerDuty user acknowledging the incident. PagerDuty requires this header for write operations.",
            "format": "email"
          }
        },
        "additionalProperties": false,
        "description": "Incident acknowledgement request."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "incident": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "PagerDuty incident record."
          }
        },
        "additionalProperties": false,
        "description": "Updated PagerDuty incident."
      }
    },
    {
      "id": "pagerduty.get_current_user",
      "service": "pagerduty",
      "name": "get_current_user",
      "description": "Get the PagerDuty user associated with the API token.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "This action does not require any input fields."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "user": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1,
                "description": "PagerDuty resource ID."
              },
              "type": {
                "type": "string",
                "description": "PagerDuty user reference type."
              },
              "summary": {
                "type": "string",
                "description": "User display summary."
              },
              "self": {
                "type": "string",
                "description": "API URL for the user.",
                "format": "uri"
              },
              "html_url": {
                "type": "string",
                "description": "Web URL for the user.",
                "format": "uri"
              }
            },
            "additionalProperties": true,
            "description": "PagerDuty user reference."
          }
        },
        "additionalProperties": false,
        "description": "PagerDuty current user lookup result."
      }
    },
    {
      "id": "pagerduty.get_incident",
      "service": "pagerduty",
      "name": "get_incident",
      "description": "Get a PagerDuty incident by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "incident_id": {
            "type": "string",
            "minLength": 1,
            "description": "PagerDuty resource ID."
          },
          "include": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "services",
                "assignees",
                "first_trigger_log_entries",
                "escalation_policies",
                "teams",
                "priority"
              ],
              "description": "Incident include option."
            },
            "description": "Related incident records to include."
          }
        },
        "additionalProperties": false,
        "required": [
          "incident_id"
        ],
        "description": "Incident lookup request."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "incident": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "PagerDuty incident record."
          }
        },
        "additionalProperties": false,
        "description": "PagerDuty incident lookup result."
      }
    },
    {
      "id": "pagerduty.list_incidents",
      "service": "pagerduty",
      "name": "list_incidents",
      "description": "List PagerDuty incidents with status, service, assignment, and paging filters.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "statuses": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "triggered",
                "acknowledged",
                "resolved"
              ],
              "description": "Incident status."
            },
            "description": "Only return incidents with these statuses."
          },
          "since": {
            "type": "string",
            "description": "Start of the incident time range in ISO 8601 format."
          },
          "until": {
            "type": "string",
            "description": "End of the incident time range in ISO 8601 format."
          },
          "service_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "PagerDuty resource ID."
            },
            "description": "Only return incidents for these service IDs."
          },
          "team_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "PagerDuty resource ID."
            },
            "description": "Only return results for these team IDs."
          },
          "user_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "PagerDuty resource ID."
            },
            "description": "Only return results for these user IDs."
          },
          "urgencies": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "high",
                "low"
              ],
              "description": "Incident urgency."
            },
            "description": "Only return incidents with these urgencies."
          },
          "sort_by": {
            "type": "string",
            "enum": [
              "incident_number:asc",
              "incident_number:desc",
              "created_at:asc",
              "created_at:desc",
              "resolved_at:asc",
              "resolved_at:desc",
              "urgency:asc",
              "urgency:desc"
            ],
            "description": "PagerDuty incident sort order."
          },
          "include": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "services",
                "assignees",
                "first_trigger_log_entries",
                "escalation_policies",
                "teams",
                "priority"
              ],
              "description": "Incident include option."
            },
            "description": "Related incident records to include."
          },
          "total": {
            "type": "boolean",
            "description": "Whether PagerDuty should include total matching record count."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Maximum number of records to return."
          },
          "offset": {
            "type": "integer",
            "minimum": 0,
            "description": "Zero-based offset for paginated results."
          }
        },
        "additionalProperties": false,
        "description": "Incident list filters."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "incidents": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "PagerDuty incident record."
            },
            "description": "PagerDuty incidents returned by the query."
          },
          "pagination": {
            "type": "object",
            "properties": {
              "limit": {
                "type": "integer",
                "description": "Maximum number of records requested."
              },
              "offset": {
                "type": "integer",
                "description": "Offset used for this page."
              },
              "more": {
                "type": "boolean",
                "description": "Whether PagerDuty has another page after this response."
              },
              "total": {
                "type": "integer",
                "description": "Total matching records when PagerDuty includes it."
              }
            },
            "additionalProperties": false,
            "required": [
              "limit",
              "offset",
              "more"
            ],
            "description": "PagerDuty pagination metadata."
          }
        },
        "additionalProperties": false,
        "description": "PagerDuty incident list."
      }
    },
    {
      "id": "pagerduty.list_on_calls",
      "service": "pagerduty",
      "name": "list_on_calls",
      "description": "List PagerDuty on-call assignments by user, schedule, or escalation policy.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "user_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "PagerDuty resource ID."
            },
            "description": "Only return results for these user IDs."
          },
          "escalation_policy_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "PagerDuty resource ID."
            },
            "description": "Only return results for these escalation policy IDs."
          },
          "schedule_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "PagerDuty resource ID."
            },
            "description": "Only return results for these schedule IDs."
          },
          "since": {
            "type": "string",
            "description": "Start of the on-call time range in ISO 8601 format."
          },
          "until": {
            "type": "string",
            "description": "End of the on-call time range in ISO 8601 format."
          },
          "earliest": {
            "type": "boolean",
            "description": "Only return the earliest on-call assignment per escalation policy."
          },
          "include": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "users",
                "schedules",
                "escalation_policies"
              ],
              "description": "On-call include option."
            },
            "description": "Related on-call records to include."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Maximum number of records to return."
          },
          "offset": {
            "type": "integer",
            "minimum": 0,
            "description": "Zero-based offset for paginated results."
          }
        },
        "additionalProperties": false,
        "description": "On-call list filters."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "onCalls": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "escalation_level": {
                  "type": "integer",
                  "description": "Escalation level for this on-call assignment."
                },
                "start": {
                  "type": "string",
                  "description": "Timestamp in ISO 8601 format."
                },
                "end": {
                  "type": "string",
                  "description": "Timestamp in ISO 8601 format."
                },
                "user": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "minLength": 1,
                      "description": "PagerDuty resource ID."
                    },
                    "type": {
                      "type": "string",
                      "description": "PagerDuty user reference type."
                    },
                    "summary": {
                      "type": "string",
                      "description": "User display summary."
                    },
                    "self": {
                      "type": "string",
                      "description": "API URL for the user.",
                      "format": "uri"
                    },
                    "html_url": {
                      "type": "string",
                      "description": "Web URL for the user.",
                      "format": "uri"
                    }
                  },
                  "additionalProperties": true,
                  "description": "PagerDuty user reference."
                },
                "escalation_policy": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "minLength": 1,
                      "description": "PagerDuty resource ID."
                    },
                    "type": {
                      "type": "string",
                      "description": "PagerDuty escalation policy reference type."
                    },
                    "summary": {
                      "type": "string",
                      "description": "Escalation policy display summary."
                    },
                    "self": {
                      "type": "string",
                      "description": "API URL for the escalation policy.",
                      "format": "uri"
                    },
                    "html_url": {
                      "type": "string",
                      "description": "Web URL for the escalation policy.",
                      "format": "uri"
                    }
                  },
                  "additionalProperties": true,
                  "description": "PagerDuty escalation policy reference."
                }
              },
              "additionalProperties": true,
              "description": "PagerDuty on-call entry."
            },
            "description": "PagerDuty on-call entries returned by the query."
          },
          "pagination": {
            "type": "object",
            "properties": {
              "limit": {
                "type": "integer",
                "description": "Maximum number of records requested."
              },
              "offset": {
                "type": "integer",
                "description": "Offset used for this page."
              },
              "more": {
                "type": "boolean",
                "description": "Whether PagerDuty has another page after this response."
              },
              "total": {
                "type": "integer",
                "description": "Total matching records when PagerDuty includes it."
              }
            },
            "additionalProperties": false,
            "required": [
              "limit",
              "offset",
              "more"
            ],
            "description": "PagerDuty pagination metadata."
          }
        },
        "additionalProperties": false,
        "description": "PagerDuty on-call list."
      }
    },
    {
      "id": "pagerduty.resolve_incident",
      "service": "pagerduty",
      "name": "resolve_incident",
      "description": "Resolve a PagerDuty incident as the specified user.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "incident_id": {
            "type": "string",
            "minLength": 1,
            "description": "PagerDuty resource ID."
          },
          "from": {
            "type": "string",
            "description": "Email address of the PagerDuty user resolving the incident. PagerDuty requires this header for write operations.",
            "format": "email"
          },
          "resolution": {
            "type": "string",
            "minLength": 1,
            "description": "Optional resolution note for the incident."
          }
        },
        "additionalProperties": false,
        "required": [
          "incident_id",
          "from"
        ],
        "description": "Incident resolution request."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "incident": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "PagerDuty incident record."
          }
        },
        "additionalProperties": false,
        "description": "Updated PagerDuty incident."
      }
    },
    {
      "id": "pagerduty.update_incident",
      "service": "pagerduty",
      "name": "update_incident",
      "description": "Update mutable PagerDuty incident fields such as title, urgency, or status.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "incident_id": {
            "type": "string",
            "minLength": 1,
            "description": "PagerDuty resource ID."
          },
          "from": {
            "type": "string",
            "description": "Email address of the PagerDuty user performing the incident mutation. PagerDuty requires this header for write operations.",
            "format": "email"
          },
          "incident": {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "minLength": 1,
                "description": "PagerDuty incident object type."
              },
              "status": {
                "type": "string",
                "enum": [
                  "triggered",
                  "acknowledged",
                  "resolved"
                ],
                "description": "Incident status."
              },
              "title": {
                "type": "string",
                "minLength": 1,
                "description": "New incident title."
              },
              "urgency": {
                "type": "string",
                "enum": [
                  "high",
                  "low"
                ],
                "description": "Incident urgency."
              },
              "escalation_level": {
                "type": "integer",
                "minimum": 1,
                "description": "Escalation level for the incident."
              },
              "priority_id": {
                "type": "string",
                "minLength": 1,
                "description": "PagerDuty resource ID."
              },
              "resolution": {
                "type": "string",
                "minLength": 1,
                "description": "Resolution note for the incident."
              }
            },
            "additionalProperties": false,
            "description": "Incident mutation fields."
          }
        },
        "additionalProperties": false,
        "description": "Incident mutation request."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "incident": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "PagerDuty incident record."
          }
        },
        "additionalProperties": false,
        "description": "Updated PagerDuty incident."
      }
    }
  ]
}
