{
  "service": "dynatrace",
  "displayName": "Dynatrace",
  "categories": [
    "Developer Tools",
    "Data"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Token",
      "placeholder": "DYNATRACE_API_TOKEN",
      "description": "Dynatrace API token sent with the Authorization: Api-Token header. Create or view access tokens in Dynatrace token management: https://docs.dynatrace.com/docs/manage/identity-access-management/access-tokens-and-oauth-clients/access-tokens.",
      "extraFields": [
        {
          "key": "environmentUrl",
          "label": "Environment URL",
          "inputType": "text",
          "required": true,
          "secret": false,
          "placeholder": "https://abc12345.live.dynatrace.com",
          "description": "The HTTPS Dynatrace environment URL for API requests, such as https://abc12345.live.dynatrace.com. You can paste the root environment URL or a page URL from that environment."
        }
      ]
    }
  ],
  "homepageUrl": "https://www.dynatrace.com",
  "actions": [
    {
      "id": "dynatrace.get_entity",
      "service": "dynatrace",
      "name": "get_entity",
      "description": "Get one Dynatrace monitored entity by entity ID.",
      "requiredScopes": [
        "entities.read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "entityId": {
            "type": "string",
            "minLength": 1,
            "description": "The Dynatrace entity ID to read."
          },
          "fields": {
            "type": "string",
            "minLength": 1,
            "description": "Comma-separated Dynatrace fields selector, such as +properties or +evidenceDetails."
          }
        },
        "additionalProperties": false,
        "required": [
          "entityId"
        ],
        "description": "The input payload for reading one Dynatrace monitored entity."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "entity": {
            "type": "object",
            "properties": {
              "entityId": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The Dynatrace entity identifier."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "displayName": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The monitored entity display name."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "type": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The monitored entity type."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "raw": {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "The raw object returned by Dynatrace."
              }
            },
            "additionalProperties": false,
            "description": "A normalized Dynatrace monitored entity."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw object returned by Dynatrace."
          }
        },
        "additionalProperties": false,
        "description": "The normalized response returned when reading a Dynatrace entity."
      }
    },
    {
      "id": "dynatrace.list_entities",
      "service": "dynatrace",
      "name": "list_entities",
      "description": "List Dynatrace monitored entities with optional selector, fields, and pagination.",
      "requiredScopes": [
        "entities.read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "entitySelector": {
            "type": "string",
            "minLength": 1,
            "description": "Dynatrace entitySelector expression used to filter monitored entities."
          },
          "nextPageKey": {
            "type": "string",
            "minLength": 1,
            "description": "The cursor from a previous Dynatrace response used to fetch the next page."
          },
          "pageSize": {
            "type": "integer",
            "minimum": 1,
            "maximum": 500,
            "description": "The number of Dynatrace results to return in one page."
          },
          "fields": {
            "type": "string",
            "minLength": 1,
            "description": "Comma-separated Dynatrace fields selector, such as +properties or +evidenceDetails."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for listing Dynatrace monitored entities."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "entities": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "entityId": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The Dynatrace entity identifier."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "displayName": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The monitored entity display name."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "type": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The monitored entity type."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "raw": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "The raw object returned by Dynatrace."
                }
              },
              "additionalProperties": false,
              "description": "A normalized Dynatrace monitored entity."
            },
            "description": "The Dynatrace monitored entities returned for the request."
          },
          "totalCount": {
            "anyOf": [
              {
                "type": "integer",
                "description": "The total number of matching Dynatrace entities."
              },
              {
                "type": "null"
              }
            ]
          },
          "pageSize": {
            "anyOf": [
              {
                "type": "integer",
                "description": "The page size returned by Dynatrace."
              },
              {
                "type": "null"
              }
            ]
          },
          "nextPageKey": {
            "anyOf": [
              {
                "type": "string",
                "description": "The cursor for the next page when available."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw object returned by Dynatrace."
          }
        },
        "additionalProperties": false,
        "description": "The normalized response returned when listing Dynatrace entities."
      }
    },
    {
      "id": "dynatrace.list_problems",
      "service": "dynatrace",
      "name": "list_problems",
      "description": "List Dynatrace Problems API v2 problems with optional selectors and pagination.",
      "requiredScopes": [
        "problems.read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "problemSelector": {
            "type": "string",
            "minLength": 1,
            "description": "Dynatrace problemSelector expression used to filter problems."
          },
          "entitySelector": {
            "type": "string",
            "minLength": 1,
            "description": "Dynatrace entitySelector expression used to filter monitored entities."
          },
          "nextPageKey": {
            "type": "string",
            "minLength": 1,
            "description": "The cursor from a previous Dynatrace response used to fetch the next page."
          },
          "pageSize": {
            "type": "integer",
            "minimum": 1,
            "maximum": 500,
            "description": "The number of Dynatrace results to return in one page."
          },
          "from": {
            "type": "string",
            "minLength": 1,
            "description": "Dynatrace timeframe expression such as now-2h or an ISO-8601 timestamp."
          },
          "to": {
            "type": "string",
            "minLength": 1,
            "description": "Dynatrace timeframe expression such as now-2h or an ISO-8601 timestamp."
          },
          "fields": {
            "type": "string",
            "minLength": 1,
            "description": "Comma-separated Dynatrace fields selector, such as +properties or +evidenceDetails."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for listing Dynatrace problems."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "problems": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "problemId": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The Dynatrace problem identifier."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "displayId": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The user-facing Dynatrace problem display identifier."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "title": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The problem title returned by Dynatrace."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "status": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The problem status returned by Dynatrace."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "severityLevel": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The problem severity level returned by Dynatrace."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "raw": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "The raw object returned by Dynatrace."
                }
              },
              "additionalProperties": false,
              "description": "A normalized Dynatrace problem."
            },
            "description": "The Dynatrace problems returned for the request."
          },
          "totalCount": {
            "anyOf": [
              {
                "type": "integer",
                "description": "The total number of matching Dynatrace problems."
              },
              {
                "type": "null"
              }
            ]
          },
          "pageSize": {
            "anyOf": [
              {
                "type": "integer",
                "description": "The page size returned by Dynatrace."
              },
              {
                "type": "null"
              }
            ]
          },
          "nextPageKey": {
            "anyOf": [
              {
                "type": "string",
                "description": "The cursor for the next page when available."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw object returned by Dynatrace."
          }
        },
        "additionalProperties": false,
        "description": "The normalized response returned when listing Dynatrace problems."
      }
    }
  ]
}
