OpenAPI Specification
openapi: 3.1.0
info:
title: Assessment Service Assessment Groups networks API
version: 1.0.0
description: 'APIs for managing Assessment and related operations on the Synack.
'
contact:
name: Synack Engineering
email: engineering@synack.com
servers:
- url: https://client.synack.com/api/assessment
description: Commercial
- url: https://client.synack.us/api/assessment
description: FedRAMP (Medium)
security:
- bearerAuth: []
tags:
- name: networks
description: Network assets.
paths:
/v2/bulk/assets:
post:
operationId: postAssetBulk
tags:
- networks
description: 'Creates Assets in my Synack org. Note: In the Body, choose the Object pull down that corresponds to the asset type you want to add; Object 1 for Cloud, Object 2 for Hosts, Object 3 for Mobile, Object 4 for Networks, Object 5 for Web. For example; to add more than 1 Host IP address, choose Option 2, then specify multiple IP ranges with /32 CIDRs (adding a new Item for each).
'
x-mint:
metadata:
title: Bulk Create Assets
requestBody:
description: Supply Asset UID for the asset to upsert
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SingleOrMultiAsset'
responses:
'201':
$ref: '#/components/responses/SingleOrMultiAssetResponse'
'202':
$ref: '#/components/responses/202StatusAccepted'
'401':
$ref: '#/components/responses/401Unauthorized'
'403':
$ref: '#/components/responses/403Forbidden'
'409':
$ref: '#/components/responses/409Conflict'
'413':
$ref: '#/components/responses/413RequestEntityTooLarge'
'422':
$ref: '#/components/responses/422EntityNotProcessable'
'500':
$ref: '#/components/responses/500InternalServerError'
'503':
$ref: '#/components/responses/503ServiceUnavailable'
security:
- OAuth2:
- asset_gw
- asset_client_ow
- asset_boss_ow
- asset_client_lw
- asset_boss_lw
/v2/bulk/assets/lifecycle-state:update:
post:
operationId: bulkUpdateAssetLifecycleState
tags:
- networks
description: 'Bulk updates the asset life cycle property. Checks the validity of assets and returns 409 Conflict if rules are violated.
'
x-mint:
metadata:
title: Bulk Update Asset Lifecycle State
requestBody:
description: Supply Organization UID, Asset UIDs for the assets to update, and the lifecycle state to update to.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AssetBulkLifecycleStateUpdate'
responses:
'200':
$ref: '#/components/responses/AssetBulkLifecycleStateUpdateResponse'
'202':
$ref: '#/components/responses/202StatusAccepted'
'401':
$ref: '#/components/responses/401Unauthorized'
'403':
$ref: '#/components/responses/403Forbidden'
'409':
$ref: '#/components/responses/409Conflict'
'413':
$ref: '#/components/responses/413RequestEntityTooLarge'
'422':
$ref: '#/components/responses/422EntityNotProcessable'
'500':
$ref: '#/components/responses/500InternalServerError'
'503':
$ref: '#/components/responses/503ServiceUnavailable'
security:
- OAuth2:
- asset_gw
- asset_client_ow
- asset_boss_ow
- asset_client_lw
- asset_boss_lw
/v2/bulk/assets/criticality:update:
post:
operationId: bulkUpdateAssetCriticality
tags:
- networks
description: 'Bulk update the criticality of multiple assets.
'
x-mint:
metadata:
title: Bulk Update Asset Criticality
requestBody:
description: The Organization UID, Asset UIDs to be updated, and the criticality value to be set on the assets.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AssetBulkCriticalityUpdate'
responses:
'200':
$ref: '#/components/responses/AssetBulkCriticalityUpdateResponse'
'202':
$ref: '#/components/responses/202StatusAccepted'
'401':
$ref: '#/components/responses/401Unauthorized'
'403':
$ref: '#/components/responses/403Forbidden'
'409':
$ref: '#/components/responses/409Conflict'
'413':
$ref: '#/components/responses/413RequestEntityTooLarge'
'422':
$ref: '#/components/responses/422EntityNotProcessable'
'500':
$ref: '#/components/responses/500InternalServerError'
'503':
$ref: '#/components/responses/503ServiceUnavailable'
security:
- OAuth2:
- asset_gw
- asset_client_ow
- asset_boss_ow
- asset_client_lw
- asset_boss_lw
/v2/assets:
get:
operationId: getAssets
tags:
- networks
description: 'Retrieve the list of assets for one or more organizations, considering filtering and pagination query parameters. When an organization-level OAuth2 scope is provided, the results will be restricted to those organizations the user is authorized for. Similarly, if a listing- level OAuth2 scope is provided, the results will be restricted to those listings the user is authorized for.
Additional query parameters generally restrict the resulting set of assets according to AND semantics.
Use of organizationUid and listingUid query parameters will further restrict the results.
If neither are specified, the returned assets are the set of assets the user is allowed to access with organization OR listing specific privileges.
If listing UIDs are supplied without organization UIDs, then only the assets assigned to those listings (which the user is authorized for) will be returned. Conversely, if organization UIDs are supplied without listing UIDs, then only the assets owned by those organizations (which the the user is authorized for) will be returned.
Should both organization UIDs and listing UIDs be supplied, then the set of assets returned is restricted to assets assigned to any of the supplied listings, AND owned by any of the supplied organizations, further restricted to only those the user is authorized to access.
Researcher users are restricted to only viewing credentials of in scope assets for listings to which they have been assigned.
'
x-mint:
metadata:
title: Get Assets
parameters:
- $ref: '#/components/parameters/OrganizationUIDQuery'
- $ref: '#/components/parameters/ListingUIDQuery'
- $ref: '#/components/parameters/AssetTypeQuery'
- $ref: '#/components/parameters/HostTypeQuery'
- in: query
name: search
schema:
type: string
required: false
description: 'Optional query parameter for a search string that will be used to match within the label or location properties of assets. If this query parameter is provided, any location query parameter will be ignored.
'
- in: query
name: active
schema:
type: boolean
required: false
description: 'Optional parameter that determines whether the response includes assets regardless of active state (the default, if this query parameter is not provided); active assets only if true; or inactive assets only if false.
'
- in: query
name: inProduction
schema:
type: boolean
required: false
description: 'Optional query parameter that determines whether production or non-production assets will be included in the response.
'
- in: query
name: maxHostDiscoveryAgeMins
schema:
type: integer
default: 0
required: false
description: 'Optional query parameter to get host assets which are discovered by cloudEnumeration scanner shifted by maxHostDiscoveryAgeMins. Assets which are added via boss or discovered by other type of scanners will be included in response. E.g. CloudEnumeration hosts are valid for 1 hour from each time they are discovered, maxHostDiscoveryAgeMins=0 means that if the end time of the relationship has passed, the asset will not be returned - maxHostDiscoveryAgeMins=60 however, would return assets that were still valid 60 minutes ago
'
- in: query
name: scope[]
schema:
type: array
items:
$ref: '#/components/schemas/Scope'
required: false
explode: true
description: Restrict the returned assets to only assets associated to listings by the specified scopes.
- in: query
name: cloudPlatform[]
schema:
type: array
items:
$ref: '#/components/schemas/CloudPlatform'
required: false
explode: true
description: Restrict the returned assets to only assets enumerated from a particular cloud platform.
- in: query
name: location
schema:
type: string
required: false
description: 'Prefix search of the derived location property.
'
- in: query
name: errorCode[]
schema:
type: array
items:
$ref: '#/components/schemas/ErrorCode'
required: false
explode: true
description: Filter assets to only include assets with matching error codes.
- in: query
name: portNumber[]
schema:
type: array
items:
$ref: '#/components/schemas/PortNumber'
required: false
explode: true
description: Filter assets to only include hosts with open ports matching the port number.
- in: query
name: maxOpenPorts
schema:
type: integer
format: int32
minimum: 0
maximum: 65535
required: false
description: Max open ports from a single IP address.
- in: query
name: hasNetwork
schema:
type: boolean
required: false
description: 'Filter assets to include/exclude those with networks.
Deprecating.
'
- in: query
name: networkUid[]
schema:
type: array
items:
$ref: '#/components/schemas/UID'
required: false
explode: true
description: 'Unique identifier for a network.
If not supplied the request will apply to all networks the user is authorized to access.
Deprecating.
'
- in: query
name: gatewayId[]
schema:
type: array
items:
$ref: '#/components/schemas/GatewayID'
required: false
explode: true
description: 'Unique gateway id.
If not supplied the request will apply to all gateways.
'
- in: query
name: earliestCreatedAt
schema:
type: string
format: date-time
required: false
description: Filter assets with a createdAt date greater or equal to this value
- in: query
name: latestCreatedAt
schema:
type: string
format: date-time
required: false
description: Filter assets with a createdAt date less than or equal to this value
- in: query
name: userUid
schema:
$ref: '#/components/schemas/UserUID'
required: false
description: Restricts the credentials to only those available to the user. This query parameter is ignored if the user is a researcher.
- in: query
name: relationshipTargetAssetUid
schema:
$ref: '#/components/schemas/AssetUID'
required: false
description: 'Filter assets which have a relationship with targetAssetUid equal to this value.
'
- in: query
name: relationshipType
schema:
$ref: '#/components/schemas/AssetRelationshipType'
required: false
description: 'Filter assets which have a relationship of this type.
'
- $ref: '#/components/parameters/PerPageQuery'
- $ref: '#/components/parameters/PageQuery'
- in: query
name: sort
schema:
type: string
enum:
- location
- label
- createdAt
- updatedAt
- lastReachableAt
- lastScan
description: Optional property to sort results by.
required: false
- $ref: '#/components/parameters/SortDirQuery'
- in: query
name: origin
schema:
type: string
enum:
- provided
- discovered
description: Optional property to filter results by human created or system discovered assets.
required: false
- name: lifecycleState[]
required: false
in: query
schema:
type: array
items:
type: string
enum:
- confirmed
- unconfirmed
- archived
- ignored
description: Optional property to filter results by asset lifecycle state. When not supplied, all assets except `archived` will be returned.
- in: query
name: omitFields
description: Fields to omit from response.
schema:
type: array
items:
type: string
enum:
- ALL
- relationships
- externalRelationships
- ports
- networks
- scopeRules
- binaries
- userRoles
- $ref: '#/components/parameters/IpRanges'
responses:
'200':
$ref: '#/components/responses/PaginatedArrayOfAssets'
'400':
$ref: '#/components/responses/400BadRequest'
'401':
$ref: '#/components/responses/401Unauthorized'
'403':
$ref: '#/components/responses/403Forbidden'
'500':
$ref: '#/components/responses/500InternalServerError'
'503':
$ref: '#/components/responses/503ServiceUnavailable'
security:
- OAuth2:
- asset_gr
- asset_or
- asset_lr
- asset_srt_lr
- asset_scan_gr
post:
operationId: postAsset
tags:
- networks
description: 'Creates an asset in my Synack org. In the Body, choose the Object pull down that corresponds to the asset type you want to add; Object 1 for Cloud, Object 2 for Host, Object 3 for Mobile, Object 4 for Network, Object 5 for Web
'
x-mint:
metadata:
title: Create Asset
requestBody:
description: Asset to create. If the asset is of cloud account type, only its metadata returned in the response as credential data is restricted to asset_scan_gr scope. If the asset is of webapp type, corresponding FQDN or IP host asset will also be created.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SingleOrMultiAsset'
responses:
'201':
$ref: '#/components/responses/SingleOrMultiAssetResponse'
'202':
$ref: '#/components/responses/202StatusAccepted'
'401':
$ref: '#/components/responses/401Unauthorized'
'403':
$ref: '#/components/responses/403Forbidden'
'409':
$ref: '#/components/responses/409Conflict'
'413':
$ref: '#/components/responses/413RequestEntityTooLarge'
'422':
$ref: '#/components/responses/422EntityNotProcessable'
'500':
$ref: '#/components/responses/500InternalServerError'
'503':
$ref: '#/components/responses/503ServiceUnavailable'
security:
- OAuth2:
- asset_gw
- asset_client_ow
- asset_boss_ow
- asset_client_lw
- asset_boss_lw
/v2/assets/{assetUid}:
parameters:
- $ref: '#/components/parameters/AssetUIDPath'
get:
operationId: getAsset
tags:
- networks
description: 'Retrieves a single asset. If the user is a researcher, only the credentials they are authorized to access will be returned. If the asset is of cloud account type, only a user with asset_scan_gr scope can access its credential data.
'
x-mint:
metadata:
title: Get Asset
parameters:
- in: query
name: userUid
schema:
$ref: '#/components/schemas/UserUID'
required: false
description: Restricts the credentials to only those available to the user. This query parameter is ignored if the user is a researcher.
responses:
'200':
$ref: '#/components/responses/SingleAssetResponse'
'401':
$ref: '#/components/responses/401Unauthorized'
'403':
$ref: '#/components/responses/403Forbidden'
'404':
$ref: '#/components/responses/404NotFound'
'500':
$ref: '#/components/responses/500InternalServerError'
'503':
$ref: '#/components/responses/503ServiceUnavailable'
security:
- OAuth2:
- asset_gr
- asset_scan_gr
- asset_or
- asset_lr
- asset_srt_lr
patch:
operationId: patchAsset
tags:
- networks
description: 'Patches the properties of a single asset.
'
x-mint:
metadata:
title: Patch Asset
requestBody:
description: Asset properties to patch.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SingleAsset'
responses:
'200':
$ref: '#/components/responses/SingleAssetResponse'
'401':
$ref: '#/components/responses/401Unauthorized'
'403':
$ref: '#/components/responses/403Forbidden'
'404':
$ref: '#/components/responses/404NotFound'
'500':
$ref: '#/components/responses/500InternalServerError'
'503':
$ref: '#/components/responses/503ServiceUnavailable'
security:
- OAuth2:
- asset_gw
- asset_client_ow
- asset_boss_ow
- asset_client_lw
- asset_boss_lw
delete:
x-excluded: true
operationId: deleteAsset
tags:
- networks
description: 'Deletes an asset. This is intended to be a privileged operation. Regular use should be to mark the asset as inactive. Any relationships that involve the deleted asset will be also be deleted, as will any association to listings.
'
responses:
'204':
$ref: '#/components/responses/204NoContent'
'401':
$ref: '#/components/responses/401Unauthorized'
'403':
$ref: '#/components/responses/403Forbidden'
'404':
$ref: '#/components/responses/404NotFound'
'500':
$ref: '#/components/responses/500InternalServerError'
'503':
$ref: '#/components/responses/503ServiceUnavailable'
security:
- OAuth2:
- asset_gw
- asset_client_ow
- asset_boss_ow
- asset_client_lw
- asset_boss_lw
/v2/organizations/{organizationUid}/discovered-assets:
get:
operationId: getDiscoveredAssetSummaries
tags:
- networks
description: 'Retrieve the list summarized properties for discovered assets belonging to an organization, considering filtering and pagination query parameters.
Additional query parameters generally restrict the resulting set of assets according to AND semantics.
'
x-mint:
metadata:
title: Get Discovered Assets
parameters:
- $ref: '#/components/parameters/OrganizationUIDPath'
- $ref: '#/components/parameters/ListingUIDQuery'
- $ref: '#/components/parameters/AssetTypeQuery'
- $ref: '#/components/parameters/HostTypeQuery'
- in: query
name: seedUid[]
schema:
$ref: '#/components/schemas/SeedUID'
required: false
description: Restrict the returned asset summaries to only those discovered from provided seed identifier.
- in: query
name: search
schema:
type: string
required: false
description: 'Optional query parameter for a search string that will be used to match within the label or location properties of assets. If this query parameter is provided, any location query parameter will be ignored.
'
- $ref: '#/components/parameters/PerPageQuery'
- $ref: '#/components/parameters/PageQuery'
- in: query
name: sort
schema:
type: string
enum:
- location
- label
- createdAt
- updatedAt
- lastReachableAt
description: Optional property to sort results by.
required: false
- $ref: '#/components/parameters/SortDirQuery'
responses:
'200':
$ref: '#/components/responses/PaginatedDiscoveredAssetsResponse'
'400':
$ref: '#/components/responses/400BadRequest'
'401':
$ref: '#/components/responses/401Unauthorized'
'403':
$ref: '#/components/responses/403Forbidden'
'500':
$ref: '#/components/responses/500InternalServerError'
'503':
$ref: '#/components/responses/503ServiceUnavailable'
security:
- OAuth2:
- asset_gr
- asset_or
- asset_lr
- asset_srt_lr
- asset_scan_gr
components:
responses:
SingleOrMultiAssetResponse:
description: A single asset or an array of assets.
headers:
ETag:
$ref: '#/components/headers/ETag'
content:
application/json:
schema:
$ref: '#/components/schemas/SingleOrMultiAsset'
PaginatedArrayOfAssets:
description: Paginated assets.
headers:
Pagination-Limit:
$ref: '#/components/headers/PaginationLimit'
Pagination-Current-Page:
$ref: '#/components/headers/PaginationCurrentPage'
Pagination-Total-Pages:
$ref: '#/components/headers/PaginationTotalPages'
Pagination-Total-Count:
$ref: '#/components/headers/PaginationTotalCount'
Link:
$ref: '#/components/headers/Link'
content:
application/json:
schema:
$ref: '#/components/schemas/ArrayOfAssets'
503ServiceUnavailable:
description: Service Unavailable.
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
413RequestEntityTooLarge:
description: Returned generally when the size of the request body is too large to process, or specifically when the request contains too many items, typically in a bulk API operation.
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
422EntityNotProcessable:
description: Entity Not Processable
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
401Unauthorized:
description: Unauthorized.
202StatusAccepted:
description: Request accepted and being processed.
AssetBulkCriticalityUpdateResponse:
description: Count of assets updated.
content:
application/json:
schema:
$ref: '#/components/schemas/CriticalityUpdateCount'
403Forbidden:
description: Forbidden
PaginatedDiscoveredAssetsResponse:
description: Paginated discovered asset summaries.
headers:
Pagination-Limit:
$ref: '#/components/headers/PaginationLimit'
Pagination-Current-Page:
$ref: '#/components/headers/PaginationCurrentPage'
Pagination-Total-Pages:
$ref: '#/components/headers/PaginationTotalPages'
Pagination-Total-Count:
$ref: '#/components/headers/PaginationTotalCount'
Link:
$ref: '#/components/headers/Link'
content:
application/json:
schema:
$ref: '#/components/schemas/DiscoveredAssetsPage'
400BadRequest:
description: Bad Request
SingleAssetResponse:
description: The current state of the requested asset.
headers:
ETag:
$ref: '#/components/headers/ETag'
content:
application/json:
schema:
$ref: '#/components/schemas/SingleAsset'
AssetBulkLifecycleStateUpdateResponse:
description: Count of lifecycle states updated.
content:
application/json:
schema:
$ref: '#/components/schemas/LifecycleUpdateCount'
409Conflict:
description: Conflict.
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
404NotFound:
description: Not found.
500InternalServerError:
description: Internal Server Error.
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
204NoContent:
description: No content.
parameters:
OrganizationUIDQuery:
name: organizationUid[]
in: query
explode: true
schema:
type: array
items:
$ref: '#/components/schemas/OrganizationUID'
required: false
description: Unique identifier for an organization. If not supplied the request will apply to all organizations the user is authorized to access.
IpRanges:
name: ipRanges[]
in: query
schema:
$ref: '#/components/schemas/ArrayOfIpRanges'
required: false
explode: true
description: Restrict the returned asset summaries to only assets of the specified ip ranges.
ListingUIDQuery:
name: listingUid[]
in: query
explode: true
schema:
type: array
items:
$ref: '#/components/schemas/ListingUID'
required: false
description: Unique identifier for an listing. If not supplied the request will apply to all listings the user is authorized to access.
OrganizationUIDPath:
name: organizationUid
in: path
schema:
$ref: '#/components/schemas/OrganizationUID'
required: true
description: Unique identifier for an organization.
AssetTypeQuery:
name: assetType[]
in: query
schema:
type: array
items:
$ref: '#/components/schemas/AssetType'
required: false
explode: true
description: Restrict the returned asset summaries to only assets of the specified type.
PageQuery:
name: page
in: query
schema:
type: integer
format: int32
minimum: 1
required: false
description: 'Page to retrieve in paginated response. A server-selected default of 1 will be used when no page is requested via query parameter.
'
SortDirQuery:
name: sortDir
in: query
schema:
type: string
enum:
- asc
- desc
default: asc
required: false
description: Direction of sort-order for items in the response.
HostTypeQuery:
name: hostType[]
in: query
schema:
type: array
items:
$ref: '#/components/schemas/HostType'
required: false
explode: true
description: 'Restrict the returned asset summaries to only the types of host assets requested when assetType also includes host.
'
PerPageQuery:
name: perPage
in: query
schema:
type: integer
format: int32
minimum: 1
maximum: 5000
required: false
description: 'Requested page size for pagination. A server-selected default of 100 will be used when no perPage is requested via query parameter.
'
AssetUIDPath:
name: assetUid
in: path
schema:
$ref: '#/components/schemas/AssetUID'
required: true
description: Unique identifier for an asset.
schemas:
OperationUserUID:
type: string
pattern: ^[0-9a-f]{12}
readOnly: true
description: Automatically set by the server to the requesting user whenever the resource is updated. May be a user account or a service account if the action is performed by an automated.
DiscoveredAssetsPage:
type: object
properties:
totalByStatus:
$ref: '#/components/schemas/DiscoveredAssetsTotals'
discoveredAssets:
$ref: '#/components/schemas/ArrayOfAssetSummaries'
GatewayID:
type: string
pattern: ^[0-9a-f]{16}
description: Identifier for Launchpoint-managed VPN gateway.
AssetRelationshipType:
type: string
description: Type or relationship between assets.
enum:
- discoveredBy
AssetCriticality:
type: string
description: Indicates importance of the asset to the customer.
default: undefined
enum:
- high
- medium
- low
- undefined
AssetBulkLifecycleStateUpdate:
type: object
required:
- organizationUid
- uid
- lifecycleState
properties:
organizationUid:
$ref: '#/components/schemas/OrganizationUID'
assetUids:
type: array
items:
$ref: '#/components/schemas/AssetUID'
lifecycleState:
$ref: '#/components/schemas/AssetLifecycleState'
ArrayOfRelatedAssets:
type: array
items:
$ref: '#/components/schemas/RelatedAsset'
IpRange:
type: string
description: IP Range could be a CIDR or an IP Range
ProblemDetails:
type: object
description: 'See [RFC 7807: Problem Details for HTTP APIs](https://tools.ietf.org/html/rfc7807)'
properties:
type:
type: string
readOnly: true
title:
type: string
readOnly: true
status:
type: integer
format: int32
minimum: 100
maximum: 511
description: HTTP Status code.
readOnly: true
detail:
type: string
description: Message detailing the problem.
readOnly: true
instance:
type: string
description: generated problem instance number to correlate with logs
readOnly: true
failedValidation:
type: array
description: Array of failed validation rules.
readOnly: true
items:
$ref: '#/components/schemas/FailedValidation'
failedValidations:
type: array
description: Array of indexed failed validation rules.
readOnly: true
items:
$ref: '#/components/schemas/IndexedFailedValidations'
maxBatchSize:
type: integer
description: Maximum processable batch size.
readOnly: true
batchSize:
type: integer
description: Batch size sent when batch is too large.
readOnly: true
CloudPlatform:
description: Identifies cloud platform
type: string
enum:
- aws
- azure
- gcp
AssetOrigin:
type: string
description: Indicates the origin for the asset, i.e. whether the asset was provided manually or it was discovered by some sort of automation.
default: provided
enum:
- provided
- discovered
AssetRelationshipUID:
type: string
pattern: ^[0-9a-f]{12}
description: Unique identifier for a scan.
ScopeRule:
allOf:
- $ref: '#/components/schemas/ScopeRuleSummary'
- $ref: '#/components/schemas/Updatable'
MobileOperatingSystem:
type: string
enum:
- ios
- android
description: The operating system for the asset.
AssetLifecycleState:
type: string
description: Indicates the asset position in asset lifecycle FSM.
default: confirmed
enum:
- confirmed
- unconfirmed
- ignored
- archived
AssetChangeStatus:
type: string
d
# --- truncated at 32 KB (74 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/synack/refs/heads/main/openapi/synack-networks-api-openapi.yml