Source code for azure.defender.easm.aio.operations._operations
# pylint: disable=too-many-lines
# pylint: disable=W0622
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for license information.
# Code generated by Microsoft (R) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
import sys
from typing import Any, AsyncIterable, Callable, Dict, IO, Optional, TypeVar, Union, cast, overload
import urllib.parse
from azure.core.async_paging import AsyncItemPaged, AsyncList
from azure.core.exceptions import (
ClientAuthenticationError,
HttpResponseError,
ResourceExistsError,
ResourceNotFoundError,
ResourceNotModifiedError,
map_error,
)
from azure.core.pipeline import PipelineResponse
from azure.core.pipeline.transport import AsyncHttpResponse
from azure.core.rest import HttpRequest
from azure.core.tracing.decorator import distributed_trace
from azure.core.tracing.decorator_async import distributed_trace_async
from azure.core.utils import case_insensitive_dict
from ...operations._operations import (
build_assets_get_request,
build_assets_list_request,
build_assets_update_request,
build_discovery_groups_delete_request,
build_discovery_groups_get_request,
build_discovery_groups_list_request,
build_discovery_groups_list_runs_request,
build_discovery_groups_put_request,
build_discovery_groups_run_request,
build_discovery_groups_validate_request,
build_discovery_templates_get_request,
build_discovery_templates_list_request,
build_reports_billable_request,
build_reports_snapshot_request,
build_reports_summary_request,
build_saved_filters_delete_request,
build_saved_filters_get_request,
build_saved_filters_list_request,
build_saved_filters_put_request,
build_tasks_cancel_request,
build_tasks_get_request,
build_tasks_list_request,
)
if sys.version_info >= (3, 9):
from collections.abc import MutableMapping
else:
from typing import MutableMapping # type: ignore # pylint: disable=ungrouped-imports
JSON = MutableMapping[str, Any] # pylint: disable=unsubscriptable-object
T = TypeVar("T")
ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]]
[docs]class AssetsOperations:
"""
.. warning::
**DO NOT** instantiate this class directly.
Instead, you should access the following operations through
:class:`~azure.defender.easm.aio.EasmClient`'s
:attr:`assets` attribute.
"""
def __init__(self, *args, **kwargs) -> None:
input_args = list(args)
self._client = input_args.pop(0) if input_args else kwargs.pop("client")
self._config = input_args.pop(0) if input_args else kwargs.pop("config")
self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer")
self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer")
[docs] @distributed_trace
def list(
self,
*,
filter: Optional[str] = None,
orderby: Optional[str] = None,
skip: int = 0,
mark: Optional[str] = None,
**kwargs: Any
) -> AsyncIterable[JSON]:
"""Retrieve a list of assets for the provided search parameters.
Retrieve a list of assets for the provided search parameters.
:keyword filter: An expression on the resource type that selects the resources to be returned.
Default value is None.
:paramtype filter: str
:keyword orderby: A list of expressions that specify the order of the returned resources.
Default value is None.
:paramtype orderby: str
:keyword skip: An offset into the collection of the first item to be returned. Default value is
0.
:paramtype skip: int
:keyword mark: Specify this value instead of 'skip' to use cursor-based searching. Initial
value is '*' and subsequent values are returned in the response. Default value is None.
:paramtype mark: str
:return: An iterator like instance of JSON object
:rtype: ~azure.core.async_paging.AsyncItemPaged[JSON]
:raises ~azure.core.exceptions.HttpResponseError:
Example:
.. code-block:: python
# The response is polymorphic. The following are possible polymorphic responses based
off discriminator "kind":
# JSON input template for discriminator value "as":
asset_response = {
"asset": {
"adminContacts": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"adminNames": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"adminOrgs": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"adminPhones": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"asNames": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"asn": 0, # Optional. Required.
"count": 0, # Optional. Required.
"countries": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"detailedFromWhoisAt": "2020-02-20 00:00:00", # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional. Required.
"lastSeen": "2020-02-20 00:00:00", # Optional. Required.
"orgIds": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"orgNames": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"registrantContacts": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"registrantNames": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"registrantPhones": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"registrarCreatedAt": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": 0 # Optional. Required.
}
],
"registrarNames": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"registrarUpdatedAt": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": 0 # Optional. Required.
}
],
"registries": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"reason": "str", # Optional. Required.
"source": "str" # Optional. Required.
}
],
"technicalContacts": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"technicalNames": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"technicalOrgs": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"technicalPhones": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
]
},
"kind": "as",
"auditTrail": [
{
"displayName": "str", # Optional. The name that can be used
for display purposes.
"id": "str", # Optional. The system generated unique id for
the resource.
"kind": "str", # Optional. The kind of asset. Known values
are: "as", "contact", "domain", "host", "ipAddress", "ipBlock", "page",
and "sslCert".
"name": "str", # Optional. The caller provided unique name
for the resource.
"reason": "str" # Optional. An explanation of why this audit
trail node was discovered from the previous node.
}
],
"createdDate": "2020-02-20 00:00:00", # Optional. The date this asset was
first added to this workspace.
"discoGroupName": "str", # Optional. The name of the DiscoveryGroup that
brought added this asset to the workspace.
"displayName": "str", # Optional. The name that can be used for display
purposes.
"externalId": "str", # Optional. An optional customer provided identifier
for this asset.
"id": "str", # Optional. The system generated unique id for the resource.
"labels": [
"str" # Optional. Customer labels assigned to this asset.
],
"name": "str", # Optional. The caller provided unique name for the resource.
"reason": "str", # Optional.
"state": "str", # Optional. Known values are: "candidate", "confirmed",
"dismissed", "candidateInvestigate", "associatedPartner", "associatedThirdparty",
and "archived".
"updatedDate": "2020-02-20 00:00:00", # Optional. The date this asset was
last updated for this workspace.
"uuid": "str", # Optional. Global UUID for the asset.
"wildcard": bool # Optional. An indicator of whether this asset represents a
wildcard rollup of assets on this domain.
}
# JSON input template for discriminator value "contact":
asset_response = {
"asset": {
"count": 0, # Optional. Required.
"email": "str", # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional. Required.
"lastSeen": "2020-02-20 00:00:00", # Optional. Required.
"names": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"organizations": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"reason": "str", # Optional. Required.
"source": "str" # Optional. Required.
}
]
},
"kind": "contact",
"auditTrail": [
{
"displayName": "str", # Optional. The name that can be used
for display purposes.
"id": "str", # Optional. The system generated unique id for
the resource.
"kind": "str", # Optional. The kind of asset. Known values
are: "as", "contact", "domain", "host", "ipAddress", "ipBlock", "page",
and "sslCert".
"name": "str", # Optional. The caller provided unique name
for the resource.
"reason": "str" # Optional. An explanation of why this audit
trail node was discovered from the previous node.
}
],
"createdDate": "2020-02-20 00:00:00", # Optional. The date this asset was
first added to this workspace.
"discoGroupName": "str", # Optional. The name of the DiscoveryGroup that
brought added this asset to the workspace.
"displayName": "str", # Optional. The name that can be used for display
purposes.
"externalId": "str", # Optional. An optional customer provided identifier
for this asset.
"id": "str", # Optional. The system generated unique id for the resource.
"labels": [
"str" # Optional. Customer labels assigned to this asset.
],
"name": "str", # Optional. The caller provided unique name for the resource.
"reason": "str", # Optional.
"state": "str", # Optional. Known values are: "candidate", "confirmed",
"dismissed", "candidateInvestigate", "associatedPartner", "associatedThirdparty",
and "archived".
"updatedDate": "2020-02-20 00:00:00", # Optional. The date this asset was
last updated for this workspace.
"uuid": "str", # Optional. Global UUID for the asset.
"wildcard": bool # Optional. An indicator of whether this asset represents a
wildcard rollup of assets on this domain.
}
# JSON input template for discriminator value "domain":
asset_response = {
"asset": {
"adminContacts": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"adminNames": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"adminOrgs": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"adminPhones": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"alexaInfos": [
{
"alexaRank": 0, # Optional. Required.
"category": "str", # Optional. Required.
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool # Optional. Required.
}
],
"count": 0, # Optional. Required.
"detailedFromWhoisAt": "2020-02-20 00:00:00", # Optional. Required.
"domain": "str", # Optional. Required.
"domainStatuses": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"firstSeen": "2020-02-20 00:00:00", # Optional. Required.
"lastSeen": "2020-02-20 00:00:00", # Optional. Required.
"mailServers": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"nameServers": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"parkedDomain": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": bool # Optional. Required.
}
],
"registrantContacts": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"registrantNames": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"registrantOrgs": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"registrantPhones": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"registrarCreatedAt": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": 0 # Optional. Required.
}
],
"registrarExpiresAt": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": 0 # Optional. Required.
}
],
"registrarIanaIds": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": 0 # Optional. Required.
}
],
"registrarNames": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"registrarUpdatedAt": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": 0 # Optional. Required.
}
],
"soaRecords": [
{
"count": 0, # Optional. Required.
"email": "str", # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"nameServer": "str", # Optional. Required.
"recent": bool, # Optional. Required.
"serialNumber": 0 # Optional. Required.
}
],
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"reason": "str", # Optional. Required.
"source": "str" # Optional. Required.
}
],
"technicalContacts": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"technicalNames": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"technicalOrgs": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"technicalPhones": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"whoisId": 0, # Optional. Required.
"whoisServers": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
]
},
"kind": "domain",
"auditTrail": [
{
"displayName": "str", # Optional. The name that can be used
for display purposes.
"id": "str", # Optional. The system generated unique id for
the resource.
"kind": "str", # Optional. The kind of asset. Known values
are: "as", "contact", "domain", "host", "ipAddress", "ipBlock", "page",
and "sslCert".
"name": "str", # Optional. The caller provided unique name
for the resource.
"reason": "str" # Optional. An explanation of why this audit
trail node was discovered from the previous node.
}
],
"createdDate": "2020-02-20 00:00:00", # Optional. The date this asset was
first added to this workspace.
"discoGroupName": "str", # Optional. The name of the DiscoveryGroup that
brought added this asset to the workspace.
"displayName": "str", # Optional. The name that can be used for display
purposes.
"externalId": "str", # Optional. An optional customer provided identifier
for this asset.
"id": "str", # Optional. The system generated unique id for the resource.
"labels": [
"str" # Optional. Customer labels assigned to this asset.
],
"name": "str", # Optional. The caller provided unique name for the resource.
"reason": "str", # Optional.
"state": "str", # Optional. Known values are: "candidate", "confirmed",
"dismissed", "candidateInvestigate", "associatedPartner", "associatedThirdparty",
and "archived".
"updatedDate": "2020-02-20 00:00:00", # Optional. The date this asset was
last updated for this workspace.
"uuid": "str", # Optional. Global UUID for the asset.
"wildcard": bool # Optional. An indicator of whether this asset represents a
wildcard rollup of assets on this domain.
}
# JSON input template for discriminator value "host":
asset_response = {
"asset": {
"asns": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": 0 # Optional. Required.
}
],
"attributes": [
{
"attributeType": "str", # Optional. Required.
"attributeValue": "str", # Optional. Required.
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
]
}
],
"banners": [
{
"banner": "str", # Optional. Required.
"bannerMetadata": "str", # Optional. Required.
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"port": 0, # Optional. Required.
"recent": bool, # Optional. Required.
"scanType": "str", # Optional. Required.
"sha256": "str", # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
]
}
],
"childHosts": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"cnames": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"cookies": [
{
"cookieDomain": "str", # Optional. Required.
"cookieExpiryDate": "2020-02-20 00:00:00", #
Optional. Required.
"cookieName": "str", # Optional. Required.
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool # Optional. Required.
}
],
"count": 0, # Optional. Required.
"domain": "str", # Optional. Required.
"domainAsset": {
"adminContacts": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", #
Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional.
Required.
"firstSeen": "2020-02-20
00:00:00", # Optional. Required.
"lastSeen": "2020-02-20
00:00:00", # Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"adminNames": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", #
Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional.
Required.
"firstSeen": "2020-02-20
00:00:00", # Optional. Required.
"lastSeen": "2020-02-20
00:00:00", # Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"adminOrgs": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", #
Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional.
Required.
"firstSeen": "2020-02-20
00:00:00", # Optional. Required.
"lastSeen": "2020-02-20
00:00:00", # Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"adminPhones": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", #
Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional.
Required.
"firstSeen": "2020-02-20
00:00:00", # Optional. Required.
"lastSeen": "2020-02-20
00:00:00", # Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"alexaInfos": [
{
"alexaRank": 0, # Optional. Required.
"category": "str", # Optional. Required.
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", #
Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"recent": bool # Optional. Required.
}
],
"count": 0, # Optional. Required.
"detailedFromWhoisAt": "2020-02-20 00:00:00", # Optional.
Required.
"domain": "str", # Optional. Required.
"domainStatuses": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", #
Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional.
Required.
"firstSeen": "2020-02-20
00:00:00", # Optional. Required.
"lastSeen": "2020-02-20
00:00:00", # Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"firstSeen": "2020-02-20 00:00:00", # Optional. Required.
"lastSeen": "2020-02-20 00:00:00", # Optional. Required.
"mailServers": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", #
Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional.
Required.
"firstSeen": "2020-02-20
00:00:00", # Optional. Required.
"lastSeen": "2020-02-20
00:00:00", # Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"nameServers": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", #
Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional.
Required.
"firstSeen": "2020-02-20
00:00:00", # Optional. Required.
"lastSeen": "2020-02-20
00:00:00", # Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"parkedDomain": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", #
Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional.
Required.
"firstSeen": "2020-02-20
00:00:00", # Optional. Required.
"lastSeen": "2020-02-20
00:00:00", # Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": bool # Optional. Required.
}
],
"registrantContacts": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", #
Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional.
Required.
"firstSeen": "2020-02-20
00:00:00", # Optional. Required.
"lastSeen": "2020-02-20
00:00:00", # Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"registrantNames": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", #
Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional.
Required.
"firstSeen": "2020-02-20
00:00:00", # Optional. Required.
"lastSeen": "2020-02-20
00:00:00", # Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"registrantOrgs": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", #
Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional.
Required.
"firstSeen": "2020-02-20
00:00:00", # Optional. Required.
"lastSeen": "2020-02-20
00:00:00", # Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"registrantPhones": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", #
Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional.
Required.
"firstSeen": "2020-02-20
00:00:00", # Optional. Required.
"lastSeen": "2020-02-20
00:00:00", # Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"registrarCreatedAt": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", #
Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional.
Required.
"firstSeen": "2020-02-20
00:00:00", # Optional. Required.
"lastSeen": "2020-02-20
00:00:00", # Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": 0 # Optional. Required.
}
],
"registrarExpiresAt": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", #
Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional.
Required.
"firstSeen": "2020-02-20
00:00:00", # Optional. Required.
"lastSeen": "2020-02-20
00:00:00", # Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": 0 # Optional. Required.
}
],
"registrarIanaIds": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", #
Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional.
Required.
"firstSeen": "2020-02-20
00:00:00", # Optional. Required.
"lastSeen": "2020-02-20
00:00:00", # Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": 0 # Optional. Required.
}
],
"registrarNames": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", #
Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional.
Required.
"firstSeen": "2020-02-20
00:00:00", # Optional. Required.
"lastSeen": "2020-02-20
00:00:00", # Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"registrarUpdatedAt": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", #
Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional.
Required.
"firstSeen": "2020-02-20
00:00:00", # Optional. Required.
"lastSeen": "2020-02-20
00:00:00", # Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": 0 # Optional. Required.
}
],
"soaRecords": [
{
"count": 0, # Optional. Required.
"email": "str", # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", #
Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"nameServer": "str", # Optional. Required.
"recent": bool, # Optional. Required.
"serialNumber": 0 # Optional. Required.
}
],
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", #
Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional. Required.
"source": "str" # Optional. Required.
}
],
"technicalContacts": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", #
Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional.
Required.
"firstSeen": "2020-02-20
00:00:00", # Optional. Required.
"lastSeen": "2020-02-20
00:00:00", # Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"technicalNames": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", #
Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional.
Required.
"firstSeen": "2020-02-20
00:00:00", # Optional. Required.
"lastSeen": "2020-02-20
00:00:00", # Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"technicalOrgs": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", #
Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional.
Required.
"firstSeen": "2020-02-20
00:00:00", # Optional. Required.
"lastSeen": "2020-02-20
00:00:00", # Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"technicalPhones": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", #
Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional.
Required.
"firstSeen": "2020-02-20
00:00:00", # Optional. Required.
"lastSeen": "2020-02-20
00:00:00", # Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"whoisId": 0, # Optional. Required.
"whoisServers": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", #
Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional.
Required.
"firstSeen": "2020-02-20
00:00:00", # Optional. Required.
"lastSeen": "2020-02-20
00:00:00", # Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
]
},
"firstSeen": "2020-02-20 00:00:00", # Optional. Required.
"headers": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"headerName": "str", # Optional. Required.
"headerValue": "str", # Optional. Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool # Optional. Required.
}
],
"host": "str", # Optional. Required.
"hostCore": {
"alexaRank": 0, # Optional. Required.
"blacklistCauseCount": 0, # Optional. Required.
"blacklistCauseFirstSeen": "2020-02-20 00:00:00", #
Optional. Required.
"blacklistCauseLastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"blacklistResourceCount": 0, # Optional. Required.
"blacklistResourceFirstSeen": "2020-02-20 00:00:00", #
Optional. Required.
"blacklistResourceLastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"blacklistSequenceCount": 0, # Optional. Required.
"blacklistSequenceFirstSeen": "2020-02-20 00:00:00", #
Optional. Required.
"blacklistSequenceLastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"count": 0, # Optional. Required.
"domain": "str", # Optional. Required.
"domainMalwareReputationScore": 0, # Optional. Required.
"domainPhishReputationScore": 0, # Optional. Required.
"domainReputationScore": 0, # Optional. Required.
"domainScamReputationScore": 0, # Optional. Required.
"domainSpamReputationScore": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional. Required.
"host": "str", # Optional. Required.
"hostMalwareReputationScore": 0, # Optional. Required.
"hostPhishReputationScore": 0, # Optional. Required.
"hostReputationScore": 0, # Optional. Required.
"hostScamReputationScore": 0, # Optional. Required.
"hostSpamReputationScore": 0, # Optional. Required.
"lastSeen": "2020-02-20 00:00:00", # Optional. Required.
"malwareCauseCount": 0, # Optional. Required.
"malwareResourceCount": 0, # Optional. Required.
"malwareSequenceCount": 0, # Optional. Required.
"phishCauseCount": 0, # Optional. Required.
"phishResourceCount": 0, # Optional. Required.
"phishSequenceCount": 0, # Optional. Required.
"scamCauseCount": 0, # Optional. Required.
"scamResourceCount": 0, # Optional. Required.
"scamSequenceCount": 0, # Optional. Required.
"spamCauseCount": 0, # Optional. Required.
"spamResourceCount": 0, # Optional. Required.
"spamSequenceCount": 0, # Optional. Required.
"uuid": "str" # Optional. Required.
},
"ipAddresses": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"ipBlocks": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"ipBlock": "str", # Optional. Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
]
}
],
"ipv4": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": bool # Optional. Required.
}
],
"ipv6": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": bool # Optional. Required.
}
],
"isWildcard": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": bool # Optional. Required.
}
],
"lastSeen": "2020-02-20 00:00:00", # Optional. Required.
"location": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": {
"areaCode": 0, # Optional. Required.
"city": "str", # Optional. Required.
"countryCode": "str", # Optional. Required.
"countryName": "str", # Optional. Required.
"dmaCode": 0, # Optional. Required.
"latitude": 0.0, # Optional. Required.
"longitude": 0.0, # Optional. Required.
"metroCodeId": 0, # Optional. Required.
"postalCode": "str", # Optional. Required.
"region": "str", # Optional. Required.
"regionName": "str" # Optional. Required.
}
}
],
"mxRecord": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": bool # Optional. Required.
}
],
"nsRecord": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": bool # Optional. Required.
}
],
"nxdomain": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": bool # Optional. Required.
}
],
"parentHosts": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"resourceUrls": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"resources": [
{
"cached": bool, # Optional.
Required.
"contentType": "str", # Optional.
Required.
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"firstSeenCrawlGuid": "str", #
Optional. Required.
"firstSeenPageGuid": "str", #
Optional. Required.
"firstSeenResourceGuid": "str", #
Optional. Required.
"host": "str", # Optional. Required.
"lastObservedActualSriHash": "str",
# Optional. Required.
"lastObservedExpectedSriHash": "str",
# Optional. Required.
"lastObservedValidation": "2020-02-20
00:00:00", # Optional. Required.
"lastObservedViolation": "2020-02-20
00:00:00", # Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"lastSeenCrawlGuid": "str", #
Optional. Required.
"lastSeenPageGuid": "str", #
Optional. Required.
"lastSeenResourceGuid": "str", #
Optional. Required.
"md5": "str", # Optional. Required.
"responseBodyMinhash": [
0 # Optional. Required.
],
"responseBodySize": 0, # Optional.
Required.
"sha256": "str", # Optional.
Required.
"sha384": "str", # Optional.
Required.
"sha512": "str", # Optional.
Required.
"sriChecks": [
{
"causePageUrl":
"str", # Optional. Required.
"count": 0, #
Optional. Required.
"crawlGuid": "str",
# Optional. Required.
"expectedHash":
"str", # Optional. Required.
"firstSeen":
"2020-02-20 00:00:00", # Optional. Required.
"lastSeen":
"2020-02-20 00:00:00", # Optional. Required.
"pageGuid": "str", #
Optional. Required.
"resourceGuid":
"str", # Optional. Required.
"violation": bool #
Optional. Required.
}
],
"url": "str" # Optional. Required.
}
],
"url": "str" # Optional. Required.
}
],
"responseBodies": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"scanMetadata": [
{
"bannerMetadata": "str", # Optional. Required.
"endScan": "2020-02-20 00:00:00", # Optional.
Required.
"port": 0, # Optional. Required.
"startScan": "2020-02-20 00:00:00" # Optional.
Required.
}
],
"services": [
{
"count": 0, # Optional. Required.
"exceptions": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"recent": bool, # Optional.
Required.
"sources": [
{
"count": 0, #
Optional. Required.
"firstSeen":
"2020-02-20 00:00:00", # Optional. Required.
"lastSeen":
"2020-02-20 00:00:00", # Optional. Required.
"reason": "str", #
Optional. Required.
"source": "str" #
Optional. Required.
}
],
"value": "str" # Optional. Required.
}
],
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"port": 0, # Optional. Required.
"portStates": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"port": 0, # Optional. Required.
"recent": bool, # Optional.
Required.
"value": "str" # Optional. Known
values are: "open", "closed", and "filtered".
}
],
"recent": bool, # Optional. Required.
"scheme": "str", # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"sslCerts": [
{
"certificateAuthority": bool, #
Optional. Required.
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"invalidAfter": "2020-02-20
00:00:00", # Optional. Required.
"invalidBefore": "2020-02-20
00:00:00", # Optional. Required.
"issuerAlternativeNames": [
"str" # Optional. Required.
],
"issuerCommonNames": [
"str" # Optional. Required.
],
"issuerCountry": [
"str" # Optional. Required.
],
"issuerLocality": [
"str" # Optional. Required.
],
"issuerOrganizationalUnits": [
"str" # Optional. Required.
],
"issuerOrganizations": [
"str" # Optional. Required.
],
"issuerState": [
"str" # Optional. Required.
],
"keyAlgorithm": "str", # Optional.
Required.
"keySize": 0, # Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"organizationalUnits": [
"str" # Optional. Required.
],
"organizations": [
"str" # Optional. Required.
],
"recent": bool, # Optional.
Required.
"selfSigned": bool, # Optional.
Required.
"serialNumber": "str", # Optional.
Required.
"sha1": "str", # Optional. Required.
"sigAlgName": "str", # Optional.
Required.
"sigAlgOid": "str", # Optional.
Required.
"sources": [
{
"count": 0, #
Optional. Required.
"firstSeen":
"2020-02-20 00:00:00", # Optional. Required.
"lastSeen":
"2020-02-20 00:00:00", # Optional. Required.
"reason": "str", #
Optional. Required.
"source": "str" #
Optional. Required.
}
],
"subjectAlternativeNames": [
"str" # Optional. Required.
],
"subjectCommonNames": [
"str" # Optional. Required.
],
"subjectCountry": [
"str" # Optional. Required.
],
"subjectLocality": [
"str" # Optional. Required.
],
"subjectOrganizationalUnits": [
"str" # Optional. Required.
],
"subjectOrganizations": [
"str" # Optional. Required.
],
"subjectState": [
"str" # Optional. Required.
],
"validationType": "str", # Optional.
Known values are: "domainValidation",
"organizationValidation", and "extendedValidation".
"version": 0 # Optional. Required.
}
],
"webComponents": [
{
"count": 0, # Optional. Required.
"cve": [
{
"cvss3Summary": {
"attackComplexity": "str", # Optional. Required.
"attackVector": "str", # Optional. Required.
"availabilityImpact": "str", # Optional.
Required.
"baseScore":
0.0, # Optional. Required.
"baseSeverity": "str", # Optional. Required.
"confidentialityImpact": "str", # Optional.
Required.
"exploitCodeMaturity": "str", # Optional.
Required.
"exploitabilityScore": 0.0, # Optional.
Required.
"impactScore": 0.0, # Optional. Required.
"integrityImpact": "str", # Optional. Required.
"privilegesRequired": "str", # Optional.
Required.
"remediationLevel": "str", # Optional. Required.
"reportConfidence": "str", # Optional. Required.
"scope":
"str", # Optional. Required.
"userInteraction": "str", # Optional. Required.
"vectorString": "str", # Optional. Required.
"version":
"str" # Optional. Required.
},
"cvssScore": 0.0, #
Optional. Required.
"cweId": "str", #
Optional. Required.
"name": "str" #
Optional. Required.
}
],
"endOfLife": 0, # Optional.
Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"name": "str", # Optional. Required.
"ports": [
{
"count": 0, #
Optional. Required.
"firstSeen":
"2020-02-20 00:00:00", # Optional. Required.
"lastSeen":
"2020-02-20 00:00:00", # Optional. Required.
"port": 0 #
Optional. Required.
}
],
"recent": bool, # Optional.
Required.
"ruleId": [
"str" # Optional. Required.
],
"service": "str", # Optional.
Required.
"sources": [
{
"count": 0, #
Optional. Required.
"firstSeen":
"2020-02-20 00:00:00", # Optional. Required.
"lastSeen":
"2020-02-20 00:00:00", # Optional. Required.
"reason": "str", #
Optional. Required.
"source": "str" #
Optional. Required.
}
],
"type": "str", # Optional. Required.
"version": "str" # Optional.
Required.
}
]
}
],
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"reason": "str", # Optional. Required.
"source": "str" # Optional. Required.
}
],
"sslCerts": [
{
"certificateAuthority": bool, # Optional. Required.
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"invalidAfter": "2020-02-20 00:00:00", # Optional.
Required.
"invalidBefore": "2020-02-20 00:00:00", # Optional.
Required.
"issuerAlternativeNames": [
"str" # Optional. Required.
],
"issuerCommonNames": [
"str" # Optional. Required.
],
"issuerCountry": [
"str" # Optional. Required.
],
"issuerLocality": [
"str" # Optional. Required.
],
"issuerOrganizationalUnits": [
"str" # Optional. Required.
],
"issuerOrganizations": [
"str" # Optional. Required.
],
"issuerState": [
"str" # Optional. Required.
],
"keyAlgorithm": "str", # Optional. Required.
"keySize": 0, # Optional. Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"organizationalUnits": [
"str" # Optional. Required.
],
"organizations": [
"str" # Optional. Required.
],
"recent": bool, # Optional. Required.
"selfSigned": bool, # Optional. Required.
"serialNumber": "str", # Optional. Required.
"sha1": "str", # Optional. Required.
"sigAlgName": "str", # Optional. Required.
"sigAlgOid": "str", # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"subjectAlternativeNames": [
"str" # Optional. Required.
],
"subjectCommonNames": [
"str" # Optional. Required.
],
"subjectCountry": [
"str" # Optional. Required.
],
"subjectLocality": [
"str" # Optional. Required.
],
"subjectOrganizationalUnits": [
"str" # Optional. Required.
],
"subjectOrganizations": [
"str" # Optional. Required.
],
"subjectState": [
"str" # Optional. Required.
],
"validationType": "str", # Optional. Known values
are: "domainValidation", "organizationValidation", and
"extendedValidation".
"version": 0 # Optional. Required.
}
],
"sslServerConfig": [
{
"cipherSuites": [
"str" # Optional. Required.
],
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"tlsVersions": [
"str" # Optional. Required.
]
}
],
"webComponents": [
{
"count": 0, # Optional. Required.
"cve": [
{
"cvss3Summary": {
"attackComplexity": "str", #
Optional. Required.
"attackVector": "str", #
Optional. Required.
"availabilityImpact": "str",
# Optional. Required.
"baseScore": 0.0, #
Optional. Required.
"baseSeverity": "str", #
Optional. Required.
"confidentialityImpact":
"str", # Optional. Required.
"exploitCodeMaturity": "str",
# Optional. Required.
"exploitabilityScore": 0.0,
# Optional. Required.
"impactScore": 0.0, #
Optional. Required.
"integrityImpact": "str", #
Optional. Required.
"privilegesRequired": "str",
# Optional. Required.
"remediationLevel": "str", #
Optional. Required.
"reportConfidence": "str", #
Optional. Required.
"scope": "str", # Optional.
Required.
"userInteraction": "str", #
Optional. Required.
"vectorString": "str", #
Optional. Required.
"version": "str" # Optional.
Required.
},
"cvssScore": 0.0, # Optional.
Required.
"cweId": "str", # Optional.
Required.
"name": "str" # Optional. Required.
}
],
"endOfLife": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"name": "str", # Optional. Required.
"ports": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"port": 0 # Optional. Required.
}
],
"recent": bool, # Optional. Required.
"ruleId": [
"str" # Optional. Required.
],
"service": "str", # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"type": "str", # Optional. Required.
"version": "str" # Optional. Required.
}
],
"webserver": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": bool # Optional. Required.
}
]
},
"kind": "host",
"auditTrail": [
{
"displayName": "str", # Optional. The name that can be used
for display purposes.
"id": "str", # Optional. The system generated unique id for
the resource.
"kind": "str", # Optional. The kind of asset. Known values
are: "as", "contact", "domain", "host", "ipAddress", "ipBlock", "page",
and "sslCert".
"name": "str", # Optional. The caller provided unique name
for the resource.
"reason": "str" # Optional. An explanation of why this audit
trail node was discovered from the previous node.
}
],
"createdDate": "2020-02-20 00:00:00", # Optional. The date this asset was
first added to this workspace.
"discoGroupName": "str", # Optional. The name of the DiscoveryGroup that
brought added this asset to the workspace.
"displayName": "str", # Optional. The name that can be used for display
purposes.
"externalId": "str", # Optional. An optional customer provided identifier
for this asset.
"id": "str", # Optional. The system generated unique id for the resource.
"labels": [
"str" # Optional. Customer labels assigned to this asset.
],
"name": "str", # Optional. The caller provided unique name for the resource.
"reason": "str", # Optional.
"state": "str", # Optional. Known values are: "candidate", "confirmed",
"dismissed", "candidateInvestigate", "associatedPartner", "associatedThirdparty",
and "archived".
"updatedDate": "2020-02-20 00:00:00", # Optional. The date this asset was
last updated for this workspace.
"uuid": "str", # Optional. Global UUID for the asset.
"wildcard": bool # Optional. An indicator of whether this asset represents a
wildcard rollup of assets on this domain.
}
# JSON input template for discriminator value "ipAddress":
asset_response = {
"asset": {
"asns": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": 0 # Optional. Required.
}
],
"attributes": [
{
"attributeType": "str", # Optional. Required.
"attributeValue": "str", # Optional. Required.
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
]
}
],
"banners": [
{
"banner": "str", # Optional. Required.
"bannerMetadata": "str", # Optional. Required.
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"port": 0, # Optional. Required.
"recent": bool, # Optional. Required.
"scanType": "str", # Optional. Required.
"sha256": "str", # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
]
}
],
"cookies": [
{
"cookieDomain": "str", # Optional. Required.
"cookieExpiryDate": "2020-02-20 00:00:00", #
Optional. Required.
"cookieName": "str", # Optional. Required.
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool # Optional. Required.
}
],
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional. Required.
"headers": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"headerName": "str", # Optional. Required.
"headerValue": "str", # Optional. Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool # Optional. Required.
}
],
"hosts": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"ipAddress": "str", # Optional. Required.
"ipBlocks": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"ipBlock": "str", # Optional. Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
]
}
],
"ipv4": bool, # Optional. Required.
"ipv6": bool, # Optional. Required.
"lastSeen": "2020-02-20 00:00:00", # Optional. Required.
"location": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": {
"areaCode": 0, # Optional. Required.
"city": "str", # Optional. Required.
"countryCode": "str", # Optional. Required.
"countryName": "str", # Optional. Required.
"dmaCode": 0, # Optional. Required.
"latitude": 0.0, # Optional. Required.
"longitude": 0.0, # Optional. Required.
"metroCodeId": 0, # Optional. Required.
"postalCode": "str", # Optional. Required.
"region": "str", # Optional. Required.
"regionName": "str" # Optional. Required.
}
}
],
"mxRecord": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": bool # Optional. Required.
}
],
"netRanges": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"nsRecord": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": bool # Optional. Required.
}
],
"nxdomain": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": bool # Optional. Required.
}
],
"reputations": [
{
"cidr": "str", # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"listName": "str", # Optional. Required.
"listUpdatedAt": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"threatType": "str", # Optional. Required.
"trusted": bool # Optional. Required.
}
],
"scanMetadata": [
{
"bannerMetadata": "str", # Optional. Required.
"endScan": "2020-02-20 00:00:00", # Optional.
Required.
"port": 0, # Optional. Required.
"startScan": "2020-02-20 00:00:00" # Optional.
Required.
}
],
"services": [
{
"count": 0, # Optional. Required.
"exceptions": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"recent": bool, # Optional.
Required.
"sources": [
{
"count": 0, #
Optional. Required.
"firstSeen":
"2020-02-20 00:00:00", # Optional. Required.
"lastSeen":
"2020-02-20 00:00:00", # Optional. Required.
"reason": "str", #
Optional. Required.
"source": "str" #
Optional. Required.
}
],
"value": "str" # Optional. Required.
}
],
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"port": 0, # Optional. Required.
"portStates": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"port": 0, # Optional. Required.
"recent": bool, # Optional.
Required.
"value": "str" # Optional. Known
values are: "open", "closed", and "filtered".
}
],
"recent": bool, # Optional. Required.
"scheme": "str", # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"sslCerts": [
{
"certificateAuthority": bool, #
Optional. Required.
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"invalidAfter": "2020-02-20
00:00:00", # Optional. Required.
"invalidBefore": "2020-02-20
00:00:00", # Optional. Required.
"issuerAlternativeNames": [
"str" # Optional. Required.
],
"issuerCommonNames": [
"str" # Optional. Required.
],
"issuerCountry": [
"str" # Optional. Required.
],
"issuerLocality": [
"str" # Optional. Required.
],
"issuerOrganizationalUnits": [
"str" # Optional. Required.
],
"issuerOrganizations": [
"str" # Optional. Required.
],
"issuerState": [
"str" # Optional. Required.
],
"keyAlgorithm": "str", # Optional.
Required.
"keySize": 0, # Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"organizationalUnits": [
"str" # Optional. Required.
],
"organizations": [
"str" # Optional. Required.
],
"recent": bool, # Optional.
Required.
"selfSigned": bool, # Optional.
Required.
"serialNumber": "str", # Optional.
Required.
"sha1": "str", # Optional. Required.
"sigAlgName": "str", # Optional.
Required.
"sigAlgOid": "str", # Optional.
Required.
"sources": [
{
"count": 0, #
Optional. Required.
"firstSeen":
"2020-02-20 00:00:00", # Optional. Required.
"lastSeen":
"2020-02-20 00:00:00", # Optional. Required.
"reason": "str", #
Optional. Required.
"source": "str" #
Optional. Required.
}
],
"subjectAlternativeNames": [
"str" # Optional. Required.
],
"subjectCommonNames": [
"str" # Optional. Required.
],
"subjectCountry": [
"str" # Optional. Required.
],
"subjectLocality": [
"str" # Optional. Required.
],
"subjectOrganizationalUnits": [
"str" # Optional. Required.
],
"subjectOrganizations": [
"str" # Optional. Required.
],
"subjectState": [
"str" # Optional. Required.
],
"validationType": "str", # Optional.
Known values are: "domainValidation",
"organizationValidation", and "extendedValidation".
"version": 0 # Optional. Required.
}
],
"webComponents": [
{
"count": 0, # Optional. Required.
"cve": [
{
"cvss3Summary": {
"attackComplexity": "str", # Optional. Required.
"attackVector": "str", # Optional. Required.
"availabilityImpact": "str", # Optional.
Required.
"baseScore":
0.0, # Optional. Required.
"baseSeverity": "str", # Optional. Required.
"confidentialityImpact": "str", # Optional.
Required.
"exploitCodeMaturity": "str", # Optional.
Required.
"exploitabilityScore": 0.0, # Optional.
Required.
"impactScore": 0.0, # Optional. Required.
"integrityImpact": "str", # Optional. Required.
"privilegesRequired": "str", # Optional.
Required.
"remediationLevel": "str", # Optional. Required.
"reportConfidence": "str", # Optional. Required.
"scope":
"str", # Optional. Required.
"userInteraction": "str", # Optional. Required.
"vectorString": "str", # Optional. Required.
"version":
"str" # Optional. Required.
},
"cvssScore": 0.0, #
Optional. Required.
"cweId": "str", #
Optional. Required.
"name": "str" #
Optional. Required.
}
],
"endOfLife": 0, # Optional.
Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"name": "str", # Optional. Required.
"ports": [
{
"count": 0, #
Optional. Required.
"firstSeen":
"2020-02-20 00:00:00", # Optional. Required.
"lastSeen":
"2020-02-20 00:00:00", # Optional. Required.
"port": 0 #
Optional. Required.
}
],
"recent": bool, # Optional.
Required.
"ruleId": [
"str" # Optional. Required.
],
"service": "str", # Optional.
Required.
"sources": [
{
"count": 0, #
Optional. Required.
"firstSeen":
"2020-02-20 00:00:00", # Optional. Required.
"lastSeen":
"2020-02-20 00:00:00", # Optional. Required.
"reason": "str", #
Optional. Required.
"source": "str" #
Optional. Required.
}
],
"type": "str", # Optional. Required.
"version": "str" # Optional.
Required.
}
]
}
],
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"reason": "str", # Optional. Required.
"source": "str" # Optional. Required.
}
],
"sslCerts": [
{
"certificateAuthority": bool, # Optional. Required.
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"invalidAfter": "2020-02-20 00:00:00", # Optional.
Required.
"invalidBefore": "2020-02-20 00:00:00", # Optional.
Required.
"issuerAlternativeNames": [
"str" # Optional. Required.
],
"issuerCommonNames": [
"str" # Optional. Required.
],
"issuerCountry": [
"str" # Optional. Required.
],
"issuerLocality": [
"str" # Optional. Required.
],
"issuerOrganizationalUnits": [
"str" # Optional. Required.
],
"issuerOrganizations": [
"str" # Optional. Required.
],
"issuerState": [
"str" # Optional. Required.
],
"keyAlgorithm": "str", # Optional. Required.
"keySize": 0, # Optional. Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"organizationalUnits": [
"str" # Optional. Required.
],
"organizations": [
"str" # Optional. Required.
],
"recent": bool, # Optional. Required.
"selfSigned": bool, # Optional. Required.
"serialNumber": "str", # Optional. Required.
"sha1": "str", # Optional. Required.
"sigAlgName": "str", # Optional. Required.
"sigAlgOid": "str", # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"subjectAlternativeNames": [
"str" # Optional. Required.
],
"subjectCommonNames": [
"str" # Optional. Required.
],
"subjectCountry": [
"str" # Optional. Required.
],
"subjectLocality": [
"str" # Optional. Required.
],
"subjectOrganizationalUnits": [
"str" # Optional. Required.
],
"subjectOrganizations": [
"str" # Optional. Required.
],
"subjectState": [
"str" # Optional. Required.
],
"validationType": "str", # Optional. Known values
are: "domainValidation", "organizationValidation", and
"extendedValidation".
"version": 0 # Optional. Required.
}
],
"sslServerConfig": [
{
"cipherSuites": [
"str" # Optional. Required.
],
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"tlsVersions": [
"str" # Optional. Required.
]
}
],
"webComponents": [
{
"count": 0, # Optional. Required.
"cve": [
{
"cvss3Summary": {
"attackComplexity": "str", #
Optional. Required.
"attackVector": "str", #
Optional. Required.
"availabilityImpact": "str",
# Optional. Required.
"baseScore": 0.0, #
Optional. Required.
"baseSeverity": "str", #
Optional. Required.
"confidentialityImpact":
"str", # Optional. Required.
"exploitCodeMaturity": "str",
# Optional. Required.
"exploitabilityScore": 0.0,
# Optional. Required.
"impactScore": 0.0, #
Optional. Required.
"integrityImpact": "str", #
Optional. Required.
"privilegesRequired": "str",
# Optional. Required.
"remediationLevel": "str", #
Optional. Required.
"reportConfidence": "str", #
Optional. Required.
"scope": "str", # Optional.
Required.
"userInteraction": "str", #
Optional. Required.
"vectorString": "str", #
Optional. Required.
"version": "str" # Optional.
Required.
},
"cvssScore": 0.0, # Optional.
Required.
"cweId": "str", # Optional.
Required.
"name": "str" # Optional. Required.
}
],
"endOfLife": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"name": "str", # Optional. Required.
"ports": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"port": 0 # Optional. Required.
}
],
"recent": bool, # Optional. Required.
"ruleId": [
"str" # Optional. Required.
],
"service": "str", # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"type": "str", # Optional. Required.
"version": "str" # Optional. Required.
}
]
},
"kind": "ipAddress",
"auditTrail": [
{
"displayName": "str", # Optional. The name that can be used
for display purposes.
"id": "str", # Optional. The system generated unique id for
the resource.
"kind": "str", # Optional. The kind of asset. Known values
are: "as", "contact", "domain", "host", "ipAddress", "ipBlock", "page",
and "sslCert".
"name": "str", # Optional. The caller provided unique name
for the resource.
"reason": "str" # Optional. An explanation of why this audit
trail node was discovered from the previous node.
}
],
"createdDate": "2020-02-20 00:00:00", # Optional. The date this asset was
first added to this workspace.
"discoGroupName": "str", # Optional. The name of the DiscoveryGroup that
brought added this asset to the workspace.
"displayName": "str", # Optional. The name that can be used for display
purposes.
"externalId": "str", # Optional. An optional customer provided identifier
for this asset.
"id": "str", # Optional. The system generated unique id for the resource.
"labels": [
"str" # Optional. Customer labels assigned to this asset.
],
"name": "str", # Optional. The caller provided unique name for the resource.
"reason": "str", # Optional.
"state": "str", # Optional. Known values are: "candidate", "confirmed",
"dismissed", "candidateInvestigate", "associatedPartner", "associatedThirdparty",
and "archived".
"updatedDate": "2020-02-20 00:00:00", # Optional. The date this asset was
last updated for this workspace.
"uuid": "str", # Optional. Global UUID for the asset.
"wildcard": bool # Optional. An indicator of whether this asset represents a
wildcard rollup of assets on this domain.
}
# response body for status code(s): 200
response == asset_response
"""
_headers = kwargs.pop("headers", {}) or {}
_params = kwargs.pop("params", {}) or {}
cls: ClsType[JSON] = kwargs.pop("cls", None)
error_map = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
304: ResourceNotModifiedError,
}
error_map.update(kwargs.pop("error_map", {}) or {})
def prepare_request(next_link=None):
if not next_link:
request = build_assets_list_request(
subscription_id=self._config.subscription_id,
resource_group_name=self._config.resource_group_name,
workspace_name=self._config.workspace_name,
filter=filter,
orderby=orderby,
skip=skip,
mark=mark,
api_version=self._config.api_version,
headers=_headers,
params=_params,
)
path_format_arguments = {
"endpoint": self._serialize.url("self._config.endpoint", self._config.endpoint, "str"),
}
request.url = self._client.format_url(request.url, **path_format_arguments)
else:
# make call to next link with the client's api-version
_parsed_next_link = urllib.parse.urlparse(next_link)
_next_request_params = case_insensitive_dict(
{
key: [urllib.parse.quote(v) for v in value]
for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
}
)
_next_request_params["api-version"] = self._config.api_version
request = HttpRequest(
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
)
path_format_arguments = {
"endpoint": self._serialize.url("self._config.endpoint", self._config.endpoint, "str"),
}
request.url = self._client.format_url(request.url, **path_format_arguments)
return request
async def extract_data(pipeline_response):
deserialized = pipeline_response.http_response.json()
list_of_elem = deserialized["content"]
if cls:
list_of_elem = cls(list_of_elem) # type: ignore
return deserialized.get("nextLink") or None, AsyncList(list_of_elem)
async def get_next(next_link=None):
request = prepare_request(next_link)
pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
request, stream=False, **kwargs
)
response = pipeline_response.http_response
if response.status_code not in [200]:
map_error(status_code=response.status_code, response=response, error_map=error_map)
raise HttpResponseError(response=response)
return pipeline_response
return AsyncItemPaged(get_next, extract_data)
@overload
async def update(
self, body: JSON, *, filter: Optional[str] = None, content_type: str = "application/json", **kwargs: Any
) -> JSON:
"""Update labels on assets matching the provided filter.
Update labels on assets matching the provided filter.
:param body: Required.
:type body: JSON
:keyword filter: An expression on the resource type that selects the resources to be returned.
Default value is None.
:paramtype filter: str
:keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
Default value is "application/json".
:paramtype content_type: str
:return: JSON object
:rtype: JSON
:raises ~azure.core.exceptions.HttpResponseError:
Example:
.. code-block:: python
# JSON input template you can fill out and use as your body input.
body = {
"externalId": "str", # Optional. A string which can be used to identify the
asset in external systems.
"labels": {
"str": bool # Optional. Any Labels to update the asset with.
},
"state": "str", # Optional. The state to update the asset to. Known values
are: "candidate", "confirmed", "dismissed", "candidateInvestigate",
"associatedPartner", and "associatedThirdparty".
"transfers": "str" # Optional. A list of asset types to cascade the updates
to. Known values are: "as", "contact", "domain", "host", "ipAddress", "ipBlock",
"page", and "sslCert".
}
# response body for status code(s): 200
response == {
"completedAt": "2020-02-20 00:00:00", # Optional. The time the task
completed.
"id": "str", # Optional. The unique identifier of the task.
"lastPolledAt": "2020-02-20 00:00:00", # Optional. The last time the status
of the task was updated.
"metadata": {
"str": {} # Optional. Attributes unique to the task. This differs
by task type.
},
"phase": "str", # Optional. The phase the task is in. Known values are:
"running", "polling", and "complete".
"reason": "str", # Optional. The reason the task was moved into its current
state, if the task wasn't completed.
"startedAt": "2020-02-20 00:00:00", # Optional. The time the task started.
"state": "str" # Optional. The state the task is in. Known values are:
"pending", "running", "paused", "complete", "incomplete", "failed", and
"warning".
}
"""
@overload
async def update(
self, body: IO, *, filter: Optional[str] = None, content_type: str = "application/json", **kwargs: Any
) -> JSON:
"""Update labels on assets matching the provided filter.
Update labels on assets matching the provided filter.
:param body: Required.
:type body: IO
:keyword filter: An expression on the resource type that selects the resources to be returned.
Default value is None.
:paramtype filter: str
:keyword content_type: Body Parameter content-type. Content type parameter for binary body.
Default value is "application/json".
:paramtype content_type: str
:return: JSON object
:rtype: JSON
:raises ~azure.core.exceptions.HttpResponseError:
Example:
.. code-block:: python
# response body for status code(s): 200
response == {
"completedAt": "2020-02-20 00:00:00", # Optional. The time the task
completed.
"id": "str", # Optional. The unique identifier of the task.
"lastPolledAt": "2020-02-20 00:00:00", # Optional. The last time the status
of the task was updated.
"metadata": {
"str": {} # Optional. Attributes unique to the task. This differs
by task type.
},
"phase": "str", # Optional. The phase the task is in. Known values are:
"running", "polling", and "complete".
"reason": "str", # Optional. The reason the task was moved into its current
state, if the task wasn't completed.
"startedAt": "2020-02-20 00:00:00", # Optional. The time the task started.
"state": "str" # Optional. The state the task is in. Known values are:
"pending", "running", "paused", "complete", "incomplete", "failed", and
"warning".
}
"""
[docs] @distributed_trace_async
async def update(self, body: Union[JSON, IO], *, filter: Optional[str] = None, **kwargs: Any) -> JSON:
"""Update labels on assets matching the provided filter.
Update labels on assets matching the provided filter.
:param body: Is either a model type or a IO type. Required.
:type body: JSON or IO
:keyword filter: An expression on the resource type that selects the resources to be returned.
Default value is None.
:paramtype filter: str
:keyword content_type: Body Parameter content-type. Known values are: 'application/json'.
Default value is None.
:paramtype content_type: str
:return: JSON object
:rtype: JSON
:raises ~azure.core.exceptions.HttpResponseError:
Example:
.. code-block:: python
# response body for status code(s): 200
response == {
"completedAt": "2020-02-20 00:00:00", # Optional. The time the task
completed.
"id": "str", # Optional. The unique identifier of the task.
"lastPolledAt": "2020-02-20 00:00:00", # Optional. The last time the status
of the task was updated.
"metadata": {
"str": {} # Optional. Attributes unique to the task. This differs
by task type.
},
"phase": "str", # Optional. The phase the task is in. Known values are:
"running", "polling", and "complete".
"reason": "str", # Optional. The reason the task was moved into its current
state, if the task wasn't completed.
"startedAt": "2020-02-20 00:00:00", # Optional. The time the task started.
"state": "str" # Optional. The state the task is in. Known values are:
"pending", "running", "paused", "complete", "incomplete", "failed", and
"warning".
}
"""
error_map = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
304: ResourceNotModifiedError,
}
error_map.update(kwargs.pop("error_map", {}) or {})
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = kwargs.pop("params", {}) or {}
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
cls: ClsType[JSON] = kwargs.pop("cls", None)
content_type = content_type or "application/json"
_json = None
_content = None
if isinstance(body, (IO, bytes)):
_content = body
else:
_json = body
request = build_assets_update_request(
subscription_id=self._config.subscription_id,
resource_group_name=self._config.resource_group_name,
workspace_name=self._config.workspace_name,
filter=filter,
content_type=content_type,
api_version=self._config.api_version,
json=_json,
content=_content,
headers=_headers,
params=_params,
)
path_format_arguments = {
"endpoint": self._serialize.url("self._config.endpoint", self._config.endpoint, "str"),
}
request.url = self._client.format_url(request.url, **path_format_arguments)
pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
request, stream=False, **kwargs
)
response = pipeline_response.http_response
if response.status_code not in [200]:
map_error(status_code=response.status_code, response=response, error_map=error_map)
raise HttpResponseError(response=response)
if response.content:
deserialized = response.json()
else:
deserialized = None
if cls:
return cls(pipeline_response, cast(JSON, deserialized), {})
return cast(JSON, deserialized)
[docs] @distributed_trace_async
async def get(self, asset_id: str, **kwargs: Any) -> JSON:
"""Retrieve an asset by assetId.
Retrieve an asset by assetId.
:param asset_id: The unique identifier for the asset. Ids are formatted as
':code:`<kind>`$$:code:`<name>`' and can optionally be Base64 encoded if they contain special
characters. Required.
:type asset_id: str
:return: JSON object
:rtype: JSON
:raises ~azure.core.exceptions.HttpResponseError:
Example:
.. code-block:: python
# The response is polymorphic. The following are possible polymorphic responses based
off discriminator "kind":
# JSON input template for discriminator value "as":
asset_response = {
"asset": {
"adminContacts": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"adminNames": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"adminOrgs": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"adminPhones": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"asNames": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"asn": 0, # Optional. Required.
"count": 0, # Optional. Required.
"countries": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"detailedFromWhoisAt": "2020-02-20 00:00:00", # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional. Required.
"lastSeen": "2020-02-20 00:00:00", # Optional. Required.
"orgIds": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"orgNames": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"registrantContacts": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"registrantNames": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"registrantPhones": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"registrarCreatedAt": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": 0 # Optional. Required.
}
],
"registrarNames": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"registrarUpdatedAt": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": 0 # Optional. Required.
}
],
"registries": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"reason": "str", # Optional. Required.
"source": "str" # Optional. Required.
}
],
"technicalContacts": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"technicalNames": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"technicalOrgs": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"technicalPhones": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
]
},
"kind": "as",
"auditTrail": [
{
"displayName": "str", # Optional. The name that can be used
for display purposes.
"id": "str", # Optional. The system generated unique id for
the resource.
"kind": "str", # Optional. The kind of asset. Known values
are: "as", "contact", "domain", "host", "ipAddress", "ipBlock", "page",
and "sslCert".
"name": "str", # Optional. The caller provided unique name
for the resource.
"reason": "str" # Optional. An explanation of why this audit
trail node was discovered from the previous node.
}
],
"createdDate": "2020-02-20 00:00:00", # Optional. The date this asset was
first added to this workspace.
"discoGroupName": "str", # Optional. The name of the DiscoveryGroup that
brought added this asset to the workspace.
"displayName": "str", # Optional. The name that can be used for display
purposes.
"externalId": "str", # Optional. An optional customer provided identifier
for this asset.
"id": "str", # Optional. The system generated unique id for the resource.
"labels": [
"str" # Optional. Customer labels assigned to this asset.
],
"name": "str", # Optional. The caller provided unique name for the resource.
"reason": "str", # Optional.
"state": "str", # Optional. Known values are: "candidate", "confirmed",
"dismissed", "candidateInvestigate", "associatedPartner", "associatedThirdparty",
and "archived".
"updatedDate": "2020-02-20 00:00:00", # Optional. The date this asset was
last updated for this workspace.
"uuid": "str", # Optional. Global UUID for the asset.
"wildcard": bool # Optional. An indicator of whether this asset represents a
wildcard rollup of assets on this domain.
}
# JSON input template for discriminator value "contact":
asset_response = {
"asset": {
"count": 0, # Optional. Required.
"email": "str", # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional. Required.
"lastSeen": "2020-02-20 00:00:00", # Optional. Required.
"names": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"organizations": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"reason": "str", # Optional. Required.
"source": "str" # Optional. Required.
}
]
},
"kind": "contact",
"auditTrail": [
{
"displayName": "str", # Optional. The name that can be used
for display purposes.
"id": "str", # Optional. The system generated unique id for
the resource.
"kind": "str", # Optional. The kind of asset. Known values
are: "as", "contact", "domain", "host", "ipAddress", "ipBlock", "page",
and "sslCert".
"name": "str", # Optional. The caller provided unique name
for the resource.
"reason": "str" # Optional. An explanation of why this audit
trail node was discovered from the previous node.
}
],
"createdDate": "2020-02-20 00:00:00", # Optional. The date this asset was
first added to this workspace.
"discoGroupName": "str", # Optional. The name of the DiscoveryGroup that
brought added this asset to the workspace.
"displayName": "str", # Optional. The name that can be used for display
purposes.
"externalId": "str", # Optional. An optional customer provided identifier
for this asset.
"id": "str", # Optional. The system generated unique id for the resource.
"labels": [
"str" # Optional. Customer labels assigned to this asset.
],
"name": "str", # Optional. The caller provided unique name for the resource.
"reason": "str", # Optional.
"state": "str", # Optional. Known values are: "candidate", "confirmed",
"dismissed", "candidateInvestigate", "associatedPartner", "associatedThirdparty",
and "archived".
"updatedDate": "2020-02-20 00:00:00", # Optional. The date this asset was
last updated for this workspace.
"uuid": "str", # Optional. Global UUID for the asset.
"wildcard": bool # Optional. An indicator of whether this asset represents a
wildcard rollup of assets on this domain.
}
# JSON input template for discriminator value "domain":
asset_response = {
"asset": {
"adminContacts": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"adminNames": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"adminOrgs": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"adminPhones": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"alexaInfos": [
{
"alexaRank": 0, # Optional. Required.
"category": "str", # Optional. Required.
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool # Optional. Required.
}
],
"count": 0, # Optional. Required.
"detailedFromWhoisAt": "2020-02-20 00:00:00", # Optional. Required.
"domain": "str", # Optional. Required.
"domainStatuses": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"firstSeen": "2020-02-20 00:00:00", # Optional. Required.
"lastSeen": "2020-02-20 00:00:00", # Optional. Required.
"mailServers": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"nameServers": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"parkedDomain": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": bool # Optional. Required.
}
],
"registrantContacts": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"registrantNames": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"registrantOrgs": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"registrantPhones": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"registrarCreatedAt": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": 0 # Optional. Required.
}
],
"registrarExpiresAt": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": 0 # Optional. Required.
}
],
"registrarIanaIds": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": 0 # Optional. Required.
}
],
"registrarNames": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"registrarUpdatedAt": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": 0 # Optional. Required.
}
],
"soaRecords": [
{
"count": 0, # Optional. Required.
"email": "str", # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"nameServer": "str", # Optional. Required.
"recent": bool, # Optional. Required.
"serialNumber": 0 # Optional. Required.
}
],
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"reason": "str", # Optional. Required.
"source": "str" # Optional. Required.
}
],
"technicalContacts": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"technicalNames": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"technicalOrgs": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"technicalPhones": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"whoisId": 0, # Optional. Required.
"whoisServers": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
]
},
"kind": "domain",
"auditTrail": [
{
"displayName": "str", # Optional. The name that can be used
for display purposes.
"id": "str", # Optional. The system generated unique id for
the resource.
"kind": "str", # Optional. The kind of asset. Known values
are: "as", "contact", "domain", "host", "ipAddress", "ipBlock", "page",
and "sslCert".
"name": "str", # Optional. The caller provided unique name
for the resource.
"reason": "str" # Optional. An explanation of why this audit
trail node was discovered from the previous node.
}
],
"createdDate": "2020-02-20 00:00:00", # Optional. The date this asset was
first added to this workspace.
"discoGroupName": "str", # Optional. The name of the DiscoveryGroup that
brought added this asset to the workspace.
"displayName": "str", # Optional. The name that can be used for display
purposes.
"externalId": "str", # Optional. An optional customer provided identifier
for this asset.
"id": "str", # Optional. The system generated unique id for the resource.
"labels": [
"str" # Optional. Customer labels assigned to this asset.
],
"name": "str", # Optional. The caller provided unique name for the resource.
"reason": "str", # Optional.
"state": "str", # Optional. Known values are: "candidate", "confirmed",
"dismissed", "candidateInvestigate", "associatedPartner", "associatedThirdparty",
and "archived".
"updatedDate": "2020-02-20 00:00:00", # Optional. The date this asset was
last updated for this workspace.
"uuid": "str", # Optional. Global UUID for the asset.
"wildcard": bool # Optional. An indicator of whether this asset represents a
wildcard rollup of assets on this domain.
}
# JSON input template for discriminator value "host":
asset_response = {
"asset": {
"asns": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": 0 # Optional. Required.
}
],
"attributes": [
{
"attributeType": "str", # Optional. Required.
"attributeValue": "str", # Optional. Required.
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
]
}
],
"banners": [
{
"banner": "str", # Optional. Required.
"bannerMetadata": "str", # Optional. Required.
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"port": 0, # Optional. Required.
"recent": bool, # Optional. Required.
"scanType": "str", # Optional. Required.
"sha256": "str", # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
]
}
],
"childHosts": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"cnames": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"cookies": [
{
"cookieDomain": "str", # Optional. Required.
"cookieExpiryDate": "2020-02-20 00:00:00", #
Optional. Required.
"cookieName": "str", # Optional. Required.
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool # Optional. Required.
}
],
"count": 0, # Optional. Required.
"domain": "str", # Optional. Required.
"domainAsset": {
"adminContacts": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", #
Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional.
Required.
"firstSeen": "2020-02-20
00:00:00", # Optional. Required.
"lastSeen": "2020-02-20
00:00:00", # Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"adminNames": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", #
Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional.
Required.
"firstSeen": "2020-02-20
00:00:00", # Optional. Required.
"lastSeen": "2020-02-20
00:00:00", # Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"adminOrgs": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", #
Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional.
Required.
"firstSeen": "2020-02-20
00:00:00", # Optional. Required.
"lastSeen": "2020-02-20
00:00:00", # Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"adminPhones": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", #
Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional.
Required.
"firstSeen": "2020-02-20
00:00:00", # Optional. Required.
"lastSeen": "2020-02-20
00:00:00", # Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"alexaInfos": [
{
"alexaRank": 0, # Optional. Required.
"category": "str", # Optional. Required.
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", #
Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"recent": bool # Optional. Required.
}
],
"count": 0, # Optional. Required.
"detailedFromWhoisAt": "2020-02-20 00:00:00", # Optional.
Required.
"domain": "str", # Optional. Required.
"domainStatuses": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", #
Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional.
Required.
"firstSeen": "2020-02-20
00:00:00", # Optional. Required.
"lastSeen": "2020-02-20
00:00:00", # Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"firstSeen": "2020-02-20 00:00:00", # Optional. Required.
"lastSeen": "2020-02-20 00:00:00", # Optional. Required.
"mailServers": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", #
Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional.
Required.
"firstSeen": "2020-02-20
00:00:00", # Optional. Required.
"lastSeen": "2020-02-20
00:00:00", # Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"nameServers": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", #
Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional.
Required.
"firstSeen": "2020-02-20
00:00:00", # Optional. Required.
"lastSeen": "2020-02-20
00:00:00", # Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"parkedDomain": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", #
Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional.
Required.
"firstSeen": "2020-02-20
00:00:00", # Optional. Required.
"lastSeen": "2020-02-20
00:00:00", # Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": bool # Optional. Required.
}
],
"registrantContacts": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", #
Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional.
Required.
"firstSeen": "2020-02-20
00:00:00", # Optional. Required.
"lastSeen": "2020-02-20
00:00:00", # Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"registrantNames": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", #
Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional.
Required.
"firstSeen": "2020-02-20
00:00:00", # Optional. Required.
"lastSeen": "2020-02-20
00:00:00", # Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"registrantOrgs": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", #
Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional.
Required.
"firstSeen": "2020-02-20
00:00:00", # Optional. Required.
"lastSeen": "2020-02-20
00:00:00", # Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"registrantPhones": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", #
Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional.
Required.
"firstSeen": "2020-02-20
00:00:00", # Optional. Required.
"lastSeen": "2020-02-20
00:00:00", # Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"registrarCreatedAt": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", #
Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional.
Required.
"firstSeen": "2020-02-20
00:00:00", # Optional. Required.
"lastSeen": "2020-02-20
00:00:00", # Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": 0 # Optional. Required.
}
],
"registrarExpiresAt": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", #
Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional.
Required.
"firstSeen": "2020-02-20
00:00:00", # Optional. Required.
"lastSeen": "2020-02-20
00:00:00", # Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": 0 # Optional. Required.
}
],
"registrarIanaIds": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", #
Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional.
Required.
"firstSeen": "2020-02-20
00:00:00", # Optional. Required.
"lastSeen": "2020-02-20
00:00:00", # Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": 0 # Optional. Required.
}
],
"registrarNames": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", #
Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional.
Required.
"firstSeen": "2020-02-20
00:00:00", # Optional. Required.
"lastSeen": "2020-02-20
00:00:00", # Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"registrarUpdatedAt": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", #
Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional.
Required.
"firstSeen": "2020-02-20
00:00:00", # Optional. Required.
"lastSeen": "2020-02-20
00:00:00", # Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": 0 # Optional. Required.
}
],
"soaRecords": [
{
"count": 0, # Optional. Required.
"email": "str", # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", #
Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"nameServer": "str", # Optional. Required.
"recent": bool, # Optional. Required.
"serialNumber": 0 # Optional. Required.
}
],
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", #
Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional. Required.
"source": "str" # Optional. Required.
}
],
"technicalContacts": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", #
Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional.
Required.
"firstSeen": "2020-02-20
00:00:00", # Optional. Required.
"lastSeen": "2020-02-20
00:00:00", # Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"technicalNames": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", #
Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional.
Required.
"firstSeen": "2020-02-20
00:00:00", # Optional. Required.
"lastSeen": "2020-02-20
00:00:00", # Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"technicalOrgs": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", #
Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional.
Required.
"firstSeen": "2020-02-20
00:00:00", # Optional. Required.
"lastSeen": "2020-02-20
00:00:00", # Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"technicalPhones": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", #
Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional.
Required.
"firstSeen": "2020-02-20
00:00:00", # Optional. Required.
"lastSeen": "2020-02-20
00:00:00", # Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"whoisId": 0, # Optional. Required.
"whoisServers": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", #
Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional.
Required.
"firstSeen": "2020-02-20
00:00:00", # Optional. Required.
"lastSeen": "2020-02-20
00:00:00", # Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
]
},
"firstSeen": "2020-02-20 00:00:00", # Optional. Required.
"headers": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"headerName": "str", # Optional. Required.
"headerValue": "str", # Optional. Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool # Optional. Required.
}
],
"host": "str", # Optional. Required.
"hostCore": {
"alexaRank": 0, # Optional. Required.
"blacklistCauseCount": 0, # Optional. Required.
"blacklistCauseFirstSeen": "2020-02-20 00:00:00", #
Optional. Required.
"blacklistCauseLastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"blacklistResourceCount": 0, # Optional. Required.
"blacklistResourceFirstSeen": "2020-02-20 00:00:00", #
Optional. Required.
"blacklistResourceLastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"blacklistSequenceCount": 0, # Optional. Required.
"blacklistSequenceFirstSeen": "2020-02-20 00:00:00", #
Optional. Required.
"blacklistSequenceLastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"count": 0, # Optional. Required.
"domain": "str", # Optional. Required.
"domainMalwareReputationScore": 0, # Optional. Required.
"domainPhishReputationScore": 0, # Optional. Required.
"domainReputationScore": 0, # Optional. Required.
"domainScamReputationScore": 0, # Optional. Required.
"domainSpamReputationScore": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional. Required.
"host": "str", # Optional. Required.
"hostMalwareReputationScore": 0, # Optional. Required.
"hostPhishReputationScore": 0, # Optional. Required.
"hostReputationScore": 0, # Optional. Required.
"hostScamReputationScore": 0, # Optional. Required.
"hostSpamReputationScore": 0, # Optional. Required.
"lastSeen": "2020-02-20 00:00:00", # Optional. Required.
"malwareCauseCount": 0, # Optional. Required.
"malwareResourceCount": 0, # Optional. Required.
"malwareSequenceCount": 0, # Optional. Required.
"phishCauseCount": 0, # Optional. Required.
"phishResourceCount": 0, # Optional. Required.
"phishSequenceCount": 0, # Optional. Required.
"scamCauseCount": 0, # Optional. Required.
"scamResourceCount": 0, # Optional. Required.
"scamSequenceCount": 0, # Optional. Required.
"spamCauseCount": 0, # Optional. Required.
"spamResourceCount": 0, # Optional. Required.
"spamSequenceCount": 0, # Optional. Required.
"uuid": "str" # Optional. Required.
},
"ipAddresses": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"ipBlocks": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"ipBlock": "str", # Optional. Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
]
}
],
"ipv4": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": bool # Optional. Required.
}
],
"ipv6": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": bool # Optional. Required.
}
],
"isWildcard": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": bool # Optional. Required.
}
],
"lastSeen": "2020-02-20 00:00:00", # Optional. Required.
"location": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": {
"areaCode": 0, # Optional. Required.
"city": "str", # Optional. Required.
"countryCode": "str", # Optional. Required.
"countryName": "str", # Optional. Required.
"dmaCode": 0, # Optional. Required.
"latitude": 0.0, # Optional. Required.
"longitude": 0.0, # Optional. Required.
"metroCodeId": 0, # Optional. Required.
"postalCode": "str", # Optional. Required.
"region": "str", # Optional. Required.
"regionName": "str" # Optional. Required.
}
}
],
"mxRecord": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": bool # Optional. Required.
}
],
"nsRecord": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": bool # Optional. Required.
}
],
"nxdomain": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": bool # Optional. Required.
}
],
"parentHosts": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"resourceUrls": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"resources": [
{
"cached": bool, # Optional.
Required.
"contentType": "str", # Optional.
Required.
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"firstSeenCrawlGuid": "str", #
Optional. Required.
"firstSeenPageGuid": "str", #
Optional. Required.
"firstSeenResourceGuid": "str", #
Optional. Required.
"host": "str", # Optional. Required.
"lastObservedActualSriHash": "str",
# Optional. Required.
"lastObservedExpectedSriHash": "str",
# Optional. Required.
"lastObservedValidation": "2020-02-20
00:00:00", # Optional. Required.
"lastObservedViolation": "2020-02-20
00:00:00", # Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"lastSeenCrawlGuid": "str", #
Optional. Required.
"lastSeenPageGuid": "str", #
Optional. Required.
"lastSeenResourceGuid": "str", #
Optional. Required.
"md5": "str", # Optional. Required.
"responseBodyMinhash": [
0 # Optional. Required.
],
"responseBodySize": 0, # Optional.
Required.
"sha256": "str", # Optional.
Required.
"sha384": "str", # Optional.
Required.
"sha512": "str", # Optional.
Required.
"sriChecks": [
{
"causePageUrl":
"str", # Optional. Required.
"count": 0, #
Optional. Required.
"crawlGuid": "str",
# Optional. Required.
"expectedHash":
"str", # Optional. Required.
"firstSeen":
"2020-02-20 00:00:00", # Optional. Required.
"lastSeen":
"2020-02-20 00:00:00", # Optional. Required.
"pageGuid": "str", #
Optional. Required.
"resourceGuid":
"str", # Optional. Required.
"violation": bool #
Optional. Required.
}
],
"url": "str" # Optional. Required.
}
],
"url": "str" # Optional. Required.
}
],
"responseBodies": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"scanMetadata": [
{
"bannerMetadata": "str", # Optional. Required.
"endScan": "2020-02-20 00:00:00", # Optional.
Required.
"port": 0, # Optional. Required.
"startScan": "2020-02-20 00:00:00" # Optional.
Required.
}
],
"services": [
{
"count": 0, # Optional. Required.
"exceptions": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"recent": bool, # Optional.
Required.
"sources": [
{
"count": 0, #
Optional. Required.
"firstSeen":
"2020-02-20 00:00:00", # Optional. Required.
"lastSeen":
"2020-02-20 00:00:00", # Optional. Required.
"reason": "str", #
Optional. Required.
"source": "str" #
Optional. Required.
}
],
"value": "str" # Optional. Required.
}
],
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"port": 0, # Optional. Required.
"portStates": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"port": 0, # Optional. Required.
"recent": bool, # Optional.
Required.
"value": "str" # Optional. Known
values are: "open", "closed", and "filtered".
}
],
"recent": bool, # Optional. Required.
"scheme": "str", # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"sslCerts": [
{
"certificateAuthority": bool, #
Optional. Required.
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"invalidAfter": "2020-02-20
00:00:00", # Optional. Required.
"invalidBefore": "2020-02-20
00:00:00", # Optional. Required.
"issuerAlternativeNames": [
"str" # Optional. Required.
],
"issuerCommonNames": [
"str" # Optional. Required.
],
"issuerCountry": [
"str" # Optional. Required.
],
"issuerLocality": [
"str" # Optional. Required.
],
"issuerOrganizationalUnits": [
"str" # Optional. Required.
],
"issuerOrganizations": [
"str" # Optional. Required.
],
"issuerState": [
"str" # Optional. Required.
],
"keyAlgorithm": "str", # Optional.
Required.
"keySize": 0, # Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"organizationalUnits": [
"str" # Optional. Required.
],
"organizations": [
"str" # Optional. Required.
],
"recent": bool, # Optional.
Required.
"selfSigned": bool, # Optional.
Required.
"serialNumber": "str", # Optional.
Required.
"sha1": "str", # Optional. Required.
"sigAlgName": "str", # Optional.
Required.
"sigAlgOid": "str", # Optional.
Required.
"sources": [
{
"count": 0, #
Optional. Required.
"firstSeen":
"2020-02-20 00:00:00", # Optional. Required.
"lastSeen":
"2020-02-20 00:00:00", # Optional. Required.
"reason": "str", #
Optional. Required.
"source": "str" #
Optional. Required.
}
],
"subjectAlternativeNames": [
"str" # Optional. Required.
],
"subjectCommonNames": [
"str" # Optional. Required.
],
"subjectCountry": [
"str" # Optional. Required.
],
"subjectLocality": [
"str" # Optional. Required.
],
"subjectOrganizationalUnits": [
"str" # Optional. Required.
],
"subjectOrganizations": [
"str" # Optional. Required.
],
"subjectState": [
"str" # Optional. Required.
],
"validationType": "str", # Optional.
Known values are: "domainValidation",
"organizationValidation", and "extendedValidation".
"version": 0 # Optional. Required.
}
],
"webComponents": [
{
"count": 0, # Optional. Required.
"cve": [
{
"cvss3Summary": {
"attackComplexity": "str", # Optional. Required.
"attackVector": "str", # Optional. Required.
"availabilityImpact": "str", # Optional.
Required.
"baseScore":
0.0, # Optional. Required.
"baseSeverity": "str", # Optional. Required.
"confidentialityImpact": "str", # Optional.
Required.
"exploitCodeMaturity": "str", # Optional.
Required.
"exploitabilityScore": 0.0, # Optional.
Required.
"impactScore": 0.0, # Optional. Required.
"integrityImpact": "str", # Optional. Required.
"privilegesRequired": "str", # Optional.
Required.
"remediationLevel": "str", # Optional. Required.
"reportConfidence": "str", # Optional. Required.
"scope":
"str", # Optional. Required.
"userInteraction": "str", # Optional. Required.
"vectorString": "str", # Optional. Required.
"version":
"str" # Optional. Required.
},
"cvssScore": 0.0, #
Optional. Required.
"cweId": "str", #
Optional. Required.
"name": "str" #
Optional. Required.
}
],
"endOfLife": 0, # Optional.
Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"name": "str", # Optional. Required.
"ports": [
{
"count": 0, #
Optional. Required.
"firstSeen":
"2020-02-20 00:00:00", # Optional. Required.
"lastSeen":
"2020-02-20 00:00:00", # Optional. Required.
"port": 0 #
Optional. Required.
}
],
"recent": bool, # Optional.
Required.
"ruleId": [
"str" # Optional. Required.
],
"service": "str", # Optional.
Required.
"sources": [
{
"count": 0, #
Optional. Required.
"firstSeen":
"2020-02-20 00:00:00", # Optional. Required.
"lastSeen":
"2020-02-20 00:00:00", # Optional. Required.
"reason": "str", #
Optional. Required.
"source": "str" #
Optional. Required.
}
],
"type": "str", # Optional. Required.
"version": "str" # Optional.
Required.
}
]
}
],
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"reason": "str", # Optional. Required.
"source": "str" # Optional. Required.
}
],
"sslCerts": [
{
"certificateAuthority": bool, # Optional. Required.
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"invalidAfter": "2020-02-20 00:00:00", # Optional.
Required.
"invalidBefore": "2020-02-20 00:00:00", # Optional.
Required.
"issuerAlternativeNames": [
"str" # Optional. Required.
],
"issuerCommonNames": [
"str" # Optional. Required.
],
"issuerCountry": [
"str" # Optional. Required.
],
"issuerLocality": [
"str" # Optional. Required.
],
"issuerOrganizationalUnits": [
"str" # Optional. Required.
],
"issuerOrganizations": [
"str" # Optional. Required.
],
"issuerState": [
"str" # Optional. Required.
],
"keyAlgorithm": "str", # Optional. Required.
"keySize": 0, # Optional. Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"organizationalUnits": [
"str" # Optional. Required.
],
"organizations": [
"str" # Optional. Required.
],
"recent": bool, # Optional. Required.
"selfSigned": bool, # Optional. Required.
"serialNumber": "str", # Optional. Required.
"sha1": "str", # Optional. Required.
"sigAlgName": "str", # Optional. Required.
"sigAlgOid": "str", # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"subjectAlternativeNames": [
"str" # Optional. Required.
],
"subjectCommonNames": [
"str" # Optional. Required.
],
"subjectCountry": [
"str" # Optional. Required.
],
"subjectLocality": [
"str" # Optional. Required.
],
"subjectOrganizationalUnits": [
"str" # Optional. Required.
],
"subjectOrganizations": [
"str" # Optional. Required.
],
"subjectState": [
"str" # Optional. Required.
],
"validationType": "str", # Optional. Known values
are: "domainValidation", "organizationValidation", and
"extendedValidation".
"version": 0 # Optional. Required.
}
],
"sslServerConfig": [
{
"cipherSuites": [
"str" # Optional. Required.
],
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"tlsVersions": [
"str" # Optional. Required.
]
}
],
"webComponents": [
{
"count": 0, # Optional. Required.
"cve": [
{
"cvss3Summary": {
"attackComplexity": "str", #
Optional. Required.
"attackVector": "str", #
Optional. Required.
"availabilityImpact": "str",
# Optional. Required.
"baseScore": 0.0, #
Optional. Required.
"baseSeverity": "str", #
Optional. Required.
"confidentialityImpact":
"str", # Optional. Required.
"exploitCodeMaturity": "str",
# Optional. Required.
"exploitabilityScore": 0.0,
# Optional. Required.
"impactScore": 0.0, #
Optional. Required.
"integrityImpact": "str", #
Optional. Required.
"privilegesRequired": "str",
# Optional. Required.
"remediationLevel": "str", #
Optional. Required.
"reportConfidence": "str", #
Optional. Required.
"scope": "str", # Optional.
Required.
"userInteraction": "str", #
Optional. Required.
"vectorString": "str", #
Optional. Required.
"version": "str" # Optional.
Required.
},
"cvssScore": 0.0, # Optional.
Required.
"cweId": "str", # Optional.
Required.
"name": "str" # Optional. Required.
}
],
"endOfLife": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"name": "str", # Optional. Required.
"ports": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"port": 0 # Optional. Required.
}
],
"recent": bool, # Optional. Required.
"ruleId": [
"str" # Optional. Required.
],
"service": "str", # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"type": "str", # Optional. Required.
"version": "str" # Optional. Required.
}
],
"webserver": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": bool # Optional. Required.
}
]
},
"kind": "host",
"auditTrail": [
{
"displayName": "str", # Optional. The name that can be used
for display purposes.
"id": "str", # Optional. The system generated unique id for
the resource.
"kind": "str", # Optional. The kind of asset. Known values
are: "as", "contact", "domain", "host", "ipAddress", "ipBlock", "page",
and "sslCert".
"name": "str", # Optional. The caller provided unique name
for the resource.
"reason": "str" # Optional. An explanation of why this audit
trail node was discovered from the previous node.
}
],
"createdDate": "2020-02-20 00:00:00", # Optional. The date this asset was
first added to this workspace.
"discoGroupName": "str", # Optional. The name of the DiscoveryGroup that
brought added this asset to the workspace.
"displayName": "str", # Optional. The name that can be used for display
purposes.
"externalId": "str", # Optional. An optional customer provided identifier
for this asset.
"id": "str", # Optional. The system generated unique id for the resource.
"labels": [
"str" # Optional. Customer labels assigned to this asset.
],
"name": "str", # Optional. The caller provided unique name for the resource.
"reason": "str", # Optional.
"state": "str", # Optional. Known values are: "candidate", "confirmed",
"dismissed", "candidateInvestigate", "associatedPartner", "associatedThirdparty",
and "archived".
"updatedDate": "2020-02-20 00:00:00", # Optional. The date this asset was
last updated for this workspace.
"uuid": "str", # Optional. Global UUID for the asset.
"wildcard": bool # Optional. An indicator of whether this asset represents a
wildcard rollup of assets on this domain.
}
# JSON input template for discriminator value "ipAddress":
asset_response = {
"asset": {
"asns": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": 0 # Optional. Required.
}
],
"attributes": [
{
"attributeType": "str", # Optional. Required.
"attributeValue": "str", # Optional. Required.
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
]
}
],
"banners": [
{
"banner": "str", # Optional. Required.
"bannerMetadata": "str", # Optional. Required.
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"port": 0, # Optional. Required.
"recent": bool, # Optional. Required.
"scanType": "str", # Optional. Required.
"sha256": "str", # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
]
}
],
"cookies": [
{
"cookieDomain": "str", # Optional. Required.
"cookieExpiryDate": "2020-02-20 00:00:00", #
Optional. Required.
"cookieName": "str", # Optional. Required.
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool # Optional. Required.
}
],
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional. Required.
"headers": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"headerName": "str", # Optional. Required.
"headerValue": "str", # Optional. Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool # Optional. Required.
}
],
"hosts": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"ipAddress": "str", # Optional. Required.
"ipBlocks": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"ipBlock": "str", # Optional. Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
]
}
],
"ipv4": bool, # Optional. Required.
"ipv6": bool, # Optional. Required.
"lastSeen": "2020-02-20 00:00:00", # Optional. Required.
"location": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": {
"areaCode": 0, # Optional. Required.
"city": "str", # Optional. Required.
"countryCode": "str", # Optional. Required.
"countryName": "str", # Optional. Required.
"dmaCode": 0, # Optional. Required.
"latitude": 0.0, # Optional. Required.
"longitude": 0.0, # Optional. Required.
"metroCodeId": 0, # Optional. Required.
"postalCode": "str", # Optional. Required.
"region": "str", # Optional. Required.
"regionName": "str" # Optional. Required.
}
}
],
"mxRecord": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": bool # Optional. Required.
}
],
"netRanges": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": "str" # Optional. Required.
}
],
"nsRecord": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": bool # Optional. Required.
}
],
"nxdomain": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"value": bool # Optional. Required.
}
],
"reputations": [
{
"cidr": "str", # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"listName": "str", # Optional. Required.
"listUpdatedAt": "2020-02-20 00:00:00", # Optional.
Required.
"recent": bool, # Optional. Required.
"threatType": "str", # Optional. Required.
"trusted": bool # Optional. Required.
}
],
"scanMetadata": [
{
"bannerMetadata": "str", # Optional. Required.
"endScan": "2020-02-20 00:00:00", # Optional.
Required.
"port": 0, # Optional. Required.
"startScan": "2020-02-20 00:00:00" # Optional.
Required.
}
],
"services": [
{
"count": 0, # Optional. Required.
"exceptions": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"recent": bool, # Optional.
Required.
"sources": [
{
"count": 0, #
Optional. Required.
"firstSeen":
"2020-02-20 00:00:00", # Optional. Required.
"lastSeen":
"2020-02-20 00:00:00", # Optional. Required.
"reason": "str", #
Optional. Required.
"source": "str" #
Optional. Required.
}
],
"value": "str" # Optional. Required.
}
],
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"port": 0, # Optional. Required.
"portStates": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"port": 0, # Optional. Required.
"recent": bool, # Optional.
Required.
"value": "str" # Optional. Known
values are: "open", "closed", and "filtered".
}
],
"recent": bool, # Optional. Required.
"scheme": "str", # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"sslCerts": [
{
"certificateAuthority": bool, #
Optional. Required.
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"invalidAfter": "2020-02-20
00:00:00", # Optional. Required.
"invalidBefore": "2020-02-20
00:00:00", # Optional. Required.
"issuerAlternativeNames": [
"str" # Optional. Required.
],
"issuerCommonNames": [
"str" # Optional. Required.
],
"issuerCountry": [
"str" # Optional. Required.
],
"issuerLocality": [
"str" # Optional. Required.
],
"issuerOrganizationalUnits": [
"str" # Optional. Required.
],
"issuerOrganizations": [
"str" # Optional. Required.
],
"issuerState": [
"str" # Optional. Required.
],
"keyAlgorithm": "str", # Optional.
Required.
"keySize": 0, # Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"organizationalUnits": [
"str" # Optional. Required.
],
"organizations": [
"str" # Optional. Required.
],
"recent": bool, # Optional.
Required.
"selfSigned": bool, # Optional.
Required.
"serialNumber": "str", # Optional.
Required.
"sha1": "str", # Optional. Required.
"sigAlgName": "str", # Optional.
Required.
"sigAlgOid": "str", # Optional.
Required.
"sources": [
{
"count": 0, #
Optional. Required.
"firstSeen":
"2020-02-20 00:00:00", # Optional. Required.
"lastSeen":
"2020-02-20 00:00:00", # Optional. Required.
"reason": "str", #
Optional. Required.
"source": "str" #
Optional. Required.
}
],
"subjectAlternativeNames": [
"str" # Optional. Required.
],
"subjectCommonNames": [
"str" # Optional. Required.
],
"subjectCountry": [
"str" # Optional. Required.
],
"subjectLocality": [
"str" # Optional. Required.
],
"subjectOrganizationalUnits": [
"str" # Optional. Required.
],
"subjectOrganizations": [
"str" # Optional. Required.
],
"subjectState": [
"str" # Optional. Required.
],
"validationType": "str", # Optional.
Known values are: "domainValidation",
"organizationValidation", and "extendedValidation".
"version": 0 # Optional. Required.
}
],
"webComponents": [
{
"count": 0, # Optional. Required.
"cve": [
{
"cvss3Summary": {
"attackComplexity": "str", # Optional. Required.
"attackVector": "str", # Optional. Required.
"availabilityImpact": "str", # Optional.
Required.
"baseScore":
0.0, # Optional. Required.
"baseSeverity": "str", # Optional. Required.
"confidentialityImpact": "str", # Optional.
Required.
"exploitCodeMaturity": "str", # Optional.
Required.
"exploitabilityScore": 0.0, # Optional.
Required.
"impactScore": 0.0, # Optional. Required.
"integrityImpact": "str", # Optional. Required.
"privilegesRequired": "str", # Optional.
Required.
"remediationLevel": "str", # Optional. Required.
"reportConfidence": "str", # Optional. Required.
"scope":
"str", # Optional. Required.
"userInteraction": "str", # Optional. Required.
"vectorString": "str", # Optional. Required.
"version":
"str" # Optional. Required.
},
"cvssScore": 0.0, #
Optional. Required.
"cweId": "str", #
Optional. Required.
"name": "str" #
Optional. Required.
}
],
"endOfLife": 0, # Optional.
Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"name": "str", # Optional. Required.
"ports": [
{
"count": 0, #
Optional. Required.
"firstSeen":
"2020-02-20 00:00:00", # Optional. Required.
"lastSeen":
"2020-02-20 00:00:00", # Optional. Required.
"port": 0 #
Optional. Required.
}
],
"recent": bool, # Optional.
Required.
"ruleId": [
"str" # Optional. Required.
],
"service": "str", # Optional.
Required.
"sources": [
{
"count": 0, #
Optional. Required.
"firstSeen":
"2020-02-20 00:00:00", # Optional. Required.
"lastSeen":
"2020-02-20 00:00:00", # Optional. Required.
"reason": "str", #
Optional. Required.
"source": "str" #
Optional. Required.
}
],
"type": "str", # Optional. Required.
"version": "str" # Optional.
Required.
}
]
}
],
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"reason": "str", # Optional. Required.
"source": "str" # Optional. Required.
}
],
"sslCerts": [
{
"certificateAuthority": bool, # Optional. Required.
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"invalidAfter": "2020-02-20 00:00:00", # Optional.
Required.
"invalidBefore": "2020-02-20 00:00:00", # Optional.
Required.
"issuerAlternativeNames": [
"str" # Optional. Required.
],
"issuerCommonNames": [
"str" # Optional. Required.
],
"issuerCountry": [
"str" # Optional. Required.
],
"issuerLocality": [
"str" # Optional. Required.
],
"issuerOrganizationalUnits": [
"str" # Optional. Required.
],
"issuerOrganizations": [
"str" # Optional. Required.
],
"issuerState": [
"str" # Optional. Required.
],
"keyAlgorithm": "str", # Optional. Required.
"keySize": 0, # Optional. Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"organizationalUnits": [
"str" # Optional. Required.
],
"organizations": [
"str" # Optional. Required.
],
"recent": bool, # Optional. Required.
"selfSigned": bool, # Optional. Required.
"serialNumber": "str", # Optional. Required.
"sha1": "str", # Optional. Required.
"sigAlgName": "str", # Optional. Required.
"sigAlgOid": "str", # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"subjectAlternativeNames": [
"str" # Optional. Required.
],
"subjectCommonNames": [
"str" # Optional. Required.
],
"subjectCountry": [
"str" # Optional. Required.
],
"subjectLocality": [
"str" # Optional. Required.
],
"subjectOrganizationalUnits": [
"str" # Optional. Required.
],
"subjectOrganizations": [
"str" # Optional. Required.
],
"subjectState": [
"str" # Optional. Required.
],
"validationType": "str", # Optional. Known values
are: "domainValidation", "organizationValidation", and
"extendedValidation".
"version": 0 # Optional. Required.
}
],
"sslServerConfig": [
{
"cipherSuites": [
"str" # Optional. Required.
],
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"tlsVersions": [
"str" # Optional. Required.
]
}
],
"webComponents": [
{
"count": 0, # Optional. Required.
"cve": [
{
"cvss3Summary": {
"attackComplexity": "str", #
Optional. Required.
"attackVector": "str", #
Optional. Required.
"availabilityImpact": "str",
# Optional. Required.
"baseScore": 0.0, #
Optional. Required.
"baseSeverity": "str", #
Optional. Required.
"confidentialityImpact":
"str", # Optional. Required.
"exploitCodeMaturity": "str",
# Optional. Required.
"exploitabilityScore": 0.0,
# Optional. Required.
"impactScore": 0.0, #
Optional. Required.
"integrityImpact": "str", #
Optional. Required.
"privilegesRequired": "str",
# Optional. Required.
"remediationLevel": "str", #
Optional. Required.
"reportConfidence": "str", #
Optional. Required.
"scope": "str", # Optional.
Required.
"userInteraction": "str", #
Optional. Required.
"vectorString": "str", #
Optional. Required.
"version": "str" # Optional.
Required.
},
"cvssScore": 0.0, # Optional.
Required.
"cweId": "str", # Optional.
Required.
"name": "str" # Optional. Required.
}
],
"endOfLife": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00", # Optional.
Required.
"lastSeen": "2020-02-20 00:00:00", # Optional.
Required.
"name": "str", # Optional. Required.
"ports": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"port": 0 # Optional. Required.
}
],
"recent": bool, # Optional. Required.
"ruleId": [
"str" # Optional. Required.
],
"service": "str", # Optional. Required.
"sources": [
{
"count": 0, # Optional. Required.
"firstSeen": "2020-02-20 00:00:00",
# Optional. Required.
"lastSeen": "2020-02-20 00:00:00", #
Optional. Required.
"reason": "str", # Optional.
Required.
"source": "str" # Optional.
Required.
}
],
"type": "str", # Optional. Required.
"version": "str" # Optional. Required.
}
]
},
"kind": "ipAddress",
"auditTrail": [
{
"displayName": "str", # Optional. The name that can be used
for display purposes.
"id": "str", # Optional. The system generated unique id for
the resource.
"kind": "str", # Optional. The kind of asset. Known values
are: "as", "contact", "domain", "host", "ipAddress", "ipBlock", "page",
and "sslCert".
"name": "str", # Optional. The caller provided unique name
for the resource.
"reason": "str" # Optional. An explanation of why this audit
trail node was discovered from the previous node.
}
],
"createdDate": "2020-02-20 00:00:00", # Optional. The date this asset was
first added to this workspace.
"discoGroupName": "str", # Optional. The name of the DiscoveryGroup that
brought added this asset to the workspace.
"displayName": "str", # Optional. The name that can be used for display
purposes.
"externalId": "str", # Optional. An optional customer provided identifier
for this asset.
"id": "str", # Optional. The system generated unique id for the resource.
"labels": [
"str" # Optional. Customer labels assigned to this asset.
],
"name": "str", # Optional. The caller provided unique name for the resource.
"reason": "str", # Optional.
"state": "str", # Optional. Known values are: "candidate", "confirmed",
"dismissed", "candidateInvestigate", "associatedPartner", "associatedThirdparty",
and "archived".
"updatedDate": "2020-02-20 00:00:00", # Optional. The date this asset was
last updated for this workspace.
"uuid": "str", # Optional. Global UUID for the asset.
"wildcard": bool # Optional. An indicator of whether this asset represents a
wildcard rollup of assets on this domain.
}
# response body for status code(s): 200
response == asset_response
"""
error_map = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
304: ResourceNotModifiedError,
}
error_map.update(kwargs.pop("error_map", {}) or {})
_headers = kwargs.pop("headers", {}) or {}
_params = kwargs.pop("params", {}) or {}
cls: ClsType[JSON] = kwargs.pop("cls", None)
request = build_assets_get_request(
asset_id=asset_id,
subscription_id=self._config.subscription_id,
resource_group_name=self._config.resource_group_name,
workspace_name=self._config.workspace_name,
api_version=self._config.api_version,
headers=_headers,
params=_params,
)
path_format_arguments = {
"endpoint": self._serialize.url("self._config.endpoint", self._config.endpoint, "str"),
}
request.url = self._client.format_url(request.url, **path_format_arguments)
pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
request, stream=False, **kwargs
)
response = pipeline_response.http_response
if response.status_code not in [200]:
map_error(status_code=response.status_code, response=response, error_map=error_map)
raise HttpResponseError(response=response)
if response.content:
deserialized = response.json()
else:
deserialized = None
if cls:
return cls(pipeline_response, cast(JSON, deserialized), {})
return cast(JSON, deserialized)
[docs]class DiscoveryGroupsOperations:
"""
.. warning::
**DO NOT** instantiate this class directly.
Instead, you should access the following operations through
:class:`~azure.defender.easm.aio.EasmClient`'s
:attr:`discovery_groups` attribute.
"""
def __init__(self, *args, **kwargs) -> None:
input_args = list(args)
self._client = input_args.pop(0) if input_args else kwargs.pop("client")
self._config = input_args.pop(0) if input_args else kwargs.pop("config")
self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer")
self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer")
[docs] @distributed_trace
def list(self, *, filter: Optional[str] = None, skip: int = 0, **kwargs: Any) -> AsyncIterable[JSON]:
"""Retrieve a list of discovery group for the provided search parameters.
Retrieve a list of discovery group for the provided search parameters.
:keyword filter: An expression on the resource type that selects the resources to be returned.
Default value is None.
:paramtype filter: str
:keyword skip: An offset into the collection of the first item to be returned. Default value is
0.
:paramtype skip: int
:return: An iterator like instance of JSON object
:rtype: ~azure.core.async_paging.AsyncItemPaged[JSON]
:raises ~azure.core.exceptions.HttpResponseError:
Example:
.. code-block:: python
# response body for status code(s): 200
response == {
"createdDate": "2020-02-20 00:00:00", # Optional. The date for the disco
group was created.
"description": "str", # Optional. The description for a disco group.
"displayName": "str", # Optional. The name that can be used for display
purposes.
"excludes": [
{
"kind": "str", # Optional. The kind of disco source. Known
values are: "as", "attribute", "contact", "domain", "host", and
"ipBlock".
"name": "str" # Optional. The name for the disco source.
}
],
"frequencyMilliseconds": 0, # Optional. The frequency at which the disco
group is supposed to be rerun in milliseconds.
"id": "str", # Optional. The system generated unique id for the resource.
"latestRun": {
"completedDate": "2020-02-20 00:00:00", # Optional. The date for
when the disco run was completed by the system.
"excludes": [
{
"kind": "str", # Optional. The kind of disco source.
Known values are: "as", "attribute", "contact", "domain", "host", and
"ipBlock".
"name": "str" # Optional. The name for the disco
source.
}
],
"names": [
"str" # Optional. The list of names used for the disco run.
],
"seeds": [
{
"kind": "str", # Optional. The kind of disco source.
Known values are: "as", "attribute", "contact", "domain", "host", and
"ipBlock".
"name": "str" # Optional. The name for the disco
source.
}
],
"startedDate": "2020-02-20 00:00:00", # Optional. The date for when
the disco run was actually started by the system.
"state": "str", # Optional. The State of the disco run. Known values
are: "pending", "running", "completed", and "failed".
"submittedDate": "2020-02-20 00:00:00", # Optional. The date for
when the disco run was created in the system.
"tier": "str", # Optional. The tier which will affect the algorithm
used for the disco run.
"totalAssetsFoundCount": 0 # Optional. The total count of assets
that were found this disco run.
},
"name": "str", # Optional. The caller provided unique name for the resource.
"names": [
"str" # Optional. The list of names used for the disco group runs.
],
"seeds": [
{
"kind": "str", # Optional. The kind of disco source. Known
values are: "as", "attribute", "contact", "domain", "host", and
"ipBlock".
"name": "str" # Optional. The name for the disco source.
}
],
"templateId": "str", # Optional. The unique identifier for the disco
template used for the disco group creation.
"tier": "str" # Optional. The tier for the disco group which will affect the
algorithm used for the disco runs in this group.
}
"""
_headers = kwargs.pop("headers", {}) or {}
_params = kwargs.pop("params", {}) or {}
cls: ClsType[JSON] = kwargs.pop("cls", None)
error_map = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
304: ResourceNotModifiedError,
}
error_map.update(kwargs.pop("error_map", {}) or {})
def prepare_request(next_link=None):
if not next_link:
request = build_discovery_groups_list_request(
subscription_id=self._config.subscription_id,
resource_group_name=self._config.resource_group_name,
workspace_name=self._config.workspace_name,
filter=filter,
skip=skip,
api_version=self._config.api_version,
headers=_headers,
params=_params,
)
path_format_arguments = {
"endpoint": self._serialize.url("self._config.endpoint", self._config.endpoint, "str"),
}
request.url = self._client.format_url(request.url, **path_format_arguments)
else:
# make call to next link with the client's api-version
_parsed_next_link = urllib.parse.urlparse(next_link)
_next_request_params = case_insensitive_dict(
{
key: [urllib.parse.quote(v) for v in value]
for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
}
)
_next_request_params["api-version"] = self._config.api_version
request = HttpRequest(
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
)
path_format_arguments = {
"endpoint": self._serialize.url("self._config.endpoint", self._config.endpoint, "str"),
}
request.url = self._client.format_url(request.url, **path_format_arguments)
return request
async def extract_data(pipeline_response):
deserialized = pipeline_response.http_response.json()
list_of_elem = deserialized["content"]
if cls:
list_of_elem = cls(list_of_elem) # type: ignore
return deserialized.get("nextLink") or None, AsyncList(list_of_elem)
async def get_next(next_link=None):
request = prepare_request(next_link)
pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
request, stream=False, **kwargs
)
response = pipeline_response.http_response
if response.status_code not in [200]:
map_error(status_code=response.status_code, response=response, error_map=error_map)
raise HttpResponseError(response=response)
return pipeline_response
return AsyncItemPaged(get_next, extract_data)
[docs] @distributed_trace_async
async def delete(self, group_name: str, **kwargs: Any) -> None: # pylint: disable=inconsistent-return-statements
"""Delete a discovery group with a given groupName.
Delete a discovery group with a given groupName.
:param group_name: The unique identifier for the discovery group. Required.
:type group_name: str
:return: None
:rtype: None
:raises ~azure.core.exceptions.HttpResponseError:
"""
error_map = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
304: ResourceNotModifiedError,
}
error_map.update(kwargs.pop("error_map", {}) or {})
_headers = kwargs.pop("headers", {}) or {}
_params = kwargs.pop("params", {}) or {}
cls: ClsType[None] = kwargs.pop("cls", None)
request = build_discovery_groups_delete_request(
group_name=group_name,
subscription_id=self._config.subscription_id,
resource_group_name=self._config.resource_group_name,
workspace_name=self._config.workspace_name,
api_version=self._config.api_version,
headers=_headers,
params=_params,
)
path_format_arguments = {
"endpoint": self._serialize.url("self._config.endpoint", self._config.endpoint, "str"),
}
request.url = self._client.format_url(request.url, **path_format_arguments)
pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
request, stream=False, **kwargs
)
response = pipeline_response.http_response
if response.status_code not in [204]:
map_error(status_code=response.status_code, response=response, error_map=error_map)
raise HttpResponseError(response=response)
if cls:
return cls(pipeline_response, None, {})
[docs] @distributed_trace_async
async def get(self, group_name: str, **kwargs: Any) -> JSON:
"""Retrieve a discovery group with a given groupName.
Retrieve a discovery group with a given groupName.
:param group_name: The unique identifier for the discovery group. Required.
:type group_name: str
:return: JSON object
:rtype: JSON
:raises ~azure.core.exceptions.HttpResponseError:
Example:
.. code-block:: python
# response body for status code(s): 200
response == {
"createdDate": "2020-02-20 00:00:00", # Optional. The date for the disco
group was created.
"description": "str", # Optional. The description for a disco group.
"displayName": "str", # Optional. The name that can be used for display
purposes.
"excludes": [
{
"kind": "str", # Optional. The kind of disco source. Known
values are: "as", "attribute", "contact", "domain", "host", and
"ipBlock".
"name": "str" # Optional. The name for the disco source.
}
],
"frequencyMilliseconds": 0, # Optional. The frequency at which the disco
group is supposed to be rerun in milliseconds.
"id": "str", # Optional. The system generated unique id for the resource.
"latestRun": {
"completedDate": "2020-02-20 00:00:00", # Optional. The date for
when the disco run was completed by the system.
"excludes": [
{
"kind": "str", # Optional. The kind of disco source.
Known values are: "as", "attribute", "contact", "domain", "host", and
"ipBlock".
"name": "str" # Optional. The name for the disco
source.
}
],
"names": [
"str" # Optional. The list of names used for the disco run.
],
"seeds": [
{
"kind": "str", # Optional. The kind of disco source.
Known values are: "as", "attribute", "contact", "domain", "host", and
"ipBlock".
"name": "str" # Optional. The name for the disco
source.
}
],
"startedDate": "2020-02-20 00:00:00", # Optional. The date for when
the disco run was actually started by the system.
"state": "str", # Optional. The State of the disco run. Known values
are: "pending", "running", "completed", and "failed".
"submittedDate": "2020-02-20 00:00:00", # Optional. The date for
when the disco run was created in the system.
"tier": "str", # Optional. The tier which will affect the algorithm
used for the disco run.
"totalAssetsFoundCount": 0 # Optional. The total count of assets
that were found this disco run.
},
"name": "str", # Optional. The caller provided unique name for the resource.
"names": [
"str" # Optional. The list of names used for the disco group runs.
],
"seeds": [
{
"kind": "str", # Optional. The kind of disco source. Known
values are: "as", "attribute", "contact", "domain", "host", and
"ipBlock".
"name": "str" # Optional. The name for the disco source.
}
],
"templateId": "str", # Optional. The unique identifier for the disco
template used for the disco group creation.
"tier": "str" # Optional. The tier for the disco group which will affect the
algorithm used for the disco runs in this group.
}
"""
error_map = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
304: ResourceNotModifiedError,
}
error_map.update(kwargs.pop("error_map", {}) or {})
_headers = kwargs.pop("headers", {}) or {}
_params = kwargs.pop("params", {}) or {}
cls: ClsType[JSON] = kwargs.pop("cls", None)
request = build_discovery_groups_get_request(
group_name=group_name,
subscription_id=self._config.subscription_id,
resource_group_name=self._config.resource_group_name,
workspace_name=self._config.workspace_name,
api_version=self._config.api_version,
headers=_headers,
params=_params,
)
path_format_arguments = {
"endpoint": self._serialize.url("self._config.endpoint", self._config.endpoint, "str"),
}
request.url = self._client.format_url(request.url, **path_format_arguments)
pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
request, stream=False, **kwargs
)
response = pipeline_response.http_response
if response.status_code not in [200]:
map_error(status_code=response.status_code, response=response, error_map=error_map)
raise HttpResponseError(response=response)
if response.content:
deserialized = response.json()
else:
deserialized = None
if cls:
return cls(pipeline_response, cast(JSON, deserialized), {})
return cast(JSON, deserialized)
@overload
async def put(self, group_name: str, body: JSON, *, content_type: str = "application/json", **kwargs: Any) -> JSON:
"""Create a discovery group with a given groupName.
Create a discovery group with a given groupName.
:param group_name: The unique identifier for the discovery group. Required.
:type group_name: str
:param body: Required.
:type body: JSON
:keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
Default value is "application/json".
:paramtype content_type: str
:return: JSON object
:rtype: JSON
:raises ~azure.core.exceptions.HttpResponseError:
Example:
.. code-block:: python
# JSON input template you can fill out and use as your body input.
body = {
"description": "str", # Optional. The description for a disco group.
"excludes": [
{
"kind": "str", # Optional. The kind of disco source. Known
values are: "as", "attribute", "contact", "domain", "host", and
"ipBlock".
"name": "str" # Optional. The name for the disco source.
}
],
"frequencyMilliseconds": 0, # Optional. The frequency at which the disco
group is supposed to be rerun in milliseconds.
"names": [
"str" # Optional. The list of names used for the disco group runs.
],
"seeds": [
{
"kind": "str", # Optional. The kind of disco source. Known
values are: "as", "attribute", "contact", "domain", "host", and
"ipBlock".
"name": "str" # Optional. The name for the disco source.
}
],
"templateId": "str", # Optional. The unique identifier for the disco
template used for the disco group creation.
"tier": "str" # Optional. The tier for the disco group which will affect the
algorithm used for the disco runs in this group.
}
# response body for status code(s): 200
response == {
"createdDate": "2020-02-20 00:00:00", # Optional. The date for the disco
group was created.
"description": "str", # Optional. The description for a disco group.
"displayName": "str", # Optional. The name that can be used for display
purposes.
"excludes": [
{
"kind": "str", # Optional. The kind of disco source. Known
values are: "as", "attribute", "contact", "domain", "host", and
"ipBlock".
"name": "str" # Optional. The name for the disco source.
}
],
"frequencyMilliseconds": 0, # Optional. The frequency at which the disco
group is supposed to be rerun in milliseconds.
"id": "str", # Optional. The system generated unique id for the resource.
"latestRun": {
"completedDate": "2020-02-20 00:00:00", # Optional. The date for
when the disco run was completed by the system.
"excludes": [
{
"kind": "str", # Optional. The kind of disco source.
Known values are: "as", "attribute", "contact", "domain", "host", and
"ipBlock".
"name": "str" # Optional. The name for the disco
source.
}
],
"names": [
"str" # Optional. The list of names used for the disco run.
],
"seeds": [
{
"kind": "str", # Optional. The kind of disco source.
Known values are: "as", "attribute", "contact", "domain", "host", and
"ipBlock".
"name": "str" # Optional. The name for the disco
source.
}
],
"startedDate": "2020-02-20 00:00:00", # Optional. The date for when
the disco run was actually started by the system.
"state": "str", # Optional. The State of the disco run. Known values
are: "pending", "running", "completed", and "failed".
"submittedDate": "2020-02-20 00:00:00", # Optional. The date for
when the disco run was created in the system.
"tier": "str", # Optional. The tier which will affect the algorithm
used for the disco run.
"totalAssetsFoundCount": 0 # Optional. The total count of assets
that were found this disco run.
},
"name": "str", # Optional. The caller provided unique name for the resource.
"names": [
"str" # Optional. The list of names used for the disco group runs.
],
"seeds": [
{
"kind": "str", # Optional. The kind of disco source. Known
values are: "as", "attribute", "contact", "domain", "host", and
"ipBlock".
"name": "str" # Optional. The name for the disco source.
}
],
"templateId": "str", # Optional. The unique identifier for the disco
template used for the disco group creation.
"tier": "str" # Optional. The tier for the disco group which will affect the
algorithm used for the disco runs in this group.
}
"""
@overload
async def put(self, group_name: str, body: IO, *, content_type: str = "application/json", **kwargs: Any) -> JSON:
"""Create a discovery group with a given groupName.
Create a discovery group with a given groupName.
:param group_name: The unique identifier for the discovery group. Required.
:type group_name: str
:param body: Required.
:type body: IO
:keyword content_type: Body Parameter content-type. Content type parameter for binary body.
Default value is "application/json".
:paramtype content_type: str
:return: JSON object
:rtype: JSON
:raises ~azure.core.exceptions.HttpResponseError:
Example:
.. code-block:: python
# response body for status code(s): 200
response == {
"createdDate": "2020-02-20 00:00:00", # Optional. The date for the disco
group was created.
"description": "str", # Optional. The description for a disco group.
"displayName": "str", # Optional. The name that can be used for display
purposes.
"excludes": [
{
"kind": "str", # Optional. The kind of disco source. Known
values are: "as", "attribute", "contact", "domain", "host", and
"ipBlock".
"name": "str" # Optional. The name for the disco source.
}
],
"frequencyMilliseconds": 0, # Optional. The frequency at which the disco
group is supposed to be rerun in milliseconds.
"id": "str", # Optional. The system generated unique id for the resource.
"latestRun": {
"completedDate": "2020-02-20 00:00:00", # Optional. The date for
when the disco run was completed by the system.
"excludes": [
{
"kind": "str", # Optional. The kind of disco source.
Known values are: "as", "attribute", "contact", "domain", "host", and
"ipBlock".
"name": "str" # Optional. The name for the disco
source.
}
],
"names": [
"str" # Optional. The list of names used for the disco run.
],
"seeds": [
{
"kind": "str", # Optional. The kind of disco source.
Known values are: "as", "attribute", "contact", "domain", "host", and
"ipBlock".
"name": "str" # Optional. The name for the disco
source.
}
],
"startedDate": "2020-02-20 00:00:00", # Optional. The date for when
the disco run was actually started by the system.
"state": "str", # Optional. The State of the disco run. Known values
are: "pending", "running", "completed", and "failed".
"submittedDate": "2020-02-20 00:00:00", # Optional. The date for
when the disco run was created in the system.
"tier": "str", # Optional. The tier which will affect the algorithm
used for the disco run.
"totalAssetsFoundCount": 0 # Optional. The total count of assets
that were found this disco run.
},
"name": "str", # Optional. The caller provided unique name for the resource.
"names": [
"str" # Optional. The list of names used for the disco group runs.
],
"seeds": [
{
"kind": "str", # Optional. The kind of disco source. Known
values are: "as", "attribute", "contact", "domain", "host", and
"ipBlock".
"name": "str" # Optional. The name for the disco source.
}
],
"templateId": "str", # Optional. The unique identifier for the disco
template used for the disco group creation.
"tier": "str" # Optional. The tier for the disco group which will affect the
algorithm used for the disco runs in this group.
}
"""
[docs] @distributed_trace_async
async def put(self, group_name: str, body: Union[JSON, IO], **kwargs: Any) -> JSON:
"""Create a discovery group with a given groupName.
Create a discovery group with a given groupName.
:param group_name: The unique identifier for the discovery group. Required.
:type group_name: str
:param body: Is either a model type or a IO type. Required.
:type body: JSON or IO
:keyword content_type: Body Parameter content-type. Known values are: 'application/json'.
Default value is None.
:paramtype content_type: str
:return: JSON object
:rtype: JSON
:raises ~azure.core.exceptions.HttpResponseError:
Example:
.. code-block:: python
# response body for status code(s): 200
response == {
"createdDate": "2020-02-20 00:00:00", # Optional. The date for the disco
group was created.
"description": "str", # Optional. The description for a disco group.
"displayName": "str", # Optional. The name that can be used for display
purposes.
"excludes": [
{
"kind": "str", # Optional. The kind of disco source. Known
values are: "as", "attribute", "contact", "domain", "host", and
"ipBlock".
"name": "str" # Optional. The name for the disco source.
}
],
"frequencyMilliseconds": 0, # Optional. The frequency at which the disco
group is supposed to be rerun in milliseconds.
"id": "str", # Optional. The system generated unique id for the resource.
"latestRun": {
"completedDate": "2020-02-20 00:00:00", # Optional. The date for
when the disco run was completed by the system.
"excludes": [
{
"kind": "str", # Optional. The kind of disco source.
Known values are: "as", "attribute", "contact", "domain", "host", and
"ipBlock".
"name": "str" # Optional. The name for the disco
source.
}
],
"names": [
"str" # Optional. The list of names used for the disco run.
],
"seeds": [
{
"kind": "str", # Optional. The kind of disco source.
Known values are: "as", "attribute", "contact", "domain", "host", and
"ipBlock".
"name": "str" # Optional. The name for the disco
source.
}
],
"startedDate": "2020-02-20 00:00:00", # Optional. The date for when
the disco run was actually started by the system.
"state": "str", # Optional. The State of the disco run. Known values
are: "pending", "running", "completed", and "failed".
"submittedDate": "2020-02-20 00:00:00", # Optional. The date for
when the disco run was created in the system.
"tier": "str", # Optional. The tier which will affect the algorithm
used for the disco run.
"totalAssetsFoundCount": 0 # Optional. The total count of assets
that were found this disco run.
},
"name": "str", # Optional. The caller provided unique name for the resource.
"names": [
"str" # Optional. The list of names used for the disco group runs.
],
"seeds": [
{
"kind": "str", # Optional. The kind of disco source. Known
values are: "as", "attribute", "contact", "domain", "host", and
"ipBlock".
"name": "str" # Optional. The name for the disco source.
}
],
"templateId": "str", # Optional. The unique identifier for the disco
template used for the disco group creation.
"tier": "str" # Optional. The tier for the disco group which will affect the
algorithm used for the disco runs in this group.
}
"""
error_map = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
304: ResourceNotModifiedError,
}
error_map.update(kwargs.pop("error_map", {}) or {})
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = kwargs.pop("params", {}) or {}
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
cls: ClsType[JSON] = kwargs.pop("cls", None)
content_type = content_type or "application/json"
_json = None
_content = None
if isinstance(body, (IO, bytes)):
_content = body
else:
_json = body
request = build_discovery_groups_put_request(
group_name=group_name,
subscription_id=self._config.subscription_id,
resource_group_name=self._config.resource_group_name,
workspace_name=self._config.workspace_name,
content_type=content_type,
api_version=self._config.api_version,
json=_json,
content=_content,
headers=_headers,
params=_params,
)
path_format_arguments = {
"endpoint": self._serialize.url("self._config.endpoint", self._config.endpoint, "str"),
}
request.url = self._client.format_url(request.url, **path_format_arguments)
pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
request, stream=False, **kwargs
)
response = pipeline_response.http_response
if response.status_code not in [200]:
map_error(status_code=response.status_code, response=response, error_map=error_map)
raise HttpResponseError(response=response)
if response.content:
deserialized = response.json()
else:
deserialized = None
if cls:
return cls(pipeline_response, cast(JSON, deserialized), {})
return cast(JSON, deserialized)
[docs] @distributed_trace
def list_runs(
self, group_name: str, *, filter: Optional[str] = None, skip: int = 0, **kwargs: Any
) -> AsyncIterable[JSON]:
"""Retrieve a collection of discovery run results for a discovery group with a given groupName.
Retrieve a collection of discovery run results for a discovery group with a given groupName.
:param group_name: The unique identifier for the discovery group. Required.
:type group_name: str
:keyword filter: An expression on the resource type that selects the resources to be returned.
Default value is None.
:paramtype filter: str
:keyword skip: An offset into the collection of the first item to be returned. Default value is
0.
:paramtype skip: int
:return: An iterator like instance of JSON object
:rtype: ~azure.core.async_paging.AsyncItemPaged[JSON]
:raises ~azure.core.exceptions.HttpResponseError:
Example:
.. code-block:: python
# response body for status code(s): 200
response == {
"completedDate": "2020-02-20 00:00:00", # Optional. The date for when the
disco run was completed by the system.
"excludes": [
{
"kind": "str", # Optional. The kind of disco source. Known
values are: "as", "attribute", "contact", "domain", "host", and
"ipBlock".
"name": "str" # Optional. The name for the disco source.
}
],
"names": [
"str" # Optional. The list of names used for the disco run.
],
"seeds": [
{
"kind": "str", # Optional. The kind of disco source. Known
values are: "as", "attribute", "contact", "domain", "host", and
"ipBlock".
"name": "str" # Optional. The name for the disco source.
}
],
"startedDate": "2020-02-20 00:00:00", # Optional. The date for when the
disco run was actually started by the system.
"state": "str", # Optional. The State of the disco run. Known values are:
"pending", "running", "completed", and "failed".
"submittedDate": "2020-02-20 00:00:00", # Optional. The date for when the
disco run was created in the system.
"tier": "str", # Optional. The tier which will affect the algorithm used for
the disco run.
"totalAssetsFoundCount": 0 # Optional. The total count of assets that were
found this disco run.
}
"""
_headers = kwargs.pop("headers", {}) or {}
_params = kwargs.pop("params", {}) or {}
cls: ClsType[JSON] = kwargs.pop("cls", None)
error_map = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
304: ResourceNotModifiedError,
}
error_map.update(kwargs.pop("error_map", {}) or {})
def prepare_request(next_link=None):
if not next_link:
request = build_discovery_groups_list_runs_request(
group_name=group_name,
subscription_id=self._config.subscription_id,
resource_group_name=self._config.resource_group_name,
workspace_name=self._config.workspace_name,
filter=filter,
skip=skip,
api_version=self._config.api_version,
headers=_headers,
params=_params,
)
path_format_arguments = {
"endpoint": self._serialize.url("self._config.endpoint", self._config.endpoint, "str"),
}
request.url = self._client.format_url(request.url, **path_format_arguments)
else:
# make call to next link with the client's api-version
_parsed_next_link = urllib.parse.urlparse(next_link)
_next_request_params = case_insensitive_dict(
{
key: [urllib.parse.quote(v) for v in value]
for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
}
)
_next_request_params["api-version"] = self._config.api_version
request = HttpRequest(
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
)
path_format_arguments = {
"endpoint": self._serialize.url("self._config.endpoint", self._config.endpoint, "str"),
}
request.url = self._client.format_url(request.url, **path_format_arguments)
return request
async def extract_data(pipeline_response):
deserialized = pipeline_response.http_response.json()
list_of_elem = deserialized["content"]
if cls:
list_of_elem = cls(list_of_elem) # type: ignore
return deserialized.get("nextLink") or None, AsyncList(list_of_elem)
async def get_next(next_link=None):
request = prepare_request(next_link)
pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
request, stream=False, **kwargs
)
response = pipeline_response.http_response
if response.status_code not in [200]:
map_error(status_code=response.status_code, response=response, error_map=error_map)
raise HttpResponseError(response=response)
return pipeline_response
return AsyncItemPaged(get_next, extract_data)
[docs] @distributed_trace_async
async def run(self, group_name: str, **kwargs: Any) -> None: # pylint: disable=inconsistent-return-statements
"""Run a discovery group with a given groupName.
Run a discovery group with a given groupName.
:param group_name: The unique identifier for the discovery group. Required.
:type group_name: str
:return: None
:rtype: None
:raises ~azure.core.exceptions.HttpResponseError:
"""
error_map = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
304: ResourceNotModifiedError,
}
error_map.update(kwargs.pop("error_map", {}) or {})
_headers = kwargs.pop("headers", {}) or {}
_params = kwargs.pop("params", {}) or {}
cls: ClsType[None] = kwargs.pop("cls", None)
request = build_discovery_groups_run_request(
group_name=group_name,
subscription_id=self._config.subscription_id,
resource_group_name=self._config.resource_group_name,
workspace_name=self._config.workspace_name,
api_version=self._config.api_version,
headers=_headers,
params=_params,
)
path_format_arguments = {
"endpoint": self._serialize.url("self._config.endpoint", self._config.endpoint, "str"),
}
request.url = self._client.format_url(request.url, **path_format_arguments)
pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
request, stream=False, **kwargs
)
response = pipeline_response.http_response
if response.status_code not in [204]:
map_error(status_code=response.status_code, response=response, error_map=error_map)
raise HttpResponseError(response=response)
if cls:
return cls(pipeline_response, None, {})
@overload
async def validate(
self, group_name: str, body: JSON, *, content_type: str = "application/json", **kwargs: Any
) -> JSON:
"""Validate a discovery group with a given groupName.
Validate a discovery group with a given groupName.
:param group_name: The unique identifier for the discovery group. Required.
:type group_name: str
:param body: Required.
:type body: JSON
:keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
Default value is "application/json".
:paramtype content_type: str
:return: JSON object
:rtype: JSON
:raises ~azure.core.exceptions.HttpResponseError:
Example:
.. code-block:: python
# JSON input template you can fill out and use as your body input.
body = {
"description": "str", # Optional. The description for a disco group.
"excludes": [
{
"kind": "str", # Optional. The kind of disco source. Known
values are: "as", "attribute", "contact", "domain", "host", and
"ipBlock".
"name": "str" # Optional. The name for the disco source.
}
],
"frequencyMilliseconds": 0, # Optional. The frequency at which the disco
group is supposed to be rerun in milliseconds.
"names": [
"str" # Optional. The list of names used for the disco group runs.
],
"seeds": [
{
"kind": "str", # Optional. The kind of disco source. Known
values are: "as", "attribute", "contact", "domain", "host", and
"ipBlock".
"name": "str" # Optional. The name for the disco source.
}
],
"templateId": "str", # Optional. The unique identifier for the disco
template used for the disco group creation.
"tier": "str" # Optional. The tier for the disco group which will affect the
algorithm used for the disco runs in this group.
}
# response body for status code(s): 200
response == {
"error": {
"code": "str", # This is one of a server-defined set of error codes.
Required.
"message": "str", # This is a human-readable representation of the
error. Required.
"details": [
...
],
"innererror": {
"code": "str", # Optional. This is a more specific error
code than was provided by the containing error.
"value": {} # Optional. This is an additional field
representing the value that caused the error to help with debugging.
},
"target": "str" # Optional. This is the error target.
}
}
"""
@overload
async def validate(
self, group_name: str, body: IO, *, content_type: str = "application/json", **kwargs: Any
) -> JSON:
"""Validate a discovery group with a given groupName.
Validate a discovery group with a given groupName.
:param group_name: The unique identifier for the discovery group. Required.
:type group_name: str
:param body: Required.
:type body: IO
:keyword content_type: Body Parameter content-type. Content type parameter for binary body.
Default value is "application/json".
:paramtype content_type: str
:return: JSON object
:rtype: JSON
:raises ~azure.core.exceptions.HttpResponseError:
Example:
.. code-block:: python
# response body for status code(s): 200
response == {
"error": {
"code": "str", # This is one of a server-defined set of error codes.
Required.
"message": "str", # This is a human-readable representation of the
error. Required.
"details": [
...
],
"innererror": {
"code": "str", # Optional. This is a more specific error
code than was provided by the containing error.
"value": {} # Optional. This is an additional field
representing the value that caused the error to help with debugging.
},
"target": "str" # Optional. This is the error target.
}
}
"""
[docs] @distributed_trace_async
async def validate(self, group_name: str, body: Union[JSON, IO], **kwargs: Any) -> JSON:
"""Validate a discovery group with a given groupName.
Validate a discovery group with a given groupName.
:param group_name: The unique identifier for the discovery group. Required.
:type group_name: str
:param body: Is either a model type or a IO type. Required.
:type body: JSON or IO
:keyword content_type: Body Parameter content-type. Known values are: 'application/json'.
Default value is None.
:paramtype content_type: str
:return: JSON object
:rtype: JSON
:raises ~azure.core.exceptions.HttpResponseError:
Example:
.. code-block:: python
# response body for status code(s): 200
response == {
"error": {
"code": "str", # This is one of a server-defined set of error codes.
Required.
"message": "str", # This is a human-readable representation of the
error. Required.
"details": [
...
],
"innererror": {
"code": "str", # Optional. This is a more specific error
code than was provided by the containing error.
"value": {} # Optional. This is an additional field
representing the value that caused the error to help with debugging.
},
"target": "str" # Optional. This is the error target.
}
}
"""
error_map = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
304: ResourceNotModifiedError,
}
error_map.update(kwargs.pop("error_map", {}) or {})
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = kwargs.pop("params", {}) or {}
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
cls: ClsType[JSON] = kwargs.pop("cls", None)
content_type = content_type or "application/json"
_json = None
_content = None
if isinstance(body, (IO, bytes)):
_content = body
else:
_json = body
request = build_discovery_groups_validate_request(
group_name=group_name,
subscription_id=self._config.subscription_id,
resource_group_name=self._config.resource_group_name,
workspace_name=self._config.workspace_name,
content_type=content_type,
api_version=self._config.api_version,
json=_json,
content=_content,
headers=_headers,
params=_params,
)
path_format_arguments = {
"endpoint": self._serialize.url("self._config.endpoint", self._config.endpoint, "str"),
}
request.url = self._client.format_url(request.url, **path_format_arguments)
pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
request, stream=False, **kwargs
)
response = pipeline_response.http_response
if response.status_code not in [200]:
map_error(status_code=response.status_code, response=response, error_map=error_map)
raise HttpResponseError(response=response)
if response.content:
deserialized = response.json()
else:
deserialized = None
if cls:
return cls(pipeline_response, cast(JSON, deserialized), {})
return cast(JSON, deserialized)
[docs]class DiscoveryTemplatesOperations:
"""
.. warning::
**DO NOT** instantiate this class directly.
Instead, you should access the following operations through
:class:`~azure.defender.easm.aio.EasmClient`'s
:attr:`discovery_templates` attribute.
"""
def __init__(self, *args, **kwargs) -> None:
input_args = list(args)
self._client = input_args.pop(0) if input_args else kwargs.pop("client")
self._config = input_args.pop(0) if input_args else kwargs.pop("config")
self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer")
self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer")
[docs] @distributed_trace
def list(self, *, filter: Optional[str] = None, skip: int = 0, **kwargs: Any) -> AsyncIterable[JSON]:
"""Retrieve a list of disco templates for the provided search parameters.
Retrieve a list of disco templates for the provided search parameters.
:keyword filter: An expression on the resource type that selects the resources to be returned.
Default value is None.
:paramtype filter: str
:keyword skip: An offset into the collection of the first item to be returned. Default value is
0.
:paramtype skip: int
:return: An iterator like instance of JSON object
:rtype: ~azure.core.async_paging.AsyncItemPaged[JSON]
:raises ~azure.core.exceptions.HttpResponseError:
Example:
.. code-block:: python
# response body for status code(s): 200
response == {
"city": "str", # Optional. The name of the city.
"countryCode": "str", # Optional. The country code.
"displayName": "str", # Optional. The name that can be used for display
purposes.
"id": "str", # Optional. The system generated unique id for the resource.
"industry": "str", # Optional. The name of the industry.
"name": "str", # Optional. The caller provided unique name for the resource.
"names": [
"str" # Optional. The list of disco template names.
],
"region": "str", # Optional. The name of the region.
"seeds": [
{
"kind": "str", # Optional. The kind of disco source. Known
values are: "as", "attribute", "contact", "domain", "host", and
"ipBlock".
"name": "str" # Optional. The name for the disco source.
}
],
"stateCode": "str" # Optional. The state code.
}
"""
_headers = kwargs.pop("headers", {}) or {}
_params = kwargs.pop("params", {}) or {}
cls: ClsType[JSON] = kwargs.pop("cls", None)
error_map = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
304: ResourceNotModifiedError,
}
error_map.update(kwargs.pop("error_map", {}) or {})
def prepare_request(next_link=None):
if not next_link:
request = build_discovery_templates_list_request(
subscription_id=self._config.subscription_id,
resource_group_name=self._config.resource_group_name,
workspace_name=self._config.workspace_name,
filter=filter,
skip=skip,
api_version=self._config.api_version,
headers=_headers,
params=_params,
)
path_format_arguments = {
"endpoint": self._serialize.url("self._config.endpoint", self._config.endpoint, "str"),
}
request.url = self._client.format_url(request.url, **path_format_arguments)
else:
# make call to next link with the client's api-version
_parsed_next_link = urllib.parse.urlparse(next_link)
_next_request_params = case_insensitive_dict(
{
key: [urllib.parse.quote(v) for v in value]
for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
}
)
_next_request_params["api-version"] = self._config.api_version
request = HttpRequest(
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
)
path_format_arguments = {
"endpoint": self._serialize.url("self._config.endpoint", self._config.endpoint, "str"),
}
request.url = self._client.format_url(request.url, **path_format_arguments)
return request
async def extract_data(pipeline_response):
deserialized = pipeline_response.http_response.json()
list_of_elem = deserialized["content"]
if cls:
list_of_elem = cls(list_of_elem) # type: ignore
return deserialized.get("nextLink") or None, AsyncList(list_of_elem)
async def get_next(next_link=None):
request = prepare_request(next_link)
pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
request, stream=False, **kwargs
)
response = pipeline_response.http_response
if response.status_code not in [200]:
map_error(status_code=response.status_code, response=response, error_map=error_map)
raise HttpResponseError(response=response)
return pipeline_response
return AsyncItemPaged(get_next, extract_data)
[docs] @distributed_trace_async
async def get(self, template_id: str, **kwargs: Any) -> JSON:
"""Retrieve a disco template with a given templateId.
Retrieve a disco template with a given templateId.
:param template_id: The unique identifier for the disco template. Required.
:type template_id: str
:return: JSON object
:rtype: JSON
:raises ~azure.core.exceptions.HttpResponseError:
Example:
.. code-block:: python
# response body for status code(s): 200
response == {
"city": "str", # Optional. The name of the city.
"countryCode": "str", # Optional. The country code.
"displayName": "str", # Optional. The name that can be used for display
purposes.
"id": "str", # Optional. The system generated unique id for the resource.
"industry": "str", # Optional. The name of the industry.
"name": "str", # Optional. The caller provided unique name for the resource.
"names": [
"str" # Optional. The list of disco template names.
],
"region": "str", # Optional. The name of the region.
"seeds": [
{
"kind": "str", # Optional. The kind of disco source. Known
values are: "as", "attribute", "contact", "domain", "host", and
"ipBlock".
"name": "str" # Optional. The name for the disco source.
}
],
"stateCode": "str" # Optional. The state code.
}
"""
error_map = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
304: ResourceNotModifiedError,
}
error_map.update(kwargs.pop("error_map", {}) or {})
_headers = kwargs.pop("headers", {}) or {}
_params = kwargs.pop("params", {}) or {}
cls: ClsType[JSON] = kwargs.pop("cls", None)
request = build_discovery_templates_get_request(
template_id=template_id,
subscription_id=self._config.subscription_id,
resource_group_name=self._config.resource_group_name,
workspace_name=self._config.workspace_name,
api_version=self._config.api_version,
headers=_headers,
params=_params,
)
path_format_arguments = {
"endpoint": self._serialize.url("self._config.endpoint", self._config.endpoint, "str"),
}
request.url = self._client.format_url(request.url, **path_format_arguments)
pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
request, stream=False, **kwargs
)
response = pipeline_response.http_response
if response.status_code not in [200]:
map_error(status_code=response.status_code, response=response, error_map=error_map)
raise HttpResponseError(response=response)
if response.content:
deserialized = response.json()
else:
deserialized = None
if cls:
return cls(pipeline_response, cast(JSON, deserialized), {})
return cast(JSON, deserialized)
[docs]class ReportsOperations:
"""
.. warning::
**DO NOT** instantiate this class directly.
Instead, you should access the following operations through
:class:`~azure.defender.easm.aio.EasmClient`'s
:attr:`reports` attribute.
"""
def __init__(self, *args, **kwargs) -> None:
input_args = list(args)
self._client = input_args.pop(0) if input_args else kwargs.pop("client")
self._config = input_args.pop(0) if input_args else kwargs.pop("config")
self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer")
self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer")
[docs] @distributed_trace_async
async def billable(self, **kwargs: Any) -> JSON:
"""Get billable assets summary for the workspace.
Get billable assets summary for the workspace.
:return: JSON object
:rtype: JSON
:raises ~azure.core.exceptions.HttpResponseError:
Example:
.. code-block:: python
# response body for status code(s): 200
response == {
"assetSummaries": [
{
"assetBreakdown": [
{
"count": 0, # Optional. The number of assets
of this type.
"kind": "str" # Optional. The kind of
billable asset. Known values are: "domain", "host", and
"ipAddress".
}
],
"date": "2020-02-20", # Optional. The date these assets were
billed on.
"total": 0 # Optional. The total number of billable assets
for this date.
}
]
}
"""
error_map = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
304: ResourceNotModifiedError,
}
error_map.update(kwargs.pop("error_map", {}) or {})
_headers = kwargs.pop("headers", {}) or {}
_params = kwargs.pop("params", {}) or {}
cls: ClsType[JSON] = kwargs.pop("cls", None)
request = build_reports_billable_request(
subscription_id=self._config.subscription_id,
resource_group_name=self._config.resource_group_name,
workspace_name=self._config.workspace_name,
api_version=self._config.api_version,
headers=_headers,
params=_params,
)
path_format_arguments = {
"endpoint": self._serialize.url("self._config.endpoint", self._config.endpoint, "str"),
}
request.url = self._client.format_url(request.url, **path_format_arguments)
pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
request, stream=False, **kwargs
)
response = pipeline_response.http_response
if response.status_code not in [200]:
map_error(status_code=response.status_code, response=response, error_map=error_map)
raise HttpResponseError(response=response)
if response.content:
deserialized = response.json()
else:
deserialized = None
if cls:
return cls(pipeline_response, cast(JSON, deserialized), {})
return cast(JSON, deserialized)
@overload
async def snapshot(self, body: JSON, *, content_type: str = "application/json", **kwargs: Any) -> JSON:
"""Get the most recent snapshot of asset summary values for the snapshot request.
Get the most recent snapshot of asset summary values for the snapshot request.
:param body: Required.
:type body: JSON
:keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
Default value is "application/json".
:paramtype content_type: str
:return: JSON object
:rtype: JSON
:raises ~azure.core.exceptions.HttpResponseError:
Example:
.. code-block:: python
# JSON input template you can fill out and use as your body input.
body = {
"labelName": "str", # Optional. The name of the label to retrieve a snapshot
for.
"metric": "str", # Optional. The metric to retrieve a snapshot for.
"page": 0, # Optional. The page to retrieve.
"size": 0 # Optional. The number of assets per page.
}
# response body for status code(s): 200
response == {
"assets": {
"content": [
asset_response
],
"first": bool, # Optional. Whether or not this is the first page of
results.
"last": bool, # Optional. Whether or not this is the last page of
results.
"mark": "str", # Optional. The cursor mark to be used on the next
request. Not set if using paging.
"nextLink": "str", # Optional. The link to access the next page of
results. Not set if at the end of the result set.
"number": 0, # Optional. The page number requested. Set to -1 if
using a cursor.
"numberOfElements": 0, # Optional. The number of items in the
current page of results.
"size": 0, # Optional. The page size requested.
"totalElements": 0, # Optional. The total number of items available
in the full result set.
"totalPages": 0 # Optional. The total number of pages available in
the full result set.
},
"description": "str", # Optional. A description of what the metric
represents.
"displayName": "str", # Optional. The name of the metric.
"labelName": "str", # Optional. The customer label that was filtered on, if
one was provided.
"metric": "str", # Optional. The unique metric name.
"updatedAt": "2020-02-20 00:00:00" # Optional. The last time this asset data
was updated on this metric.
}
"""
@overload
async def snapshot(self, body: IO, *, content_type: str = "application/json", **kwargs: Any) -> JSON:
"""Get the most recent snapshot of asset summary values for the snapshot request.
Get the most recent snapshot of asset summary values for the snapshot request.
:param body: Required.
:type body: IO
:keyword content_type: Body Parameter content-type. Content type parameter for binary body.
Default value is "application/json".
:paramtype content_type: str
:return: JSON object
:rtype: JSON
:raises ~azure.core.exceptions.HttpResponseError:
Example:
.. code-block:: python
# response body for status code(s): 200
response == {
"assets": {
"content": [
asset_response
],
"first": bool, # Optional. Whether or not this is the first page of
results.
"last": bool, # Optional. Whether or not this is the last page of
results.
"mark": "str", # Optional. The cursor mark to be used on the next
request. Not set if using paging.
"nextLink": "str", # Optional. The link to access the next page of
results. Not set if at the end of the result set.
"number": 0, # Optional. The page number requested. Set to -1 if
using a cursor.
"numberOfElements": 0, # Optional. The number of items in the
current page of results.
"size": 0, # Optional. The page size requested.
"totalElements": 0, # Optional. The total number of items available
in the full result set.
"totalPages": 0 # Optional. The total number of pages available in
the full result set.
},
"description": "str", # Optional. A description of what the metric
represents.
"displayName": "str", # Optional. The name of the metric.
"labelName": "str", # Optional. The customer label that was filtered on, if
one was provided.
"metric": "str", # Optional. The unique metric name.
"updatedAt": "2020-02-20 00:00:00" # Optional. The last time this asset data
was updated on this metric.
}
"""
[docs] @distributed_trace_async
async def snapshot(self, body: Union[JSON, IO], **kwargs: Any) -> JSON:
"""Get the most recent snapshot of asset summary values for the snapshot request.
Get the most recent snapshot of asset summary values for the snapshot request.
:param body: Is either a model type or a IO type. Required.
:type body: JSON or IO
:keyword content_type: Body Parameter content-type. Known values are: 'application/json'.
Default value is None.
:paramtype content_type: str
:return: JSON object
:rtype: JSON
:raises ~azure.core.exceptions.HttpResponseError:
Example:
.. code-block:: python
# response body for status code(s): 200
response == {
"assets": {
"content": [
asset_response
],
"first": bool, # Optional. Whether or not this is the first page of
results.
"last": bool, # Optional. Whether or not this is the last page of
results.
"mark": "str", # Optional. The cursor mark to be used on the next
request. Not set if using paging.
"nextLink": "str", # Optional. The link to access the next page of
results. Not set if at the end of the result set.
"number": 0, # Optional. The page number requested. Set to -1 if
using a cursor.
"numberOfElements": 0, # Optional. The number of items in the
current page of results.
"size": 0, # Optional. The page size requested.
"totalElements": 0, # Optional. The total number of items available
in the full result set.
"totalPages": 0 # Optional. The total number of pages available in
the full result set.
},
"description": "str", # Optional. A description of what the metric
represents.
"displayName": "str", # Optional. The name of the metric.
"labelName": "str", # Optional. The customer label that was filtered on, if
one was provided.
"metric": "str", # Optional. The unique metric name.
"updatedAt": "2020-02-20 00:00:00" # Optional. The last time this asset data
was updated on this metric.
}
"""
error_map = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
304: ResourceNotModifiedError,
}
error_map.update(kwargs.pop("error_map", {}) or {})
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = kwargs.pop("params", {}) or {}
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
cls: ClsType[JSON] = kwargs.pop("cls", None)
content_type = content_type or "application/json"
_json = None
_content = None
if isinstance(body, (IO, bytes)):
_content = body
else:
_json = body
request = build_reports_snapshot_request(
subscription_id=self._config.subscription_id,
resource_group_name=self._config.resource_group_name,
workspace_name=self._config.workspace_name,
content_type=content_type,
api_version=self._config.api_version,
json=_json,
content=_content,
headers=_headers,
params=_params,
)
path_format_arguments = {
"endpoint": self._serialize.url("self._config.endpoint", self._config.endpoint, "str"),
}
request.url = self._client.format_url(request.url, **path_format_arguments)
pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
request, stream=False, **kwargs
)
response = pipeline_response.http_response
if response.status_code not in [200]:
map_error(status_code=response.status_code, response=response, error_map=error_map)
raise HttpResponseError(response=response)
if response.content:
deserialized = response.json()
else:
deserialized = None
if cls:
return cls(pipeline_response, cast(JSON, deserialized), {})
return cast(JSON, deserialized)
@overload
async def summary(self, body: JSON, *, content_type: str = "application/json", **kwargs: Any) -> JSON:
"""Get asset summary details for the summary request.
Get asset summary details for the summary request.
:param body: Required.
:type body: JSON
:keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
Default value is "application/json".
:paramtype content_type: str
:return: JSON object
:rtype: JSON
:raises ~azure.core.exceptions.HttpResponseError:
Example:
.. code-block:: python
# JSON input template you can fill out and use as your body input.
body = {
"filters": [
"str" # Optional. Query filters to apply to the asset summary.
],
"groupBy": "str", # Optional. A parameter to group the assets by (first
level facet field), only used when the chosen summary identifier is filters.
"labelName": "str", # Optional. Currently unused.
"metricCategories": [
"str" # Optional. Categories to retrieve risk reporting data for.
],
"metrics": [
"str" # Optional. Metrics to retrieve risk reporting data for.
],
"segmentBy": "str" # Optional. A parameter to segment the assets by (second
level facet field), only used when the chosen summary identifier is filters.
}
# response body for status code(s): 200
response == {
"assetSummaries": [
{
"children": [
...
],
"count": 0, # Optional. The count of assets matching the
request parameters.
"description": "str", # Optional. The description of the
summary response. Filters don't have a description.
"displayName": "str", # Optional. The name of the summary
response. Depending on the request time this will either be the asset
filter, risk category, or risk metric.
"filter": "str", # Optional. If the request is for an asset
filter, this will contain the corresponding filter.
"labelName": "str", # Optional. An optional label used to
filter requests results.
"link": "str", # Optional. The link to the corresponding
asset details.
"metric": "str", # Optional. If the request is for a metric,
this will contain the requested unique metric name.
"metricCategory": "str", # Optional. If the request is for a
metric category, this will contain the requested unique category name.
"updatedAt": "2020-02-20 00:00:00" # Optional. The last time
risk categories or risk metrics were captured. Set to the current time
for asset filter requests, which always pull the live asset data.
}
]
}
"""
@overload
async def summary(self, body: IO, *, content_type: str = "application/json", **kwargs: Any) -> JSON:
"""Get asset summary details for the summary request.
Get asset summary details for the summary request.
:param body: Required.
:type body: IO
:keyword content_type: Body Parameter content-type. Content type parameter for binary body.
Default value is "application/json".
:paramtype content_type: str
:return: JSON object
:rtype: JSON
:raises ~azure.core.exceptions.HttpResponseError:
Example:
.. code-block:: python
# response body for status code(s): 200
response == {
"assetSummaries": [
{
"children": [
...
],
"count": 0, # Optional. The count of assets matching the
request parameters.
"description": "str", # Optional. The description of the
summary response. Filters don't have a description.
"displayName": "str", # Optional. The name of the summary
response. Depending on the request time this will either be the asset
filter, risk category, or risk metric.
"filter": "str", # Optional. If the request is for an asset
filter, this will contain the corresponding filter.
"labelName": "str", # Optional. An optional label used to
filter requests results.
"link": "str", # Optional. The link to the corresponding
asset details.
"metric": "str", # Optional. If the request is for a metric,
this will contain the requested unique metric name.
"metricCategory": "str", # Optional. If the request is for a
metric category, this will contain the requested unique category name.
"updatedAt": "2020-02-20 00:00:00" # Optional. The last time
risk categories or risk metrics were captured. Set to the current time
for asset filter requests, which always pull the live asset data.
}
]
}
"""
[docs] @distributed_trace_async
async def summary(self, body: Union[JSON, IO], **kwargs: Any) -> JSON:
"""Get asset summary details for the summary request.
Get asset summary details for the summary request.
:param body: Is either a model type or a IO type. Required.
:type body: JSON or IO
:keyword content_type: Body Parameter content-type. Known values are: 'application/json'.
Default value is None.
:paramtype content_type: str
:return: JSON object
:rtype: JSON
:raises ~azure.core.exceptions.HttpResponseError:
Example:
.. code-block:: python
# response body for status code(s): 200
response == {
"assetSummaries": [
{
"children": [
...
],
"count": 0, # Optional. The count of assets matching the
request parameters.
"description": "str", # Optional. The description of the
summary response. Filters don't have a description.
"displayName": "str", # Optional. The name of the summary
response. Depending on the request time this will either be the asset
filter, risk category, or risk metric.
"filter": "str", # Optional. If the request is for an asset
filter, this will contain the corresponding filter.
"labelName": "str", # Optional. An optional label used to
filter requests results.
"link": "str", # Optional. The link to the corresponding
asset details.
"metric": "str", # Optional. If the request is for a metric,
this will contain the requested unique metric name.
"metricCategory": "str", # Optional. If the request is for a
metric category, this will contain the requested unique category name.
"updatedAt": "2020-02-20 00:00:00" # Optional. The last time
risk categories or risk metrics were captured. Set to the current time
for asset filter requests, which always pull the live asset data.
}
]
}
"""
error_map = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
304: ResourceNotModifiedError,
}
error_map.update(kwargs.pop("error_map", {}) or {})
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = kwargs.pop("params", {}) or {}
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
cls: ClsType[JSON] = kwargs.pop("cls", None)
content_type = content_type or "application/json"
_json = None
_content = None
if isinstance(body, (IO, bytes)):
_content = body
else:
_json = body
request = build_reports_summary_request(
subscription_id=self._config.subscription_id,
resource_group_name=self._config.resource_group_name,
workspace_name=self._config.workspace_name,
content_type=content_type,
api_version=self._config.api_version,
json=_json,
content=_content,
headers=_headers,
params=_params,
)
path_format_arguments = {
"endpoint": self._serialize.url("self._config.endpoint", self._config.endpoint, "str"),
}
request.url = self._client.format_url(request.url, **path_format_arguments)
pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
request, stream=False, **kwargs
)
response = pipeline_response.http_response
if response.status_code not in [200]:
map_error(status_code=response.status_code, response=response, error_map=error_map)
raise HttpResponseError(response=response)
if response.content:
deserialized = response.json()
else:
deserialized = None
if cls:
return cls(pipeline_response, cast(JSON, deserialized), {})
return cast(JSON, deserialized)
[docs]class SavedFiltersOperations:
"""
.. warning::
**DO NOT** instantiate this class directly.
Instead, you should access the following operations through
:class:`~azure.defender.easm.aio.EasmClient`'s
:attr:`saved_filters` attribute.
"""
def __init__(self, *args, **kwargs) -> None:
input_args = list(args)
self._client = input_args.pop(0) if input_args else kwargs.pop("client")
self._config = input_args.pop(0) if input_args else kwargs.pop("config")
self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer")
self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer")
[docs] @distributed_trace
def list(self, *, filter: Optional[str] = None, skip: int = 0, **kwargs: Any) -> AsyncIterable[JSON]:
"""Retrieve a list of saved filters for the provided search parameters.
Retrieve a list of saved filters for the provided search parameters.
:keyword filter: An expression on the resource type that selects the resources to be returned.
Default value is None.
:paramtype filter: str
:keyword skip: An offset into the collection of the first item to be returned. Default value is
0.
:paramtype skip: int
:return: An iterator like instance of JSON object
:rtype: ~azure.core.async_paging.AsyncItemPaged[JSON]
:raises ~azure.core.exceptions.HttpResponseError:
Example:
.. code-block:: python
# response body for status code(s): 200
response == {
"description": "str", # Optional.
"displayName": "str", # Optional. The name that can be used for display
purposes.
"filter": "str", # Optional.
"id": "str", # Optional. The system generated unique id for the resource.
"name": "str" # Optional. The caller provided unique name for the resource.
}
"""
_headers = kwargs.pop("headers", {}) or {}
_params = kwargs.pop("params", {}) or {}
cls: ClsType[JSON] = kwargs.pop("cls", None)
error_map = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
304: ResourceNotModifiedError,
}
error_map.update(kwargs.pop("error_map", {}) or {})
def prepare_request(next_link=None):
if not next_link:
request = build_saved_filters_list_request(
subscription_id=self._config.subscription_id,
resource_group_name=self._config.resource_group_name,
workspace_name=self._config.workspace_name,
filter=filter,
skip=skip,
api_version=self._config.api_version,
headers=_headers,
params=_params,
)
path_format_arguments = {
"endpoint": self._serialize.url("self._config.endpoint", self._config.endpoint, "str"),
}
request.url = self._client.format_url(request.url, **path_format_arguments)
else:
# make call to next link with the client's api-version
_parsed_next_link = urllib.parse.urlparse(next_link)
_next_request_params = case_insensitive_dict(
{
key: [urllib.parse.quote(v) for v in value]
for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
}
)
_next_request_params["api-version"] = self._config.api_version
request = HttpRequest(
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
)
path_format_arguments = {
"endpoint": self._serialize.url("self._config.endpoint", self._config.endpoint, "str"),
}
request.url = self._client.format_url(request.url, **path_format_arguments)
return request
async def extract_data(pipeline_response):
deserialized = pipeline_response.http_response.json()
list_of_elem = deserialized["content"]
if cls:
list_of_elem = cls(list_of_elem) # type: ignore
return deserialized.get("nextLink") or None, AsyncList(list_of_elem)
async def get_next(next_link=None):
request = prepare_request(next_link)
pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
request, stream=False, **kwargs
)
response = pipeline_response.http_response
if response.status_code not in [200]:
map_error(status_code=response.status_code, response=response, error_map=error_map)
raise HttpResponseError(response=response)
return pipeline_response
return AsyncItemPaged(get_next, extract_data)
[docs] @distributed_trace_async
async def delete(self, filter_name: str, **kwargs: Any) -> None: # pylint: disable=inconsistent-return-statements
"""Delete a saved filter with a given filterName.
Delete a saved filter with a given filterName.
:param filter_name: The unique identifier for the saved filter. Required.
:type filter_name: str
:return: None
:rtype: None
:raises ~azure.core.exceptions.HttpResponseError:
"""
error_map = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
304: ResourceNotModifiedError,
}
error_map.update(kwargs.pop("error_map", {}) or {})
_headers = kwargs.pop("headers", {}) or {}
_params = kwargs.pop("params", {}) or {}
cls: ClsType[None] = kwargs.pop("cls", None)
request = build_saved_filters_delete_request(
filter_name=filter_name,
subscription_id=self._config.subscription_id,
resource_group_name=self._config.resource_group_name,
workspace_name=self._config.workspace_name,
api_version=self._config.api_version,
headers=_headers,
params=_params,
)
path_format_arguments = {
"endpoint": self._serialize.url("self._config.endpoint", self._config.endpoint, "str"),
}
request.url = self._client.format_url(request.url, **path_format_arguments)
pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
request, stream=False, **kwargs
)
response = pipeline_response.http_response
if response.status_code not in [204]:
map_error(status_code=response.status_code, response=response, error_map=error_map)
raise HttpResponseError(response=response)
if cls:
return cls(pipeline_response, None, {})
[docs] @distributed_trace_async
async def get(self, filter_name: str, **kwargs: Any) -> JSON:
"""Retrieve a saved filter by filterName.
Retrieve a saved filter by filterName.
:param filter_name: The unique identifier for the saved filter. Required.
:type filter_name: str
:return: JSON object
:rtype: JSON
:raises ~azure.core.exceptions.HttpResponseError:
Example:
.. code-block:: python
# response body for status code(s): 200
response == {
"description": "str", # Optional.
"displayName": "str", # Optional. The name that can be used for display
purposes.
"filter": "str", # Optional.
"id": "str", # Optional. The system generated unique id for the resource.
"name": "str" # Optional. The caller provided unique name for the resource.
}
"""
error_map = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
304: ResourceNotModifiedError,
}
error_map.update(kwargs.pop("error_map", {}) or {})
_headers = kwargs.pop("headers", {}) or {}
_params = kwargs.pop("params", {}) or {}
cls: ClsType[JSON] = kwargs.pop("cls", None)
request = build_saved_filters_get_request(
filter_name=filter_name,
subscription_id=self._config.subscription_id,
resource_group_name=self._config.resource_group_name,
workspace_name=self._config.workspace_name,
api_version=self._config.api_version,
headers=_headers,
params=_params,
)
path_format_arguments = {
"endpoint": self._serialize.url("self._config.endpoint", self._config.endpoint, "str"),
}
request.url = self._client.format_url(request.url, **path_format_arguments)
pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
request, stream=False, **kwargs
)
response = pipeline_response.http_response
if response.status_code not in [200]:
map_error(status_code=response.status_code, response=response, error_map=error_map)
raise HttpResponseError(response=response)
if response.content:
deserialized = response.json()
else:
deserialized = None
if cls:
return cls(pipeline_response, cast(JSON, deserialized), {})
return cast(JSON, deserialized)
@overload
async def put(self, filter_name: str, body: JSON, *, content_type: str = "application/json", **kwargs: Any) -> JSON:
"""Create or update a saved filter with a given filterName.
Create or update a saved filter with a given filterName.
:param filter_name: The unique identifier for the saved filter. Required.
:type filter_name: str
:param body: Required.
:type body: JSON
:keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
Default value is "application/json".
:paramtype content_type: str
:return: JSON object
:rtype: JSON
:raises ~azure.core.exceptions.HttpResponseError:
Example:
.. code-block:: python
# JSON input template you can fill out and use as your body input.
body = {
"description": "str", # A human readable description of the saved filter.
Required.
"filter": "str" # An expression on the resource type that selects the
resources to be returned. Required.
}
# response body for status code(s): 200
response == {
"description": "str", # Optional.
"displayName": "str", # Optional. The name that can be used for display
purposes.
"filter": "str", # Optional.
"id": "str", # Optional. The system generated unique id for the resource.
"name": "str" # Optional. The caller provided unique name for the resource.
}
"""
@overload
async def put(self, filter_name: str, body: IO, *, content_type: str = "application/json", **kwargs: Any) -> JSON:
"""Create or update a saved filter with a given filterName.
Create or update a saved filter with a given filterName.
:param filter_name: The unique identifier for the saved filter. Required.
:type filter_name: str
:param body: Required.
:type body: IO
:keyword content_type: Body Parameter content-type. Content type parameter for binary body.
Default value is "application/json".
:paramtype content_type: str
:return: JSON object
:rtype: JSON
:raises ~azure.core.exceptions.HttpResponseError:
Example:
.. code-block:: python
# response body for status code(s): 200
response == {
"description": "str", # Optional.
"displayName": "str", # Optional. The name that can be used for display
purposes.
"filter": "str", # Optional.
"id": "str", # Optional. The system generated unique id for the resource.
"name": "str" # Optional. The caller provided unique name for the resource.
}
"""
[docs] @distributed_trace_async
async def put(self, filter_name: str, body: Union[JSON, IO], **kwargs: Any) -> JSON:
"""Create or update a saved filter with a given filterName.
Create or update a saved filter with a given filterName.
:param filter_name: The unique identifier for the saved filter. Required.
:type filter_name: str
:param body: Is either a model type or a IO type. Required.
:type body: JSON or IO
:keyword content_type: Body Parameter content-type. Known values are: 'application/json'.
Default value is None.
:paramtype content_type: str
:return: JSON object
:rtype: JSON
:raises ~azure.core.exceptions.HttpResponseError:
Example:
.. code-block:: python
# response body for status code(s): 200
response == {
"description": "str", # Optional.
"displayName": "str", # Optional. The name that can be used for display
purposes.
"filter": "str", # Optional.
"id": "str", # Optional. The system generated unique id for the resource.
"name": "str" # Optional. The caller provided unique name for the resource.
}
"""
error_map = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
304: ResourceNotModifiedError,
}
error_map.update(kwargs.pop("error_map", {}) or {})
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = kwargs.pop("params", {}) or {}
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
cls: ClsType[JSON] = kwargs.pop("cls", None)
content_type = content_type or "application/json"
_json = None
_content = None
if isinstance(body, (IO, bytes)):
_content = body
else:
_json = body
request = build_saved_filters_put_request(
filter_name=filter_name,
subscription_id=self._config.subscription_id,
resource_group_name=self._config.resource_group_name,
workspace_name=self._config.workspace_name,
content_type=content_type,
api_version=self._config.api_version,
json=_json,
content=_content,
headers=_headers,
params=_params,
)
path_format_arguments = {
"endpoint": self._serialize.url("self._config.endpoint", self._config.endpoint, "str"),
}
request.url = self._client.format_url(request.url, **path_format_arguments)
pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
request, stream=False, **kwargs
)
response = pipeline_response.http_response
if response.status_code not in [200]:
map_error(status_code=response.status_code, response=response, error_map=error_map)
raise HttpResponseError(response=response)
if response.content:
deserialized = response.json()
else:
deserialized = None
if cls:
return cls(pipeline_response, cast(JSON, deserialized), {})
return cast(JSON, deserialized)
[docs]class TasksOperations:
"""
.. warning::
**DO NOT** instantiate this class directly.
Instead, you should access the following operations through
:class:`~azure.defender.easm.aio.EasmClient`'s
:attr:`tasks` attribute.
"""
def __init__(self, *args, **kwargs) -> None:
input_args = list(args)
self._client = input_args.pop(0) if input_args else kwargs.pop("client")
self._config = input_args.pop(0) if input_args else kwargs.pop("config")
self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer")
self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer")
[docs] @distributed_trace
def list(self, *, filter: Optional[str] = None, skip: int = 0, **kwargs: Any) -> AsyncIterable[JSON]:
"""Retrieve a list of tasks for the provided search parameters.
Retrieve a list of tasks for the provided search parameters.
:keyword filter: An expression on the resource type that selects the resources to be returned.
Default value is None.
:paramtype filter: str
:keyword skip: An offset into the collection of the first item to be returned. Default value is
0.
:paramtype skip: int
:return: An iterator like instance of JSON object
:rtype: ~azure.core.async_paging.AsyncItemPaged[JSON]
:raises ~azure.core.exceptions.HttpResponseError:
Example:
.. code-block:: python
# response body for status code(s): 200
response == {
"completedAt": "2020-02-20 00:00:00", # Optional. The time the task
completed.
"id": "str", # Optional. The unique identifier of the task.
"lastPolledAt": "2020-02-20 00:00:00", # Optional. The last time the status
of the task was updated.
"metadata": {
"str": {} # Optional. Attributes unique to the task. This differs
by task type.
},
"phase": "str", # Optional. The phase the task is in. Known values are:
"running", "polling", and "complete".
"reason": "str", # Optional. The reason the task was moved into its current
state, if the task wasn't completed.
"startedAt": "2020-02-20 00:00:00", # Optional. The time the task started.
"state": "str" # Optional. The state the task is in. Known values are:
"pending", "running", "paused", "complete", "incomplete", "failed", and
"warning".
}
"""
_headers = kwargs.pop("headers", {}) or {}
_params = kwargs.pop("params", {}) or {}
cls: ClsType[JSON] = kwargs.pop("cls", None)
error_map = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
304: ResourceNotModifiedError,
}
error_map.update(kwargs.pop("error_map", {}) or {})
def prepare_request(next_link=None):
if not next_link:
request = build_tasks_list_request(
subscription_id=self._config.subscription_id,
resource_group_name=self._config.resource_group_name,
workspace_name=self._config.workspace_name,
filter=filter,
skip=skip,
api_version=self._config.api_version,
headers=_headers,
params=_params,
)
path_format_arguments = {
"endpoint": self._serialize.url("self._config.endpoint", self._config.endpoint, "str"),
}
request.url = self._client.format_url(request.url, **path_format_arguments)
else:
# make call to next link with the client's api-version
_parsed_next_link = urllib.parse.urlparse(next_link)
_next_request_params = case_insensitive_dict(
{
key: [urllib.parse.quote(v) for v in value]
for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
}
)
_next_request_params["api-version"] = self._config.api_version
request = HttpRequest(
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
)
path_format_arguments = {
"endpoint": self._serialize.url("self._config.endpoint", self._config.endpoint, "str"),
}
request.url = self._client.format_url(request.url, **path_format_arguments)
return request
async def extract_data(pipeline_response):
deserialized = pipeline_response.http_response.json()
list_of_elem = deserialized["content"]
if cls:
list_of_elem = cls(list_of_elem) # type: ignore
return deserialized.get("nextLink") or None, AsyncList(list_of_elem)
async def get_next(next_link=None):
request = prepare_request(next_link)
pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
request, stream=False, **kwargs
)
response = pipeline_response.http_response
if response.status_code not in [200]:
map_error(status_code=response.status_code, response=response, error_map=error_map)
raise HttpResponseError(response=response)
return pipeline_response
return AsyncItemPaged(get_next, extract_data)
[docs] @distributed_trace_async
async def get(self, task_id: str, **kwargs: Any) -> JSON:
"""Retrieve a task by taskId.
Retrieve a task by taskId.
:param task_id: The unique identifier for the task. Required.
:type task_id: str
:return: JSON object
:rtype: JSON
:raises ~azure.core.exceptions.HttpResponseError:
Example:
.. code-block:: python
# response body for status code(s): 200
response == {
"completedAt": "2020-02-20 00:00:00", # Optional. The time the task
completed.
"id": "str", # Optional. The unique identifier of the task.
"lastPolledAt": "2020-02-20 00:00:00", # Optional. The last time the status
of the task was updated.
"metadata": {
"str": {} # Optional. Attributes unique to the task. This differs
by task type.
},
"phase": "str", # Optional. The phase the task is in. Known values are:
"running", "polling", and "complete".
"reason": "str", # Optional. The reason the task was moved into its current
state, if the task wasn't completed.
"startedAt": "2020-02-20 00:00:00", # Optional. The time the task started.
"state": "str" # Optional. The state the task is in. Known values are:
"pending", "running", "paused", "complete", "incomplete", "failed", and
"warning".
}
"""
error_map = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
304: ResourceNotModifiedError,
}
error_map.update(kwargs.pop("error_map", {}) or {})
_headers = kwargs.pop("headers", {}) or {}
_params = kwargs.pop("params", {}) or {}
cls: ClsType[JSON] = kwargs.pop("cls", None)
request = build_tasks_get_request(
task_id=task_id,
subscription_id=self._config.subscription_id,
resource_group_name=self._config.resource_group_name,
workspace_name=self._config.workspace_name,
api_version=self._config.api_version,
headers=_headers,
params=_params,
)
path_format_arguments = {
"endpoint": self._serialize.url("self._config.endpoint", self._config.endpoint, "str"),
}
request.url = self._client.format_url(request.url, **path_format_arguments)
pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
request, stream=False, **kwargs
)
response = pipeline_response.http_response
if response.status_code not in [200]:
map_error(status_code=response.status_code, response=response, error_map=error_map)
raise HttpResponseError(response=response)
if response.content:
deserialized = response.json()
else:
deserialized = None
if cls:
return cls(pipeline_response, cast(JSON, deserialized), {})
return cast(JSON, deserialized)
[docs] @distributed_trace_async
async def cancel(self, task_id: str, **kwargs: Any) -> JSON:
"""Cancel a task by taskId.
Cancel a task by taskId.
:param task_id: The unique identifier for the task. Required.
:type task_id: str
:return: JSON object
:rtype: JSON
:raises ~azure.core.exceptions.HttpResponseError:
Example:
.. code-block:: python
# response body for status code(s): 200
response == {
"completedAt": "2020-02-20 00:00:00", # Optional. The time the task
completed.
"id": "str", # Optional. The unique identifier of the task.
"lastPolledAt": "2020-02-20 00:00:00", # Optional. The last time the status
of the task was updated.
"metadata": {
"str": {} # Optional. Attributes unique to the task. This differs
by task type.
},
"phase": "str", # Optional. The phase the task is in. Known values are:
"running", "polling", and "complete".
"reason": "str", # Optional. The reason the task was moved into its current
state, if the task wasn't completed.
"startedAt": "2020-02-20 00:00:00", # Optional. The time the task started.
"state": "str" # Optional. The state the task is in. Known values are:
"pending", "running", "paused", "complete", "incomplete", "failed", and
"warning".
}
"""
error_map = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
304: ResourceNotModifiedError,
}
error_map.update(kwargs.pop("error_map", {}) or {})
_headers = kwargs.pop("headers", {}) or {}
_params = kwargs.pop("params", {}) or {}
cls: ClsType[JSON] = kwargs.pop("cls", None)
request = build_tasks_cancel_request(
task_id=task_id,
subscription_id=self._config.subscription_id,
resource_group_name=self._config.resource_group_name,
workspace_name=self._config.workspace_name,
api_version=self._config.api_version,
headers=_headers,
params=_params,
)
path_format_arguments = {
"endpoint": self._serialize.url("self._config.endpoint", self._config.endpoint, "str"),
}
request.url = self._client.format_url(request.url, **path_format_arguments)
pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
request, stream=False, **kwargs
)
response = pipeline_response.http_response
if response.status_code not in [200]:
map_error(status_code=response.status_code, response=response, error_map=error_map)
raise HttpResponseError(response=response)
if response.content:
deserialized = response.json()
else:
deserialized = None
if cls:
return cls(pipeline_response, cast(JSON, deserialized), {})
return cast(JSON, deserialized)