{
  "name": "CreateEscalationPolicy",
  "fully_qualified_name": "PagerdutyApi.CreateEscalationPolicy@2.0.0",
  "description": "Create a new escalation policy in PagerDuty.\n\nUse this tool to create a new escalation policy on PagerDuty. Escalation policies are used to determine which users are alerted and when. At least one escalation rule must be included. Requires OAuth scope: 'escalation_policies.write'.",
  "toolkit": {
    "name": "ArcadePagerdutyApi",
    "description": null,
    "version": "2.0.0"
  },
  "input": {
    "parameters": [
      {
        "name": "accept_version_header",
        "required": true,
        "description": "Specifies the API version using the 'Accept' header format for proper versioning.",
        "value_schema": {
          "val_type": "string",
          "inner_val_type": null,
          "enum": null,
          "properties": null,
          "inner_properties": null,
          "description": "The `Accept` header is used as a versioning header."
        },
        "inferrable": true,
        "http_endpoint_parameter_name": "Accept"
      },
      {
        "name": "content_type_header",
        "required": true,
        "description": "Specifies the MIME type of the request body. Use 'application/json' for JSON data.",
        "value_schema": {
          "val_type": "string",
          "inner_val_type": null,
          "enum": [
            "application/json"
          ],
          "properties": null,
          "inner_properties": null,
          "description": ""
        },
        "inferrable": true,
        "http_endpoint_parameter_name": "Content-Type"
      },
      {
        "name": "change_tracking_user_email",
        "required": false,
        "description": "The optional email address of a user for change tracking. Must be associated with the account making the request.",
        "value_schema": {
          "val_type": "string",
          "inner_val_type": null,
          "enum": null,
          "properties": null,
          "inner_properties": null,
          "description": "The email address of a valid user associated with the account making the request. This is optional, and is only used for change tracking."
        },
        "inferrable": true,
        "http_endpoint_parameter_name": "From"
      },
      {
        "name": "escalation_policy",
        "required": false,
        "description": "JSON object detailing the escalation policy to be created. Must include at least one escalation rule.",
        "value_schema": {
          "val_type": "json",
          "inner_val_type": null,
          "enum": null,
          "properties": {
            "escalation_policy": {
              "val_type": "json",
              "inner_val_type": null,
              "enum": null,
              "properties": null,
              "inner_properties": null,
              "description": null
            }
          },
          "inner_properties": null,
          "description": "The escalation policy to be created."
        },
        "inferrable": true,
        "http_endpoint_parameter_name": "requestBody"
      }
    ]
  },
  "output": {
    "description": "Response from the API endpoint 'createEscalationPolicy'.",
    "available_modes": [
      "value",
      "error",
      "null"
    ],
    "value_schema": {
      "val_type": "json",
      "inner_val_type": null,
      "enum": null,
      "properties": null,
      "inner_properties": null,
      "description": null
    }
  },
  "requirements": {
    "authorization": {
      "provider_id": "arcade-pagerduty",
      "provider_type": "oauth2",
      "id": null,
      "oauth2": null
    },
    "secrets": null,
    "metadata": null
  },
  "deprecation_message": null,
  "metadata": {
    "object_type": "api_wrapper_tool",
    "version": "1.1.0",
    "description": "Tools that enable LLMs to interact directly with the Pagerduty API."
  },
  "http_endpoint": {
    "metadata": {
      "object_type": "http_endpoint",
      "version": "1.2.0",
      "description": ""
    },
    "url": "https://api.pagerduty.com/escalation_policies",
    "http_method": "POST",
    "headers": {},
    "parameters": [
      {
        "name": "Accept",
        "tool_parameter_name": "accept_version_header",
        "description": "The `Accept` header is used as a versioning header.",
        "value_schema": {
          "val_type": "string",
          "inner_val_type": null,
          "enum": null,
          "properties": null,
          "inner_properties": null,
          "description": "The `Accept` header is used as a versioning header."
        },
        "accepted_as": "header",
        "required": true,
        "deprecated": false,
        "default": "application/vnd.pagerduty+json;version=2",
        "documentation_urls": []
      },
      {
        "name": "Content-Type",
        "tool_parameter_name": "content_type_header",
        "description": "",
        "value_schema": {
          "val_type": "string",
          "inner_val_type": null,
          "enum": [
            "application/json"
          ],
          "properties": null,
          "inner_properties": null,
          "description": ""
        },
        "accepted_as": "header",
        "required": true,
        "deprecated": false,
        "default": "application/json",
        "documentation_urls": []
      },
      {
        "name": "From",
        "tool_parameter_name": "change_tracking_user_email",
        "description": "The email address of a valid user associated with the account making the request. This is optional, and is only used for change tracking.",
        "value_schema": {
          "val_type": "string",
          "inner_val_type": null,
          "enum": null,
          "properties": null,
          "inner_properties": null,
          "description": "The email address of a valid user associated with the account making the request. This is optional, and is only used for change tracking."
        },
        "accepted_as": "header",
        "required": false,
        "deprecated": false,
        "default": null,
        "documentation_urls": []
      },
      {
        "name": "requestBody",
        "tool_parameter_name": "escalation_policy",
        "description": "The escalation policy to be created.",
        "value_schema": {
          "val_type": "json",
          "inner_val_type": null,
          "enum": null,
          "properties": {
            "escalation_policy": {
              "val_type": "json",
              "inner_val_type": null,
              "enum": null,
              "properties": null,
              "inner_properties": null,
              "description": null
            }
          },
          "inner_properties": null,
          "description": "The escalation policy to be created."
        },
        "accepted_as": "body",
        "required": false,
        "deprecated": false,
        "default": null,
        "documentation_urls": []
      }
    ],
    "documentation_urls": [],
    "secrets": [
      {
        "arcade_key": "auth_token",
        "parameter_name": "Authorization",
        "accepted_as": "header",
        "formatted_value": "Bearer {authorization}",
        "description": "The OAuth token to use for authentication.",
        "is_auth_token": true
      }
    ],
    "request_body_spec": "{\n  \"content\": {\n    \"application/json\": {\n      \"schema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"escalation_policy\": {\n            \"allOf\": [\n              {\n                \"type\": \"object\",\n                \"properties\": {\n                  \"id\": {\n                    \"type\": \"string\",\n                    \"readOnly\": true\n                  },\n                  \"summary\": {\n                    \"type\": \"string\",\n                    \"nullable\": true,\n                    \"readOnly\": true,\n                    \"description\": \"A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier.\"\n                  },\n                  \"type\": {\n                    \"type\": \"string\",\n                    \"readOnly\": true,\n                    \"description\": \"A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference.\"\n                  },\n                  \"self\": {\n                    \"type\": \"string\",\n                    \"nullable\": true,\n                    \"readOnly\": true,\n                    \"format\": \"url\",\n                    \"description\": \"the API show URL at which the object is accessible\"\n                  },\n                  \"html_url\": {\n                    \"type\": \"string\",\n                    \"nullable\": true,\n                    \"readOnly\": true,\n                    \"format\": \"url\",\n                    \"description\": \"a URL at which the entity is uniquely displayed in the Web app\"\n                  }\n                }\n              },\n              {\n                \"type\": \"object\",\n                \"properties\": {\n                  \"type\": {\n                    \"type\": \"string\",\n                    \"description\": \"The type of object being created.\",\n                    \"default\": \"escalation_policy\",\n                    \"enum\": [\n                      \"escalation_policy\"\n                    ]\n                  },\n                  \"name\": {\n                    \"type\": \"string\",\n                    \"description\": \"The name of the escalation policy.\"\n                  },\n                  \"description\": {\n                    \"type\": \"string\",\n                    \"description\": \"Escalation policy description.\"\n                  },\n                  \"num_loops\": {\n                    \"type\": \"integer\",\n                    \"description\": \"The number of times the escalation policy will repeat after reaching the end of its escalation.\",\n                    \"default\": 0,\n                    \"minimum\": 0\n                  },\n                  \"on_call_handoff_notifications\": {\n                    \"type\": \"string\",\n                    \"description\": \"Determines how on call handoff notifications will be sent for users on the escalation policy. Defaults to \\\"if_has_services\\\".\",\n                    \"enum\": [\n                      \"if_has_services\",\n                      \"always\"\n                    ]\n                  },\n                  \"escalation_rules\": {\n                    \"type\": \"array\",\n                    \"items\": {\n                      \"type\": \"object\",\n                      \"properties\": {\n                        \"id\": {\n                          \"type\": \"string\",\n                          \"readOnly\": true\n                        },\n                        \"escalation_delay_in_minutes\": {\n                          \"type\": \"integer\",\n                          \"description\": \"The number of minutes before an unacknowledged incident escalates away from this rule.\"\n                        },\n                        \"targets\": {\n                          \"type\": \"array\",\n                          \"minItems\": 1,\n                          \"maxItems\": 10,\n                          \"description\": \"The targets an incident should be assigned to upon reaching this rule.\",\n                          \"items\": {\n                            \"allOf\": [\n                              {\n                                \"allOf\": [\n                                  {\n                                    \"type\": \"object\",\n                                    \"properties\": {\n                                      \"id\": {\n                                        \"type\": \"string\",\n                                        \"readOnly\": true\n                                      },\n                                      \"summary\": {\n                                        \"type\": \"string\",\n                                        \"nullable\": true,\n                                        \"readOnly\": true,\n                                        \"description\": \"A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier.\"\n                                      },\n                                      \"type\": {\n                                        \"type\": \"string\",\n                                        \"readOnly\": true,\n                                        \"description\": \"A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference.\"\n                                      },\n                                      \"self\": {\n                                        \"type\": \"string\",\n                                        \"nullable\": true,\n                                        \"readOnly\": true,\n                                        \"format\": \"url\",\n                                        \"description\": \"the API show URL at which the object is accessible\"\n                                      },\n                                      \"html_url\": {\n                                        \"type\": \"string\",\n                                        \"nullable\": true,\n                                        \"readOnly\": true,\n                                        \"format\": \"url\",\n                                        \"description\": \"a URL at which the entity is uniquely displayed in the Web app\"\n                                      }\n                                    }\n                                  },\n                                  {\n                                    \"type\": \"object\",\n                                    \"required\": [\n                                      \"type\",\n                                      \"id\"\n                                    ]\n                                  }\n                                ]\n                              },\n                              {\n                                \"type\": \"object\",\n                                \"description\": \"The escalation target is the entity that will be assigned an incident upon escalation.\",\n                                \"properties\": {\n                                  \"type\": {\n                                    \"enum\": [\n                                      \"user\",\n                                      \"schedule\",\n                                      \"user_reference\",\n                                      \"schedule_reference\"\n                                    ],\n                                    \"type\": \"string\"\n                                  }\n                                }\n                              }\n                            ]\n                          }\n                        },\n                        \"escalation_rule_assignment_strategy\": {\n                          \"type\": \"string\",\n                          \"description\": \"The strategy used to assign the escalation rule to an incident.\",\n                          \"enum\": [\n                            \"round_robin\",\n                            \"assign_to_everyone\"\n                          ]\n                        }\n                      },\n                      \"required\": [\n                        \"escalation_delay_in_minutes\",\n                        \"targets\"\n                      ],\n                      \"example\": {\n                        \"escalation_delay_in_minutes\": 30,\n                        \"targets\": [\n                          {\n                            \"id\": \"PAM4FGS\",\n                            \"type\": \"user_reference\"\n                          },\n                          {\n                            \"id\": \"PI7DH85\",\n                            \"type\": \"schedule_reference\"\n                          }\n                        ]\n                      }\n                    }\n                  },\n                  \"services\": {\n                    \"type\": \"array\",\n                    \"items\": {\n                      \"allOf\": [\n                        {\n                          \"allOf\": [\n                            {\n                              \"type\": \"object\",\n                              \"properties\": {\n                                \"id\": {\n                                  \"type\": \"string\",\n                                  \"readOnly\": true\n                                },\n                                \"summary\": {\n                                  \"type\": \"string\",\n                                  \"nullable\": true,\n                                  \"readOnly\": true,\n                                  \"description\": \"A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier.\"\n                                },\n                                \"type\": {\n                                  \"type\": \"string\",\n                                  \"readOnly\": true,\n                                  \"description\": \"A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference.\"\n                                },\n                                \"self\": {\n                                  \"type\": \"string\",\n                                  \"nullable\": true,\n                                  \"readOnly\": true,\n                                  \"format\": \"url\",\n                                  \"description\": \"the API show URL at which the object is accessible\"\n                                },\n                                \"html_url\": {\n                                  \"type\": \"string\",\n                                  \"nullable\": true,\n                                  \"readOnly\": true,\n                                  \"format\": \"url\",\n                                  \"description\": \"a URL at which the entity is uniquely displayed in the Web app\"\n                                }\n                              }\n                            },\n                            {\n                              \"type\": \"object\",\n                              \"required\": [\n                                \"type\",\n                                \"id\"\n                              ]\n                            }\n                          ]\n                        },\n                        {\n                          \"type\": \"object\",\n                          \"properties\": {\n                            \"type\": {\n                              \"type\": \"string\",\n                              \"enum\": [\n                                \"service_reference\"\n                              ]\n                            }\n                          }\n                        }\n                      ]\n                    },\n                    \"minLength\": 0,\n                    \"readOnly\": true\n                  },\n                  \"teams\": {\n                    \"type\": \"array\",\n                    \"description\": \"Team associated with the policy. Account must have the `teams` ability to use this parameter. Only one team may be associated with the policy.\",\n                    \"items\": {\n                      \"allOf\": [\n                        {\n                          \"allOf\": [\n                            {\n                              \"type\": \"object\",\n                              \"properties\": {\n                                \"id\": {\n                                  \"type\": \"string\",\n                                  \"readOnly\": true\n                                },\n                                \"summary\": {\n                                  \"type\": \"string\",\n                                  \"nullable\": true,\n                                  \"readOnly\": true,\n                                  \"description\": \"A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier.\"\n                                },\n                                \"type\": {\n                                  \"type\": \"string\",\n                                  \"readOnly\": true,\n                                  \"description\": \"A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference.\"\n                                },\n                                \"self\": {\n                                  \"type\": \"string\",\n                                  \"nullable\": true,\n                                  \"readOnly\": true,\n                                  \"format\": \"url\",\n                                  \"description\": \"the API show URL at which the object is accessible\"\n                                },\n                                \"html_url\": {\n                                  \"type\": \"string\",\n                                  \"nullable\": true,\n                                  \"readOnly\": true,\n                                  \"format\": \"url\",\n                                  \"description\": \"a URL at which the entity is uniquely displayed in the Web app\"\n                                }\n                              }\n                            },\n                            {\n                              \"type\": \"object\",\n                              \"required\": [\n                                \"type\",\n                                \"id\"\n                              ]\n                            }\n                          ]\n                        },\n                        {\n                          \"type\": \"object\",\n                          \"properties\": {\n                            \"type\": {\n                              \"type\": \"string\",\n                              \"enum\": [\n                                \"team_reference\"\n                              ]\n                            }\n                          }\n                        }\n                      ]\n                    },\n                    \"minLength\": 0\n                  }\n                },\n                \"required\": [\n                  \"type\",\n                  \"name\",\n                  \"escalation_rules\"\n                ],\n                \"example\": {\n                  \"id\": \"PQIL2IX\",\n                  \"type\": \"escalation_policy\",\n                  \"name\": \"Engineering Escalation Policy\",\n                  \"escalation_rules\": [\n                    {\n                      \"escalation_delay_in_minutes\": 30,\n                      \"targets\": [\n                        {\n                          \"id\": \"PEYSGVF\",\n                          \"type\": \"user_reference\"\n                        }\n                      ],\n                      \"escalation_rule_assignment_strategy\": [\n                        {\n                          \"type\": \"round_robin\"\n                        }\n                      ]\n                    }\n                  ],\n                  \"services\": [\n                    {\n                      \"id\": \"PIJ90N7\",\n                      \"type\": \"service_reference\"\n                    }\n                  ],\n                  \"num_loops\": 2,\n                  \"on_call_handoff_notifications\": \"if_has_services\",\n                  \"teams\": [\n                    {\n                      \"id\": \"PQ9K7I8\",\n                      \"type\": \"team_reference\"\n                    }\n                  ],\n                  \"description\": \"Here is the ep for the engineering team.\"\n                }\n              }\n            ]\n          }\n        },\n        \"required\": [\n          \"escalation_policy\"\n        ]\n      },\n      \"examples\": {\n        \"request\": {\n          \"summary\": \"Request Example\",\n          \"value\": {\n            \"escalation_policy\": {\n              \"type\": \"escalation_policy\",\n              \"name\": \"Engineering Escalation Policy\",\n              \"escalation_rules\": [\n                {\n                  \"escalation_delay_in_minutes\": 30,\n                  \"targets\": [\n                    {\n                      \"id\": \"PEYSGVF\",\n                      \"type\": \"user_reference\"\n                    }\n                  ],\n                  \"escalation_rule_assignment_strategy\": {\n                    \"type\": \"round_robin\"\n                  }\n                }\n              ],\n              \"services\": [\n                {\n                  \"id\": \"PIJ90N7\",\n                  \"type\": \"service_reference\"\n                }\n              ],\n              \"num_loops\": 2,\n              \"on_call_handoff_notifications\": \"if_has_services\",\n              \"teams\": [\n                {\n                  \"id\": \"PQ9K7I8\",\n                  \"type\": \"team_reference\"\n                }\n              ],\n              \"description\": \"Here is the ep for the engineering team.\"\n            }\n          }\n        }\n      }\n    }\n  },\n  \"description\": \"The escalation policy to be created.\"\n}",
    "use_request_body_schema_mode": true,
    "validate_request_body_schema": true
  }
}
