Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -627,6 +627,7 @@
"reference/asset-isolation/get-asset-group-tag-selectors-of-a-specific-object-by-member-id",
"reference/asset-isolation/list-asset-group-tag-member-count-by-kind",
"reference/asset-isolation/list-asset-group-tag-members-by-selector",
"reference/asset-isolation/list-asset-group-tag-selector-member-count-by-kind",
"reference/asset-isolation/list-asset-group-collections",
"reference/asset-isolation/preview-selectors",
"reference/asset-isolation/update-an-asset-group",
Expand Down
220 changes: 210 additions & 10 deletions docs/openapi.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
},
"servers": [
{
"url": "/",
"url": "https://bloodhound.specterops.io/openapi.json/",
"description": "This is the base path for all endpoints, relative to the domain where the API is being hosted."
}
],
Expand Down Expand Up @@ -3452,7 +3452,7 @@
},
{
"name": "type",
"description": "Node type.\nSome AD examples: `Base`, `User`, `Computer`, `Group`, `Container`.\nSome Azure examples: `AZBase`, `AZApp`, `AZDevice`.\n",
"description": "Node type. Currently only supports built-in types.\nSome AD examples: `Base`, `User`, `Computer`, `Group`, `Container`.\nSome Azure examples: `AZBase`, `AZApp`, `AZDevice`.\n",
"in": "query",
"schema": {
"type": "string"
Expand Down Expand Up @@ -5193,10 +5193,20 @@
"counts": {
"type": "object",
"properties": {
"members": {
"type": "integer",
"format": "int64"
},
"selectors": {
"type": "integer"
},
"members": {
"custom_selectors": {
"type": "integer"
},
"default_selectors": {
"type": "integer"
},
"disabled_selectors": {
"type": "integer"
}
}
Expand Down Expand Up @@ -5507,6 +5517,33 @@
"schema": {
"$ref": "#/components/schemas/api.params.query.sort-by"
}
},
{
"name": "primary_kind",
"in": "query",
"description": "Filter by primary_kind",
"required": false,
"schema": {
"$ref": "#/components/schemas/api.params.predicate.filter.string"
}
},
{
"name": "name",
"in": "query",
"description": "Filter by name",
"required": false,
"schema": {
"$ref": "#/components/schemas/api.params.predicate.filter.string"
}
},
{
"name": "object_id",
"in": "query",
"description": "Filter by object_id",
"required": false,
"schema": {
"$ref": "#/components/schemas/api.params.predicate.filter.string"
}
}
],
"responses": {
Expand Down Expand Up @@ -5686,7 +5723,45 @@
"in": "query",
"description": "Sortable columns are `id`, `objectid`, and `name`.\n",
"schema": {
"$ref": "#/components/schemas/api.params.query.sort-by"
"allOf": [
{
"$ref": "#/components/schemas/api.params.query.sort-by"
},
{
"enum": [
"id",
"objectid",
"name"
]
}
]
}
},
{
"name": "primary_kind",
"in": "query",
"description": "Filter by primary_kind",
"required": false,
"schema": {
"$ref": "#/components/schemas/api.params.predicate.filter.string"
}
},
{
"name": "name",
"in": "query",
"description": "Filter by name",
"required": false,
"schema": {
"$ref": "#/components/schemas/api.params.predicate.filter.string"
}
},
{
"name": "object_id",
"in": "query",
"description": "Filter by object_id",
"required": false,
"schema": {
"$ref": "#/components/schemas/api.params.predicate.filter.string"
}
}
],
Expand Down Expand Up @@ -5733,6 +5808,111 @@
"404": {
"$ref": "#/components/responses/not-found"
},
"409": {
"description": "Conflict. Selector is disabled.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/api.error-wrapper"
}
}
}
},
"429": {
"$ref": "#/components/responses/too-many-requests"
},
"500": {
"$ref": "#/components/responses/internal-server-error"
}
}
}
},
"/api/v2/asset-group-tags/{asset_group_tag_id}/selectors/{asset_group_tag_selector_id}/members/counts": {
"parameters": [
{
"$ref": "#/components/parameters/header.prefer"
},
{
"name": "asset_group_tag_id",
"description": "ID of an asset group tag",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "asset_group_tag_selector_id",
"description": "ID of an asset group tag selector",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"get": {
"operationId": "GetAssetGroupSelectorMemberCountsByKind",
"summary": "List asset group tag selector member count by kind",
"description": "List counts of members of an asset group tag selector by primary kind.",
"tags": [
"Asset Isolation",
"Community",
"Enterprise"
],
"parameters": [
{
"$ref": "#/components/parameters/query.environments"
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"total_count": {
"type": "integer"
},
"counts": {
"type": "object",
"additionalProperties": {
"type": "integer"
}
}
}
}
}
}
}
}
},
"401": {
"$ref": "#/components/responses/unauthorized"
},
"403": {
"$ref": "#/components/responses/forbidden"
},
"404": {
"$ref": "#/components/responses/not-found"
},
"409": {
"description": "Conflict. Selector is disabled.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/api.error-wrapper"
}
}
}
},
"429": {
"$ref": "#/components/responses/too-many-requests"
},
Expand Down Expand Up @@ -6262,7 +6442,13 @@
"additionalProperties": true
},
"source": {
"type": "integer"
"description": "Describes which phase of tagging resulted in this member being tagged, 1 - direct object, 2 - expanded downward, 3 - expanded upward",
"type": "integer",
"enum": [
1,
2,
3
]
}
}
}
Expand Down Expand Up @@ -6305,7 +6491,7 @@
"Community"
],
"requestBody": {
"description": "The request body for searching asset group tags.",
"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).",
"required": true,
"content": {
"application/json": {
Expand All @@ -6317,6 +6503,9 @@
},
"tag_type": {
"type": "integer"
},
"asset_group_tag_id": {
"type": "integer"
}
},
"required": [
Expand Down Expand Up @@ -17280,9 +17469,9 @@
"in": "header",
"required": false,
"schema": {
"type": "integer",
"minimum": 0,
"default": 0
"type": "string",
"default": "wait=30",
"pattern": "^wait=[0-9]+$"
}
},
"query.created-at": {
Expand Down Expand Up @@ -18975,6 +19164,11 @@
"readOnly": true,
"description": "Enterprise Only"
},
"hygiene_attack_paths": {
"type": "integer",
"readOnly": true,
"description": "Enterprise Only"
},
"exposures": {
"type": "array",
"readOnly": true,
Expand Down Expand Up @@ -19337,9 +19531,15 @@
"type": "object",
"properties": {
"type": {
"type": "integer"
"type": "integer",
"description": "The type of selector, valid types are 1 - object id or 2 - cypher.",
"enum": [
1,
2
]
},
"value": {
"description": "The string value representing either an objectid or cypher query depending on the selector type.",
"type": "string"
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
openapi: get /api/v2/asset-group-tags/{asset_group_tag_id}/selectors/{asset_group_tag_selector_id}/members/counts
---

<img noZoom src="/assets/enterprise-AND-community-edition-pill-tag.svg" alt="Applies to BloodHound Enterprise and CE"/>