|
16 | 16 | }, |
17 | 17 | "servers": [ |
18 | 18 | { |
19 | | - "url": "/", |
| 19 | + "url": "https://bloodhound.specterops.io/openapi.json/", |
20 | 20 | "description": "This is the base path for all endpoints, relative to the domain where the API is being hosted." |
21 | 21 | } |
22 | 22 | ], |
|
3452 | 3452 | }, |
3453 | 3453 | { |
3454 | 3454 | "name": "type", |
3455 | | - "description": "Node type.\nSome AD examples: `Base`, `User`, `Computer`, `Group`, `Container`.\nSome Azure examples: `AZBase`, `AZApp`, `AZDevice`.\n", |
| 3455 | + "description": "Node type. Currently only supports built-in types.\nSome AD examples: `Base`, `User`, `Computer`, `Group`, `Container`.\nSome Azure examples: `AZBase`, `AZApp`, `AZDevice`.\n", |
3456 | 3456 | "in": "query", |
3457 | 3457 | "schema": { |
3458 | 3458 | "type": "string" |
|
5193 | 5193 | "counts": { |
5194 | 5194 | "type": "object", |
5195 | 5195 | "properties": { |
| 5196 | + "members": { |
| 5197 | + "type": "integer", |
| 5198 | + "format": "int64" |
| 5199 | + }, |
5196 | 5200 | "selectors": { |
5197 | 5201 | "type": "integer" |
5198 | 5202 | }, |
5199 | | - "members": { |
| 5203 | + "custom_selectors": { |
| 5204 | + "type": "integer" |
| 5205 | + }, |
| 5206 | + "default_selectors": { |
| 5207 | + "type": "integer" |
| 5208 | + }, |
| 5209 | + "disabled_selectors": { |
5200 | 5210 | "type": "integer" |
5201 | 5211 | } |
5202 | 5212 | } |
|
5507 | 5517 | "schema": { |
5508 | 5518 | "$ref": "#/components/schemas/api.params.query.sort-by" |
5509 | 5519 | } |
| 5520 | + }, |
| 5521 | + { |
| 5522 | + "name": "primary_kind", |
| 5523 | + "in": "query", |
| 5524 | + "description": "Filter by primary_kind", |
| 5525 | + "required": false, |
| 5526 | + "schema": { |
| 5527 | + "$ref": "#/components/schemas/api.params.predicate.filter.string" |
| 5528 | + } |
| 5529 | + }, |
| 5530 | + { |
| 5531 | + "name": "name", |
| 5532 | + "in": "query", |
| 5533 | + "description": "Filter by name", |
| 5534 | + "required": false, |
| 5535 | + "schema": { |
| 5536 | + "$ref": "#/components/schemas/api.params.predicate.filter.string" |
| 5537 | + } |
| 5538 | + }, |
| 5539 | + { |
| 5540 | + "name": "object_id", |
| 5541 | + "in": "query", |
| 5542 | + "description": "Filter by object_id", |
| 5543 | + "required": false, |
| 5544 | + "schema": { |
| 5545 | + "$ref": "#/components/schemas/api.params.predicate.filter.string" |
| 5546 | + } |
5510 | 5547 | } |
5511 | 5548 | ], |
5512 | 5549 | "responses": { |
|
5686 | 5723 | "in": "query", |
5687 | 5724 | "description": "Sortable columns are `id`, `objectid`, and `name`.\n", |
5688 | 5725 | "schema": { |
5689 | | - "$ref": "#/components/schemas/api.params.query.sort-by" |
| 5726 | + "allOf": [ |
| 5727 | + { |
| 5728 | + "$ref": "#/components/schemas/api.params.query.sort-by" |
| 5729 | + }, |
| 5730 | + { |
| 5731 | + "enum": [ |
| 5732 | + "id", |
| 5733 | + "objectid", |
| 5734 | + "name" |
| 5735 | + ] |
| 5736 | + } |
| 5737 | + ] |
| 5738 | + } |
| 5739 | + }, |
| 5740 | + { |
| 5741 | + "name": "primary_kind", |
| 5742 | + "in": "query", |
| 5743 | + "description": "Filter by primary_kind", |
| 5744 | + "required": false, |
| 5745 | + "schema": { |
| 5746 | + "$ref": "#/components/schemas/api.params.predicate.filter.string" |
| 5747 | + } |
| 5748 | + }, |
| 5749 | + { |
| 5750 | + "name": "name", |
| 5751 | + "in": "query", |
| 5752 | + "description": "Filter by name", |
| 5753 | + "required": false, |
| 5754 | + "schema": { |
| 5755 | + "$ref": "#/components/schemas/api.params.predicate.filter.string" |
| 5756 | + } |
| 5757 | + }, |
| 5758 | + { |
| 5759 | + "name": "object_id", |
| 5760 | + "in": "query", |
| 5761 | + "description": "Filter by object_id", |
| 5762 | + "required": false, |
| 5763 | + "schema": { |
| 5764 | + "$ref": "#/components/schemas/api.params.predicate.filter.string" |
5690 | 5765 | } |
5691 | 5766 | } |
5692 | 5767 | ], |
|
5733 | 5808 | "404": { |
5734 | 5809 | "$ref": "#/components/responses/not-found" |
5735 | 5810 | }, |
| 5811 | + "409": { |
| 5812 | + "description": "Conflict. Selector is disabled.", |
| 5813 | + "content": { |
| 5814 | + "application/json": { |
| 5815 | + "schema": { |
| 5816 | + "$ref": "#/components/schemas/api.error-wrapper" |
| 5817 | + } |
| 5818 | + } |
| 5819 | + } |
| 5820 | + }, |
| 5821 | + "429": { |
| 5822 | + "$ref": "#/components/responses/too-many-requests" |
| 5823 | + }, |
| 5824 | + "500": { |
| 5825 | + "$ref": "#/components/responses/internal-server-error" |
| 5826 | + } |
| 5827 | + } |
| 5828 | + } |
| 5829 | + }, |
| 5830 | + "/api/v2/asset-group-tags/{asset_group_tag_id}/selectors/{asset_group_tag_selector_id}/members/counts": { |
| 5831 | + "parameters": [ |
| 5832 | + { |
| 5833 | + "$ref": "#/components/parameters/header.prefer" |
| 5834 | + }, |
| 5835 | + { |
| 5836 | + "name": "asset_group_tag_id", |
| 5837 | + "description": "ID of an asset group tag", |
| 5838 | + "in": "path", |
| 5839 | + "required": true, |
| 5840 | + "schema": { |
| 5841 | + "type": "integer", |
| 5842 | + "format": "int32" |
| 5843 | + } |
| 5844 | + }, |
| 5845 | + { |
| 5846 | + "name": "asset_group_tag_selector_id", |
| 5847 | + "description": "ID of an asset group tag selector", |
| 5848 | + "in": "path", |
| 5849 | + "required": true, |
| 5850 | + "schema": { |
| 5851 | + "type": "integer", |
| 5852 | + "format": "int32" |
| 5853 | + } |
| 5854 | + } |
| 5855 | + ], |
| 5856 | + "get": { |
| 5857 | + "operationId": "GetAssetGroupSelectorMemberCountsByKind", |
| 5858 | + "summary": "List asset group tag selector member count by kind", |
| 5859 | + "description": "List counts of members of an asset group tag selector by primary kind.", |
| 5860 | + "tags": [ |
| 5861 | + "Asset Isolation", |
| 5862 | + "Community", |
| 5863 | + "Enterprise" |
| 5864 | + ], |
| 5865 | + "parameters": [ |
| 5866 | + { |
| 5867 | + "$ref": "#/components/parameters/query.environments" |
| 5868 | + } |
| 5869 | + ], |
| 5870 | + "responses": { |
| 5871 | + "200": { |
| 5872 | + "description": "OK", |
| 5873 | + "content": { |
| 5874 | + "application/json": { |
| 5875 | + "schema": { |
| 5876 | + "type": "object", |
| 5877 | + "properties": { |
| 5878 | + "data": { |
| 5879 | + "type": "object", |
| 5880 | + "properties": { |
| 5881 | + "total_count": { |
| 5882 | + "type": "integer" |
| 5883 | + }, |
| 5884 | + "counts": { |
| 5885 | + "type": "object", |
| 5886 | + "additionalProperties": { |
| 5887 | + "type": "integer" |
| 5888 | + } |
| 5889 | + } |
| 5890 | + } |
| 5891 | + } |
| 5892 | + } |
| 5893 | + } |
| 5894 | + } |
| 5895 | + } |
| 5896 | + }, |
| 5897 | + "401": { |
| 5898 | + "$ref": "#/components/responses/unauthorized" |
| 5899 | + }, |
| 5900 | + "403": { |
| 5901 | + "$ref": "#/components/responses/forbidden" |
| 5902 | + }, |
| 5903 | + "404": { |
| 5904 | + "$ref": "#/components/responses/not-found" |
| 5905 | + }, |
| 5906 | + "409": { |
| 5907 | + "description": "Conflict. Selector is disabled.", |
| 5908 | + "content": { |
| 5909 | + "application/json": { |
| 5910 | + "schema": { |
| 5911 | + "$ref": "#/components/schemas/api.error-wrapper" |
| 5912 | + } |
| 5913 | + } |
| 5914 | + } |
| 5915 | + }, |
5736 | 5916 | "429": { |
5737 | 5917 | "$ref": "#/components/responses/too-many-requests" |
5738 | 5918 | }, |
|
6262 | 6442 | "additionalProperties": true |
6263 | 6443 | }, |
6264 | 6444 | "source": { |
6265 | | - "type": "integer" |
| 6445 | + "description": "Describes which phase of tagging resulted in this member being tagged, 1 - direct object, 2 - expanded downward, 3 - expanded upward", |
| 6446 | + "type": "integer", |
| 6447 | + "enum": [ |
| 6448 | + 1, |
| 6449 | + 2, |
| 6450 | + 3 |
| 6451 | + ] |
6266 | 6452 | } |
6267 | 6453 | } |
6268 | 6454 | } |
|
6305 | 6491 | "Community" |
6306 | 6492 | ], |
6307 | 6493 | "requestBody": { |
6308 | | - "description": "The request body for searching asset group tags.", |
| 6494 | + "description": "The request body for searching asset group tags. `query` represents being able to query by either name or object id. `tag_type` can be either 1(zone), 2(label), or 3(owned). And `asset_group_tag_id` is the ID of a tag (zone or label).", |
6309 | 6495 | "required": true, |
6310 | 6496 | "content": { |
6311 | 6497 | "application/json": { |
|
6317 | 6503 | }, |
6318 | 6504 | "tag_type": { |
6319 | 6505 | "type": "integer" |
| 6506 | + }, |
| 6507 | + "asset_group_tag_id": { |
| 6508 | + "type": "integer" |
6320 | 6509 | } |
6321 | 6510 | }, |
6322 | 6511 | "required": [ |
|
17280 | 17469 | "in": "header", |
17281 | 17470 | "required": false, |
17282 | 17471 | "schema": { |
17283 | | - "type": "integer", |
17284 | | - "minimum": 0, |
17285 | | - "default": 0 |
| 17472 | + "type": "string", |
| 17473 | + "default": "wait=30", |
| 17474 | + "pattern": "^wait=[0-9]+$" |
17286 | 17475 | } |
17287 | 17476 | }, |
17288 | 17477 | "query.created-at": { |
|
18975 | 19164 | "readOnly": true, |
18976 | 19165 | "description": "Enterprise Only" |
18977 | 19166 | }, |
| 19167 | + "hygiene_attack_paths": { |
| 19168 | + "type": "integer", |
| 19169 | + "readOnly": true, |
| 19170 | + "description": "Enterprise Only" |
| 19171 | + }, |
18978 | 19172 | "exposures": { |
18979 | 19173 | "type": "array", |
18980 | 19174 | "readOnly": true, |
|
19337 | 19531 | "type": "object", |
19338 | 19532 | "properties": { |
19339 | 19533 | "type": { |
19340 | | - "type": "integer" |
| 19534 | + "type": "integer", |
| 19535 | + "description": "The type of selector, valid types are 1 - object id or 2 - cypher.", |
| 19536 | + "enum": [ |
| 19537 | + 1, |
| 19538 | + 2 |
| 19539 | + ] |
19341 | 19540 | }, |
19342 | 19541 | "value": { |
| 19542 | + "description": "The string value representing either an objectid or cypher query depending on the selector type.", |
19343 | 19543 | "type": "string" |
19344 | 19544 | } |
19345 | 19545 | } |
|
0 commit comments