Description

The addDeviceMetricsIntegrations operation handles configuration related to DeviceMetricsIntegrations model. 

HTTP request

POST /api/fdm/v6/devicesettings/default/devicemetricsintegrations

Data Parameters

Parameter Required Type Description
name True string
Field level constraints: cannot be null, cannot be blank or empty, length must be between 0 and 128 (inclusive). (Note: Additional constraints might exist)
description False string
Field level constraints: length must be between 0 and 200 (inclusive). (Note: Additional constraints might exist)
integrationTargets True [object] An object of type Azure Application Insights that represents the targeted application to which the metrics will be emitted.
Field level constraints: cannot be null. (Note: Additional constraints might exist)
Allowed types are: [AwsCloudWatch, AzureApplicationInsights]
deviceIdentifier True string A String object used to differentiate statistics from this device and other devices emitting telemetry to Azure Application
Field level constraints: cannot be null, cannot be blank or empty, length must be between 0 and 64 (inclusive), must match pattern ^((?!;).)*$. (Note: Additional constraints might exist)
metricSettings True [object] An object of type Metric Settings to configure the metrics that needs to be emitted.
Field level constraints: cannot be null. (Note: Additional constraints might exist)
type True string A UTF8 string, all letters lower-case, that represents the class-type. This corresponds to the class name.

Example

curl -X POST \
    --header "Accept: application/json" \
    --header "Authorization: Bearer ${ACCESS_TOKEN}" \
    --header "Content-Type: application/json" \
    -d '{
        "description": "string",
        "deviceIdentifier": "string",
        "id": "string",
        "integrationTargets": [
            {
                "id": "string",
                "name": "string",
                "type": "string",
                "version": "string"
            }
        ],
        "metricSettings": [
            {
                "metricGroups": [
                    "string"
                ],
                "type": "metricsettings",
                "uploadPeriodMinutes": 0
            }
        ],
        "name": "string",
        "type": "devicemetricsintegrations",
        "version": "string"
    }' \
    "https://${HOST}:${PORT}/api/fdm/v6/devicesettings/default/devicemetricsintegrations"
from bravado.requests_client import RequestsClient
from bravado.client import SwaggerClient


def get_client(host, token):
    http_client = RequestsClient()
    http_client.ssl_verify = False
    http_client.set_api_key(
        host,
        "Bearer {}".format(token),
        param_name="Authorization",
        param_in="header"
    )
    return SwaggerClient.from_url(
        "https://{}/apispec/ngfw.json".format(host),
        http_client=http_client,
        config={
            "validate_responses": False,
            "validate_swagger_spec": False
        }
    )


def add_device_metrics_integrations(client, body):
    return client.DeviceMetrics.addDeviceMetricsIntegrations(
        body=body
    ).response().result


if __name__ == "__main__":
    host = "ftd.example.com"
    token = "access_token"
    client = get_client(host, token)

    body = {'description': 'string',
 'deviceIdentifier': 'string',
 'integrationTargets': [{'id': 'string',
                         'name': 'string',
                         'type': 'string',
                         'version': 'string'}],
 'metricSettings': [{'metricGroups': ['string'],
                     'type': 'metricsettings',
                     'uploadPeriodMinutes': 0}],
 'name': 'string',
 'type': 'devicemetricsintegrations'}

    add_device_metrics_integrations(client, body)