Пример #1
0
    id_mix=fields.Integer(example=834, description="ID of mix", required=True),
    name=fields.String(description="Name of mix", example="My mix", required=True),
    labels=fields.List(label_field),
    creation_time=fields.Integer(example=1554076800, description="Creation time of mix in unixtime", required=True)
)

mix = mix_basic.copy()
mix.update(dict(
    description=fields.String(),
))


annotated_units = api.model("AnnotatedUnits", dict(
    id_annotated_unit=fields.Integer(example=834, description="ID of mix", required=True),
    ip_mapping=fields.List(fields.Nested(ip_pair), required=True),
    mac_mapping=fields.List(fields.Nested(mac_pair), required=True),
    port_mapping=fields.List(fields.Nested(ip_port_map), required=True),
    timestamp=fields.Float(example=1541346574.1234, required=True),
))


mix_create = api.model("MixCreate", dict(
    name=fields.String(description="Name of mix", example="My mix", required=True),
    labels=fields.List(label_field),
    description=fields.String(),
    annotated_units=fields.List(fields.Nested(annotated_units), required=True),
))

mix_update = api.model("MixUpdate", dict(
    name=fields.String(description="Name of mix", example="My mix"),
    labels=fields.List(label_field),
Пример #2
0
from flask_restplus import fields

from traces_api.api.restplus import api

unit_id = fields.Integer(example=112, description="ID of unit", required=True)

ip_original = fields.String(example="1.2.3.4",
                            description="IP address",
                            required=True)
ip_replacement = fields.String(example="172.16.0.0",
                               description="IP address",
                               required=True)
ip_pair = api.model("IPPair",
                    dict(original=ip_original, replacement=ip_replacement))

ips = fields.Nested(
    api.model(
        "IPs",
        dict(
            target_nodes=fields.List(ip_replacement, required=True),
            intermediate_nodes=fields.List(ip_replacement, required=True),
            source_nodes=fields.List(ip_replacement, required=True),
        )),
    description=
    "Classification of ip addresses, every IP address should belong to one of this categories",
    required=True)

mac = fields.String(example="00:A0:C9:14:C8:29",
                    description="MAC addess",
                    required=True)
mac_pair = api.model("MacPair", dict(original=mac, replacement=mac))
Пример #3
0
from traces_api.api.restplus import api

ip_address = fields.String(example='1.1.1.1',
                           description="IP address",
                           required=True)

unit_id = fields.Integer(example=112, description="ID of unit", required=True)

ip_original = fields.String(example="1.2.3.4",
                            description="IP address",
                            required=True)
ip_replacement = fields.String(example="172.16.0.0",
                               description="IP address",
                               required=True)
ip_pair = api.model("IPPair",
                    dict(original=ip_original, replacement=ip_replacement))

ips = fields.Nested(
    api.model(
        "IPs",
        dict(
            target_nodes=fields.List(ip_replacement, required=True),
            intermediate_nodes=fields.List(ip_replacement, required=True),
            source_nodes=fields.List(ip_replacement, required=True),
        )),
    description=
    "Classification of ip addresses, every IP address should belong to one of this categories",
    required=True)

mac = fields.String(example="00:A0:C9:14:C8:29",
                    description="MAC addess",
Пример #4
0
        example=1554076800,
        description="Creation time of annotated unit in unixtime",
        required=True))

ann_unit = ann_unit_basic.copy()
ann_unit.update(
    dict(
        ip_details=ips,
        description=fields.String(),
        stats=analytical_data,
    ))

ann_unit_update = api.model(
    "AnnUnitUpdate",
    dict(
        name=fields.String(description="Name of annotated unit",
                           example="My unit"),
        labels=fields.List(label_field),
        description=fields.String(),
    ))

ann_unit_details_response = api.model("AnnotatedUnitDetailsResponse", ann_unit)

ann_unit_find = api.model(
    "AnnotatedUnitsFind",
    dict(
        limit=fields.Integer(description="Limit number of rows",
                             example=25,
                             default=100),
        page=fields.Integer(
            description=
            "Number of page to return, counting from 0 (used in pagination)",
Пример #5
0
from traces_api.api.restplus import api

from traces_api.schemas import unit_id, label_field, ip_pair, mac_pair, ips, analytical_data

# Unit step 1

unit_step1_fields = reqparse.RequestParser()
unit_step1_fields.add_argument('file',
                               type=werkzeug.datastructures.FileStorage,
                               location='files',
                               required=True,
                               help='PCAP file')

unit_step1_response = api.model(
    "UnitStep1Response",
    dict(
        id_unit=unit_id,
        analytical_data=analytical_data,
    ))

# Unit step 2

unit_step2_fields = api.model(
    "UnitStep2",
    dict(
        id_unit=unit_id,
        name=fields.String(description="Name of unit",
                           example="My unit",
                           required=True),
        description=fields.String(),
        labels=fields.List(label_field),
    ))