Для того чтобы передать фильтр по инфраструктуре в вашем запросе, вам нужно корректно составить payload. Ваша текущая структура для группы фильтров не подходит. Обычно, если API подразумевает фильтрацию по группам, вам нужно использовать корректный формат для передачи фильтра.
Попробуем изменить ваше `payload`, чтобы добавить фильтр по инфраструктуре с ID `1a6ca328-5600-a001-0000-000000000005`. В данном случае, давайте предположим, что мы можем добавить фильтр в список `groups`. Вам нужно указать `filterType` правильно.
Вот пример, как можно изменить ваш код:
```python
url = settings.base_url + "/api/v2/incidents/"
# фильтр инцидентов
payload = {
"offset": 0,
"limit": 50,
"groups": {
"filterType": "infrastructure_filter", # Убедитесь, что это правильный тип фильтра
"infrastructureId": "1a6ca328-5600-a001-0000-000000000005" # ID инфраструктуры
},
"timeFrom": last_incident_time.get(),
"timeTo": None,
"filterTimeType": "creation",
"filter": {
"select": ["key", "name", "category", "type", "status", "created", "assigned"],
"orderby": [
{
"field": "created",
"sortOrder": "descending"
},
{
"field": "status",
"sortOrder": "ascending"
},
{
"field": "severity",
"sortOrder": "descending"
}
]
},
"queryIds": ["all_incidents"]
}
headers = {
**settings.default_header,
**{"Content-Type": "application/json", "Authorization": "Bearer {0}".format(token)}
}
response = requests.post(url, json=payload, headers=headers, verify=False)
if response.status_code == 401:
return 401
return response.json()['incidents']
```
В этом примере я изменил `groups` так, чтобы включать информацию о фильтре для инфраструктуры. Возможно, API ожидает другую структуру данных, поэтому убедитесь, что `filterType` и `infrastructureId` соответствуют требованиям вашего API.
Если это не сработает, вам стоит обратиться к документации API, который вы используете, и узнать, какой формат данных должен быть для фильтров.