items) {
+ this.items = items;
+ }
+
+
+ public WebhookOperations links(SelfLinks links) {
+ this.links = links;
+ return this;
+ }
+
+ /**
+ * Get links
+ * @return links
+ **/
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_LINKS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public SelfLinks getLinks() {
+ return links;
+ }
+
+
+ @JsonProperty(JSON_PROPERTY_LINKS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setLinks(SelfLinks links) {
+ this.links = links;
+ }
+
+
+ /**
+ * Return true if this WebhookOperations object is equal to o.
+ */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ WebhookOperations webhookOperations = (WebhookOperations) o;
+ return Objects.equals(this.items, webhookOperations.items) &&
+ Objects.equals(this.links, webhookOperations.links);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(items, links);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class WebhookOperations {\n");
+ sb.append(" items: ").append(toIndentedString(items)).append("\n");
+ sb.append(" links: ").append(toIndentedString(links)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/connectors/src/test/java/com/thousandeyes/sdk/connectors/GenericConnectorsApiTest.java b/connectors/src/test/java/com/thousandeyes/sdk/connectors/GenericConnectorsApiTest.java
new file mode 100644
index 000000000..cdd59cb38
--- /dev/null
+++ b/connectors/src/test/java/com/thousandeyes/sdk/connectors/GenericConnectorsApiTest.java
@@ -0,0 +1,505 @@
+/*
+ * Integrations API
+ * Manage connectors and operations.
+ *
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package com.thousandeyes.sdk.connectors;
+
+import com.thousandeyes.sdk.connectors.model.Assignments;
+import com.thousandeyes.sdk.connectors.model.Error;
+import com.thousandeyes.sdk.connectors.model.GenericConnector;
+import com.thousandeyes.sdk.connectors.model.GenericConnectors;
+import com.thousandeyes.sdk.connectors.model.UnauthorizedError;
+import com.thousandeyes.sdk.connectors.model.ValidationError;
+import static com.github.tomakehurst.wiremock.client.WireMock.*;
+import static com.github.tomakehurst.wiremock.common.ContentTypes.AUTHORIZATION;
+import static com.github.tomakehurst.wiremock.common.ContentTypes.CONTENT_TYPE;
+import static com.thousandeyes.sdk.serialization.JSON.getDefault;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+
+import java.net.URLEncoder;
+import java.nio.charset.StandardCharsets;
+
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Test;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+
+import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.github.tomakehurst.wiremock.junit5.WireMockRuntimeInfo;
+import com.github.tomakehurst.wiremock.junit5.WireMockTest;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import com.thousandeyes.sdk.client.ApiClient;
+import com.thousandeyes.sdk.client.ApiException;
+import com.thousandeyes.sdk.client.NativeApiClient;
+
+
+/**
+ * Request and Response model deserialization tests for GenericConnectorsApi
+ */
+@WireMockTest
+public class GenericConnectorsApiTest {
+ private static final String TOKEN = "valid-token";
+ private static final String BEARER_TOKEN = "Bearer %s".formatted(TOKEN);
+ private static GenericConnectorsApi api;
+ private final ObjectMapper mapper = getDefault()
+ .getMapper()
+ .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, true);
+
+ @BeforeAll
+ public static void setup(WireMockRuntimeInfo wireMockRuntimeInfo) {
+ ApiClient client = NativeApiClient.builder()
+ .baseUri(wireMockRuntimeInfo.getHttpBaseUrl())
+ .bearerToken(TOKEN)
+ .build();
+ api = new GenericConnectorsApi(client);
+ }
+
+ /**
+ * Create connector
+ *
+ * Creates a new connector.
+ *
+ * @throws JsonProcessingException if the deserialization fails
+ */
+ @Test
+ public void createGenericConnectorRequestAndResponseDeserializationTest()
+ throws JsonProcessingException, ApiException
+ {
+
+ var requestBodyJson = """
+ {
+ "headers" : [ {
+ "name" : "Content-Type",
+ "value" : "application/json"
+ }, {
+ "name" : "Content-Type",
+ "value" : "application/json"
+ } ],
+ "lastModifiedDate" : 1770293655756,
+ "name" : "Cisco Slack",
+ "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf",
+ "type" : "generic",
+ "target" : "https://hooks.slack.com/services/abc/xyz",
+ "authentication" : {
+ "password" : "abc123",
+ "type" : "basic",
+ "username" : "user1"
+ }
+ }
+ """;
+ var requestBodyContentType = "application/json";
+ GenericConnector mappedRequest =
+ mapper.readValue(requestBodyJson, GenericConnector.class);
+ assertNotNull(mappedRequest);
+
+ var responseBodyJson = """
+ {
+ "headers" : [ {
+ "name" : "Content-Type",
+ "value" : "application/json"
+ }, {
+ "name" : "Content-Type",
+ "value" : "application/json"
+ } ],
+ "lastModifiedDate" : 1770293655756,
+ "name" : "Cisco Slack",
+ "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf",
+ "type" : "generic",
+ "target" : "https://hooks.slack.com/services/abc/xyz",
+ "authentication" : {
+ "password" : "abc123",
+ "type" : "basic",
+ "username" : "user1"
+ }
+ }
+ """;
+ var statusCode = 201;
+ var responseContentType = "application/json";
+ GenericConnector mappedResponse =
+ mapper.readValue(responseBodyJson, GenericConnector.class);
+ assertNotNull(mappedResponse);
+
+ var path = "/connectors/generic";
+ stubFor(post(urlPathTemplate(path))
+ .withHeader(AUTHORIZATION, equalTo(BEARER_TOKEN))
+ .withHeader(CONTENT_TYPE, equalTo(requestBodyContentType))
+ .withRequestBody(equalToJson(requestBodyJson))
+ .willReturn(aResponse()
+ .withHeader(CONTENT_TYPE, responseContentType)
+ .withBody(responseBodyJson)
+ .withStatus(statusCode)));
+
+ var apiResponse = api.createGenericConnector(mappedRequest, null);
+ assertEquals(mappedResponse, apiResponse);
+ }
+
+ /**
+ * Delete connector
+ *
+ * Deletes the connector specified by ID.
+ *
+ * @throws JsonProcessingException if the deserialization fails
+ */
+ @Test
+ public void deleteGenericConnectorRequestAndResponseDeserializationTest()
+ throws JsonProcessingException, ApiException
+ {
+ String id = "cb1b8033-ea2d-4e9b-a920-fe87850693cf";
+
+
+ var statusCode = 204;
+
+ var path = "/connectors/generic/{id}";
+ stubFor(delete(urlPathTemplate(path))
+ .withPathParam("id", equalTo(URLEncoder.encode(id, StandardCharsets.UTF_8)))
+ .withHeader(AUTHORIZATION, equalTo(BEARER_TOKEN))
+ .willReturn(aResponse()
+ .withStatus(statusCode)));
+
+ var apiResponse = api.deleteGenericConnectorWithHttpInfo(id, null);
+ assertEquals(statusCode, apiResponse.getStatusCode());
+ }
+
+ /**
+ * Retrieve connector
+ *
+ * Retrieves details of a connector by its ID.
+ *
+ * @throws JsonProcessingException if the deserialization fails
+ */
+ @Test
+ public void getGenericConnectorRequestAndResponseDeserializationTest()
+ throws JsonProcessingException, ApiException
+ {
+ String id = "cb1b8033-ea2d-4e9b-a920-fe87850693cf";
+
+
+ var responseBodyJson = """
+ {
+ "headers" : [ {
+ "name" : "Content-Type",
+ "value" : "application/json"
+ }, {
+ "name" : "Content-Type",
+ "value" : "application/json"
+ } ],
+ "lastModifiedDate" : 1770293655756,
+ "name" : "Cisco Slack",
+ "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf",
+ "type" : "generic",
+ "target" : "https://hooks.slack.com/services/abc/xyz",
+ "authentication" : {
+ "password" : "abc123",
+ "type" : "basic",
+ "username" : "user1"
+ }
+ }
+ """;
+ var statusCode = 200;
+ var responseContentType = "application/json";
+ GenericConnector mappedResponse =
+ mapper.readValue(responseBodyJson, GenericConnector.class);
+ assertNotNull(mappedResponse);
+
+ var path = "/connectors/generic/{id}";
+ stubFor(get(urlPathTemplate(path))
+ .withPathParam("id", equalTo(URLEncoder.encode(id, StandardCharsets.UTF_8)))
+ .withHeader(AUTHORIZATION, equalTo(BEARER_TOKEN))
+ .willReturn(aResponse()
+ .withHeader(CONTENT_TYPE, responseContentType)
+ .withBody(responseBodyJson)
+ .withStatus(statusCode)));
+
+ var apiResponse = api.getGenericConnector(id, null);
+ assertEquals(mappedResponse, apiResponse);
+ }
+
+ /**
+ * List connectors
+ *
+ * Returns a list of connectors in the specified account group. If no account group is specified, the user’s default account group is used.
+ *
+ * @throws JsonProcessingException if the deserialization fails
+ */
+ @Test
+ public void getGenericConnectorsRequestAndResponseDeserializationTest()
+ throws JsonProcessingException, ApiException
+ {
+
+
+ var responseBodyJson = """
+ {
+ "_links" : {
+ "self" : {
+ "hreflang" : "hreflang",
+ "templated" : true,
+ "profile" : "profile",
+ "name" : "name",
+ "href" : "https://api.thousandeyes.com/v7/link/to/resource/id",
+ "type" : "type",
+ "deprecation" : "deprecation",
+ "title" : "title"
+ }
+ },
+ "items" : [ {
+ "headers" : [ {
+ "name" : "Content-Type",
+ "value" : "application/json"
+ }, {
+ "name" : "Content-Type",
+ "value" : "application/json"
+ } ],
+ "lastModifiedDate" : 1770293655756,
+ "name" : "Cisco Slack",
+ "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf",
+ "type" : "generic",
+ "target" : "https://hooks.slack.com/services/abc/xyz",
+ "authentication" : {
+ "password" : "abc123",
+ "type" : "basic",
+ "username" : "user1"
+ }
+ }, {
+ "headers" : [ {
+ "name" : "Content-Type",
+ "value" : "application/json"
+ }, {
+ "name" : "Content-Type",
+ "value" : "application/json"
+ } ],
+ "lastModifiedDate" : 1770293655756,
+ "name" : "Cisco Slack",
+ "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf",
+ "type" : "generic",
+ "target" : "https://hooks.slack.com/services/abc/xyz",
+ "authentication" : {
+ "password" : "abc123",
+ "type" : "basic",
+ "username" : "user1"
+ }
+ } ]
+ }
+ """;
+ var statusCode = 200;
+ var responseContentType = "application/json";
+ GenericConnectors mappedResponse =
+ mapper.readValue(responseBodyJson, GenericConnectors.class);
+ assertNotNull(mappedResponse);
+
+ var path = "/connectors/generic";
+ stubFor(get(urlPathTemplate(path))
+ .withHeader(AUTHORIZATION, equalTo(BEARER_TOKEN))
+ .willReturn(aResponse()
+ .withHeader(CONTENT_TYPE, responseContentType)
+ .withBody(responseBodyJson)
+ .withStatus(statusCode)));
+
+ var apiResponse = api.getGenericConnectors(null);
+ assertEquals(mappedResponse, apiResponse);
+ }
+
+ /**
+ * List operation IDs assigned to a connector
+ *
+ * Returns a list of operation IDs assigned to a connector.
+ *
+ * @throws JsonProcessingException if the deserialization fails
+ */
+ @Test
+ public void listGenericConnectorOperationsRequestAndResponseDeserializationTest()
+ throws JsonProcessingException, ApiException
+ {
+ String id = "cb1b8033-ea2d-4e9b-a920-fe87850693cf";
+
+
+ var responseBodyJson = """
+ {
+ "_links" : {
+ "self" : {
+ "hreflang" : "hreflang",
+ "templated" : true,
+ "profile" : "profile",
+ "name" : "name",
+ "href" : "https://api.thousandeyes.com/v7/link/to/resource/id",
+ "type" : "type",
+ "deprecation" : "deprecation",
+ "title" : "title"
+ }
+ },
+ "items" : [ "ca39314d-eb4f-496f-9435-b5d20b1bfbff", "ca39314d-eb4f-496f-9435-b5d20b1bfbff" ]
+ }
+ """;
+ var statusCode = 200;
+ var responseContentType = "application/json";
+ Assignments mappedResponse =
+ mapper.readValue(responseBodyJson, Assignments.class);
+ assertNotNull(mappedResponse);
+
+ var path = "/connectors/generic/{id}/operations";
+ stubFor(get(urlPathTemplate(path))
+ .withPathParam("id", equalTo(URLEncoder.encode(id, StandardCharsets.UTF_8)))
+ .withHeader(AUTHORIZATION, equalTo(BEARER_TOKEN))
+ .willReturn(aResponse()
+ .withHeader(CONTENT_TYPE, responseContentType)
+ .withBody(responseBodyJson)
+ .withStatus(statusCode)));
+
+ var apiResponse = api.listGenericConnectorOperations(id, null);
+ assertEquals(mappedResponse, apiResponse);
+ }
+
+ /**
+ * Assign operations to a connector
+ *
+ * Assigns operations to a connector. This replaces any existing assignments.
+ *
+ * @throws JsonProcessingException if the deserialization fails
+ */
+ @Test
+ public void setGenericConnectorOperationsRequestAndResponseDeserializationTest()
+ throws JsonProcessingException, ApiException
+ {
+ String id = "cb1b8033-ea2d-4e9b-a920-fe87850693cf";
+
+ var requestBodyJson = """
+ """;
+ List<String> mappedRequest =
+ mapper.readValue(requestBodyJson, List<String>.class);
+ assertNotNull(mappedRequest);
+
+ var responseBodyJson = """
+ {
+ "_links" : {
+ "self" : {
+ "hreflang" : "hreflang",
+ "templated" : true,
+ "profile" : "profile",
+ "name" : "name",
+ "href" : "https://api.thousandeyes.com/v7/link/to/resource/id",
+ "type" : "type",
+ "deprecation" : "deprecation",
+ "title" : "title"
+ }
+ },
+ "items" : [ "ca39314d-eb4f-496f-9435-b5d20b1bfbff", "ca39314d-eb4f-496f-9435-b5d20b1bfbff" ]
+ }
+ """;
+ var statusCode = 200;
+ var responseContentType = "application/json";
+ Assignments mappedResponse =
+ mapper.readValue(responseBodyJson, Assignments.class);
+ assertNotNull(mappedResponse);
+
+ var path = "/connectors/generic/{id}/operations";
+ stubFor(put(urlPathTemplate(path))
+ .withPathParam("id", equalTo(URLEncoder.encode(id, StandardCharsets.UTF_8)))
+ .withHeader(AUTHORIZATION, equalTo(BEARER_TOKEN))
+ .withHeader(CONTENT_TYPE, equalTo(requestBodyContentType))
+ .withRequestBody(equalToJson(requestBodyJson))
+ .willReturn(aResponse()
+ .withHeader(CONTENT_TYPE, responseContentType)
+ .withBody(responseBodyJson)
+ .withStatus(statusCode)));
+
+ var apiResponse = api.setGenericConnectorOperations(id, mappedRequest, null);
+ assertEquals(mappedResponse, apiResponse);
+ }
+
+ /**
+ * Update connector
+ *
+ * Updates the connector specified by ID.
+ *
+ * @throws JsonProcessingException if the deserialization fails
+ */
+ @Test
+ public void updateGenericConnectorRequestAndResponseDeserializationTest()
+ throws JsonProcessingException, ApiException
+ {
+ String id = "cb1b8033-ea2d-4e9b-a920-fe87850693cf";
+
+ var requestBodyJson = """
+ {
+ "headers" : [ {
+ "name" : "Content-Type",
+ "value" : "application/json"
+ }, {
+ "name" : "Content-Type",
+ "value" : "application/json"
+ } ],
+ "lastModifiedDate" : 1770293655756,
+ "name" : "Cisco Slack",
+ "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf",
+ "type" : "generic",
+ "target" : "https://hooks.slack.com/services/abc/xyz",
+ "authentication" : {
+ "password" : "abc123",
+ "type" : "basic",
+ "username" : "user1"
+ }
+ }
+ """;
+ var requestBodyContentType = "application/json";
+ GenericConnector mappedRequest =
+ mapper.readValue(requestBodyJson, GenericConnector.class);
+ assertNotNull(mappedRequest);
+
+ var responseBodyJson = """
+ {
+ "headers" : [ {
+ "name" : "Content-Type",
+ "value" : "application/json"
+ }, {
+ "name" : "Content-Type",
+ "value" : "application/json"
+ } ],
+ "lastModifiedDate" : 1770293655756,
+ "name" : "Cisco Slack",
+ "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf",
+ "type" : "generic",
+ "target" : "https://hooks.slack.com/services/abc/xyz",
+ "authentication" : {
+ "password" : "abc123",
+ "type" : "basic",
+ "username" : "user1"
+ }
+ }
+ """;
+ var statusCode = 200;
+ var responseContentType = "application/json";
+ GenericConnector mappedResponse =
+ mapper.readValue(responseBodyJson, GenericConnector.class);
+ assertNotNull(mappedResponse);
+
+ var path = "/connectors/generic/{id}";
+ stubFor(put(urlPathTemplate(path))
+ .withPathParam("id", equalTo(URLEncoder.encode(id, StandardCharsets.UTF_8)))
+ .withHeader(AUTHORIZATION, equalTo(BEARER_TOKEN))
+ .withHeader(CONTENT_TYPE, equalTo(requestBodyContentType))
+ .withRequestBody(equalToJson(requestBodyJson))
+ .willReturn(aResponse()
+ .withHeader(CONTENT_TYPE, responseContentType)
+ .withBody(responseBodyJson)
+ .withStatus(statusCode)));
+
+ var apiResponse = api.updateGenericConnector(id, mappedRequest, null);
+ assertEquals(mappedResponse, apiResponse);
+ }
+
+}
diff --git a/connectors/src/test/java/com/thousandeyes/sdk/connectors/OperationConnectorsApiTest.java b/connectors/src/test/java/com/thousandeyes/sdk/connectors/OperationConnectorsApiTest.java
new file mode 100644
index 000000000..4901e4fb6
--- /dev/null
+++ b/connectors/src/test/java/com/thousandeyes/sdk/connectors/OperationConnectorsApiTest.java
@@ -0,0 +1,182 @@
+/*
+ * Integrations API
+ * Manage connectors and operations.
+ *
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package com.thousandeyes.sdk.connectors;
+
+import com.thousandeyes.sdk.connectors.model.Assignments;
+import com.thousandeyes.sdk.connectors.model.Error;
+import com.thousandeyes.sdk.connectors.model.UnauthorizedError;
+import com.thousandeyes.sdk.connectors.model.ValidationError;
+import static com.github.tomakehurst.wiremock.client.WireMock.*;
+import static com.github.tomakehurst.wiremock.common.ContentTypes.AUTHORIZATION;
+import static com.github.tomakehurst.wiremock.common.ContentTypes.CONTENT_TYPE;
+import static com.thousandeyes.sdk.serialization.JSON.getDefault;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+
+import java.net.URLEncoder;
+import java.nio.charset.StandardCharsets;
+
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Test;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+
+import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.github.tomakehurst.wiremock.junit5.WireMockRuntimeInfo;
+import com.github.tomakehurst.wiremock.junit5.WireMockTest;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import com.thousandeyes.sdk.client.ApiClient;
+import com.thousandeyes.sdk.client.ApiException;
+import com.thousandeyes.sdk.client.NativeApiClient;
+
+
+/**
+ * Request and Response model deserialization tests for OperationConnectorsApi
+ */
+@WireMockTest
+public class OperationConnectorsApiTest {
+ private static final String TOKEN = "valid-token";
+ private static final String BEARER_TOKEN = "Bearer %s".formatted(TOKEN);
+ private static OperationConnectorsApi api;
+ private final ObjectMapper mapper = getDefault()
+ .getMapper()
+ .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, true);
+
+ @BeforeAll
+ public static void setup(WireMockRuntimeInfo wireMockRuntimeInfo) {
+ ApiClient client = NativeApiClient.builder()
+ .baseUri(wireMockRuntimeInfo.getHttpBaseUrl())
+ .bearerToken(TOKEN)
+ .build();
+ api = new OperationConnectorsApi(client);
+ }
+
+ /**
+ * Retrieve connectors assigned to an operation
+ *
+ * Returns a list of connectors assigned to a specific operation.
+ *
+ * @throws JsonProcessingException if the deserialization fails
+ */
+ @Test
+ public void getOperationConnectorsRequestAndResponseDeserializationTest()
+ throws JsonProcessingException, ApiException
+ {
+ String type = "webhooks";
+ String id = "cb1b8033-ea2d-4e9b-a920-fe87850693cf";
+
+
+ var responseBodyJson = """
+ {
+ "_links" : {
+ "self" : {
+ "hreflang" : "hreflang",
+ "templated" : true,
+ "profile" : "profile",
+ "name" : "name",
+ "href" : "https://api.thousandeyes.com/v7/link/to/resource/id",
+ "type" : "type",
+ "deprecation" : "deprecation",
+ "title" : "title"
+ }
+ },
+ "items" : [ "ca39314d-eb4f-496f-9435-b5d20b1bfbff", "ca39314d-eb4f-496f-9435-b5d20b1bfbff" ]
+ }
+ """;
+ var statusCode = 200;
+ var responseContentType = "application/json";
+ Assignments mappedResponse =
+ mapper.readValue(responseBodyJson, Assignments.class);
+ assertNotNull(mappedResponse);
+
+ var path = "/operations/{type}/{id}/connectors";
+ stubFor(get(urlPathTemplate(path))
+ .withPathParam("type", equalTo(URLEncoder.encode(type, StandardCharsets.UTF_8)))
+ .withPathParam("id", equalTo(URLEncoder.encode(id, StandardCharsets.UTF_8)))
+ .withHeader(AUTHORIZATION, equalTo(BEARER_TOKEN))
+ .willReturn(aResponse()
+ .withHeader(CONTENT_TYPE, responseContentType)
+ .withBody(responseBodyJson)
+ .withStatus(statusCode)));
+
+ var apiResponse = api.getOperationConnectors(type, id, null);
+ assertEquals(mappedResponse, apiResponse);
+ }
+
+ /**
+ * Assign connectors to an operation
+ *
+ * Assigns one or more connectors to an operation. This replaces any existing assignments.
+ *
+ * @throws JsonProcessingException if the deserialization fails
+ */
+ @Test
+ public void setOperationConnectorsRequestAndResponseDeserializationTest()
+ throws JsonProcessingException, ApiException
+ {
+ String type = "webhooks";
+ String id = "cb1b8033-ea2d-4e9b-a920-fe87850693cf";
+
+ var requestBodyJson = """
+ """;
+ List<String> mappedRequest =
+ mapper.readValue(requestBodyJson, List<String>.class);
+ assertNotNull(mappedRequest);
+
+ var responseBodyJson = """
+ {
+ "_links" : {
+ "self" : {
+ "hreflang" : "hreflang",
+ "templated" : true,
+ "profile" : "profile",
+ "name" : "name",
+ "href" : "https://api.thousandeyes.com/v7/link/to/resource/id",
+ "type" : "type",
+ "deprecation" : "deprecation",
+ "title" : "title"
+ }
+ },
+ "items" : [ "ca39314d-eb4f-496f-9435-b5d20b1bfbff", "ca39314d-eb4f-496f-9435-b5d20b1bfbff" ]
+ }
+ """;
+ var statusCode = 200;
+ var responseContentType = "application/json";
+ Assignments mappedResponse =
+ mapper.readValue(responseBodyJson, Assignments.class);
+ assertNotNull(mappedResponse);
+
+ var path = "/operations/{type}/{id}/connectors";
+ stubFor(put(urlPathTemplate(path))
+ .withPathParam("type", equalTo(URLEncoder.encode(type, StandardCharsets.UTF_8)))
+ .withPathParam("id", equalTo(URLEncoder.encode(id, StandardCharsets.UTF_8)))
+ .withHeader(AUTHORIZATION, equalTo(BEARER_TOKEN))
+ .withHeader(CONTENT_TYPE, equalTo(requestBodyContentType))
+ .withRequestBody(equalToJson(requestBodyJson))
+ .willReturn(aResponse()
+ .withHeader(CONTENT_TYPE, responseContentType)
+ .withBody(responseBodyJson)
+ .withStatus(statusCode)));
+
+ var apiResponse = api.setOperationConnectors(type, id, mappedRequest, null);
+ assertEquals(mappedResponse, apiResponse);
+ }
+
+}
diff --git a/connectors/src/test/java/com/thousandeyes/sdk/connectors/WebhookOperationsApiTest.java b/connectors/src/test/java/com/thousandeyes/sdk/connectors/WebhookOperationsApiTest.java
new file mode 100644
index 000000000..53fbd41b2
--- /dev/null
+++ b/connectors/src/test/java/com/thousandeyes/sdk/connectors/WebhookOperationsApiTest.java
@@ -0,0 +1,453 @@
+/*
+ * Integrations API
+ * Manage connectors and operations.
+ *
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package com.thousandeyes.sdk.connectors;
+
+import com.thousandeyes.sdk.connectors.model.Error;
+import com.thousandeyes.sdk.connectors.model.UnauthorizedError;
+import com.thousandeyes.sdk.connectors.model.ValidationError;
+import com.thousandeyes.sdk.connectors.model.WebhookOperation;
+import com.thousandeyes.sdk.connectors.model.WebhookOperations;
+import static com.github.tomakehurst.wiremock.client.WireMock.*;
+import static com.github.tomakehurst.wiremock.common.ContentTypes.AUTHORIZATION;
+import static com.github.tomakehurst.wiremock.common.ContentTypes.CONTENT_TYPE;
+import static com.thousandeyes.sdk.serialization.JSON.getDefault;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+
+import java.net.URLEncoder;
+import java.nio.charset.StandardCharsets;
+
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Test;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+
+import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.github.tomakehurst.wiremock.junit5.WireMockRuntimeInfo;
+import com.github.tomakehurst.wiremock.junit5.WireMockTest;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import com.thousandeyes.sdk.client.ApiClient;
+import com.thousandeyes.sdk.client.ApiException;
+import com.thousandeyes.sdk.client.NativeApiClient;
+
+
+/**
+ * Request and Response model deserialization tests for WebhookOperationsApi
+ */
+@WireMockTest
+public class WebhookOperationsApiTest {
+ private static final String TOKEN = "valid-token";
+ private static final String BEARER_TOKEN = "Bearer %s".formatted(TOKEN);
+ private static WebhookOperationsApi api;
+ private final ObjectMapper mapper = getDefault()
+ .getMapper()
+ .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, true);
+
+ @BeforeAll
+ public static void setup(WireMockRuntimeInfo wireMockRuntimeInfo) {
+ ApiClient client = NativeApiClient.builder()
+ .baseUri(wireMockRuntimeInfo.getHttpBaseUrl())
+ .bearerToken(TOKEN)
+ .build();
+ api = new WebhookOperationsApi(client);
+ }
+
+ /**
+ * Create webhook operation
+ *
+ * Creates a new webhook operation.
+ *
+ * @throws JsonProcessingException if the deserialization fails
+ */
+ @Test
+ public void createWebhookOperationRequestAndResponseDeserializationTest()
+ throws JsonProcessingException, ApiException
+ {
+
+ var requestBodyJson = """
+ {
+ "path" : "/custom/path",
+ "headers" : [ {
+ "name" : "Content-Type",
+ "value" : "application/json"
+ } ],
+ "payload" : "{\\"property1\\": {{numericVar}}, \\"property2\\": \\"{{stringVar}}\\"}",
+ "queryParams" : "{\\"queryParam1\\":\\"{{stringVar}}\\"}",
+ "_links" : {
+ "self" : {
+ "hreflang" : "hreflang",
+ "templated" : true,
+ "profile" : "profile",
+ "name" : "name",
+ "href" : "https://api.thousandeyes.com/v7/link/to/resource/id",
+ "type" : "type",
+ "deprecation" : "deprecation",
+ "title" : "title"
+ }
+ },
+ "name" : "My operation",
+ "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf",
+ "category" : "alerts",
+ "type" : "webhook",
+ "enabled" : true,
+ "status" : "pending"
+ }
+ """;
+ var requestBodyContentType = "application/json";
+ WebhookOperation mappedRequest =
+ mapper.readValue(requestBodyJson, WebhookOperation.class);
+ assertNotNull(mappedRequest);
+
+ var responseBodyJson = """
+ {
+ "path" : "/custom/path",
+ "headers" : [ {
+ "name" : "Content-Type",
+ "value" : "application/json"
+ } ],
+ "payload" : "{\\"property1\\": {{numericVar}}, \\"property2\\": \\"{{stringVar}}\\"}",
+ "queryParams" : "{\\"queryParam1\\":\\"{{stringVar}}\\"}",
+ "_links" : {
+ "self" : {
+ "hreflang" : "hreflang",
+ "templated" : true,
+ "profile" : "profile",
+ "name" : "name",
+ "href" : "https://api.thousandeyes.com/v7/link/to/resource/id",
+ "type" : "type",
+ "deprecation" : "deprecation",
+ "title" : "title"
+ }
+ },
+ "name" : "My operation",
+ "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf",
+ "category" : "alerts",
+ "type" : "webhook",
+ "enabled" : true,
+ "status" : "pending"
+ }
+ """;
+ var statusCode = 201;
+ var responseContentType = "application/json";
+ WebhookOperation mappedResponse =
+ mapper.readValue(responseBodyJson, WebhookOperation.class);
+ assertNotNull(mappedResponse);
+
+ var path = "/operations/webhooks";
+ stubFor(post(urlPathTemplate(path))
+ .withHeader(AUTHORIZATION, equalTo(BEARER_TOKEN))
+ .withHeader(CONTENT_TYPE, equalTo(requestBodyContentType))
+ .withRequestBody(equalToJson(requestBodyJson))
+ .willReturn(aResponse()
+ .withHeader(CONTENT_TYPE, responseContentType)
+ .withBody(responseBodyJson)
+ .withStatus(statusCode)));
+
+ var apiResponse = api.createWebhookOperation(mappedRequest, null);
+ assertEquals(mappedResponse, apiResponse);
+ }
+
+ /**
+ * Delete webhook operation
+ *
+ * Deletes the webhook operation specified by ID.
+ *
+ * @throws JsonProcessingException if the deserialization fails
+ */
+ @Test
+ public void deleteWebhookOperationRequestAndResponseDeserializationTest()
+ throws JsonProcessingException, ApiException
+ {
+ String id = "cb1b8033-ea2d-4e9b-a920-fe87850693cf";
+
+
+ var statusCode = 204;
+
+ var path = "/operations/webhooks/{id}";
+ stubFor(delete(urlPathTemplate(path))
+ .withPathParam("id", equalTo(URLEncoder.encode(id, StandardCharsets.UTF_8)))
+ .withHeader(AUTHORIZATION, equalTo(BEARER_TOKEN))
+ .willReturn(aResponse()
+ .withStatus(statusCode)));
+
+ var apiResponse = api.deleteWebhookOperationWithHttpInfo(id, null);
+ assertEquals(statusCode, apiResponse.getStatusCode());
+ }
+
+ /**
+ * Retrieve webhook operation
+ *
+ * Retrieves details of a webhook operation by its ID.
+ *
+ * @throws JsonProcessingException if the deserialization fails
+ */
+ @Test
+ public void getWebhookOperationRequestAndResponseDeserializationTest()
+ throws JsonProcessingException, ApiException
+ {
+ String id = "cb1b8033-ea2d-4e9b-a920-fe87850693cf";
+
+
+ var responseBodyJson = """
+ {
+ "path" : "/custom/path",
+ "headers" : [ {
+ "name" : "Content-Type",
+ "value" : "application/json"
+ } ],
+ "payload" : "{\\"property1\\": {{numericVar}}, \\"property2\\": \\"{{stringVar}}\\"}",
+ "queryParams" : "{\\"queryParam1\\":\\"{{stringVar}}\\"}",
+ "_links" : {
+ "self" : {
+ "hreflang" : "hreflang",
+ "templated" : true,
+ "profile" : "profile",
+ "name" : "name",
+ "href" : "https://api.thousandeyes.com/v7/link/to/resource/id",
+ "type" : "type",
+ "deprecation" : "deprecation",
+ "title" : "title"
+ }
+ },
+ "name" : "My operation",
+ "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf",
+ "category" : "alerts",
+ "type" : "webhook",
+ "enabled" : true,
+ "status" : "pending"
+ }
+ """;
+ var statusCode = 200;
+ var responseContentType = "application/json";
+ WebhookOperation mappedResponse =
+ mapper.readValue(responseBodyJson, WebhookOperation.class);
+ assertNotNull(mappedResponse);
+
+ var path = "/operations/webhooks/{id}";
+ stubFor(get(urlPathTemplate(path))
+ .withPathParam("id", equalTo(URLEncoder.encode(id, StandardCharsets.UTF_8)))
+ .withHeader(AUTHORIZATION, equalTo(BEARER_TOKEN))
+ .willReturn(aResponse()
+ .withHeader(CONTENT_TYPE, responseContentType)
+ .withBody(responseBodyJson)
+ .withStatus(statusCode)));
+
+ var apiResponse = api.getWebhookOperation(id, null);
+ assertEquals(mappedResponse, apiResponse);
+ }
+
+ /**
+ * List webhook operations
+ *
+ * Returns a list of webhook operations in the specified account group. If no account group is specified, the user’s default account group is used.
+ *
+ * @throws JsonProcessingException if the deserialization fails
+ */
+ @Test
+ public void getWebhookOperationsRequestAndResponseDeserializationTest()
+ throws JsonProcessingException, ApiException
+ {
+
+
+ var responseBodyJson = """
+ {
+ "_links" : {
+ "self" : {
+ "hreflang" : "hreflang",
+ "templated" : true,
+ "profile" : "profile",
+ "name" : "name",
+ "href" : "https://api.thousandeyes.com/v7/link/to/resource/id",
+ "type" : "type",
+ "deprecation" : "deprecation",
+ "title" : "title"
+ }
+ },
+ "items" : [ {
+ "path" : "/custom/path",
+ "headers" : [ {
+ "name" : "Content-Type",
+ "value" : "application/json"
+ } ],
+ "payload" : "{\\"property1\\": {{numericVar}}, \\"property2\\": \\"{{stringVar}}\\"}",
+ "queryParams" : "{\\"queryParam1\\":\\"{{stringVar}}\\"}",
+ "_links" : {
+ "self" : {
+ "hreflang" : "hreflang",
+ "templated" : true,
+ "profile" : "profile",
+ "name" : "name",
+ "href" : "https://api.thousandeyes.com/v7/link/to/resource/id",
+ "type" : "type",
+ "deprecation" : "deprecation",
+ "title" : "title"
+ }
+ },
+ "name" : "My operation",
+ "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf",
+ "category" : "alerts",
+ "type" : "webhook",
+ "enabled" : true,
+ "status" : "pending"
+ }, {
+ "path" : "/custom/path",
+ "headers" : [ {
+ "name" : "Content-Type",
+ "value" : "application/json"
+ } ],
+ "payload" : "{\\"property1\\": {{numericVar}}, \\"property2\\": \\"{{stringVar}}\\"}",
+ "queryParams" : "{\\"queryParam1\\":\\"{{stringVar}}\\"}",
+ "_links" : {
+ "self" : {
+ "hreflang" : "hreflang",
+ "templated" : true,
+ "profile" : "profile",
+ "name" : "name",
+ "href" : "https://api.thousandeyes.com/v7/link/to/resource/id",
+ "type" : "type",
+ "deprecation" : "deprecation",
+ "title" : "title"
+ }
+ },
+ "name" : "My operation",
+ "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf",
+ "category" : "alerts",
+ "type" : "webhook",
+ "enabled" : true,
+ "status" : "pending"
+ } ]
+ }
+ """;
+ var statusCode = 200;
+ var responseContentType = "application/json";
+ WebhookOperations mappedResponse =
+ mapper.readValue(responseBodyJson, WebhookOperations.class);
+ assertNotNull(mappedResponse);
+
+ var path = "/operations/webhooks";
+ stubFor(get(urlPathTemplate(path))
+ .withHeader(AUTHORIZATION, equalTo(BEARER_TOKEN))
+ .willReturn(aResponse()
+ .withHeader(CONTENT_TYPE, responseContentType)
+ .withBody(responseBodyJson)
+ .withStatus(statusCode)));
+
+ var apiResponse = api.getWebhookOperations(null);
+ assertEquals(mappedResponse, apiResponse);
+ }
+
+ /**
+ * Update webhook operation
+ *
+ * Updates the webhook operation specified by ID.
+ *
+ * @throws JsonProcessingException if the deserialization fails
+ */
+ @Test
+ public void updateWebhookOperationRequestAndResponseDeserializationTest()
+ throws JsonProcessingException, ApiException
+ {
+ String id = "cb1b8033-ea2d-4e9b-a920-fe87850693cf";
+
+ var requestBodyJson = """
+ {
+ "path" : "/custom/path",
+ "headers" : [ {
+ "name" : "Content-Type",
+ "value" : "application/json"
+ } ],
+ "payload" : "{\\"property1\\": {{numericVar}}, \\"property2\\": \\"{{stringVar}}\\"}",
+ "queryParams" : "{\\"queryParam1\\":\\"{{stringVar}}\\"}",
+ "_links" : {
+ "self" : {
+ "hreflang" : "hreflang",
+ "templated" : true,
+ "profile" : "profile",
+ "name" : "name",
+ "href" : "https://api.thousandeyes.com/v7/link/to/resource/id",
+ "type" : "type",
+ "deprecation" : "deprecation",
+ "title" : "title"
+ }
+ },
+ "name" : "My operation",
+ "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf",
+ "category" : "alerts",
+ "type" : "webhook",
+ "enabled" : true,
+ "status" : "pending"
+ }
+ """;
+ var requestBodyContentType = "application/json";
+ WebhookOperation mappedRequest =
+ mapper.readValue(requestBodyJson, WebhookOperation.class);
+ assertNotNull(mappedRequest);
+
+ var responseBodyJson = """
+ {
+ "path" : "/custom/path",
+ "headers" : [ {
+ "name" : "Content-Type",
+ "value" : "application/json"
+ } ],
+ "payload" : "{\\"property1\\": {{numericVar}}, \\"property2\\": \\"{{stringVar}}\\"}",
+ "queryParams" : "{\\"queryParam1\\":\\"{{stringVar}}\\"}",
+ "_links" : {
+ "self" : {
+ "hreflang" : "hreflang",
+ "templated" : true,
+ "profile" : "profile",
+ "name" : "name",
+ "href" : "https://api.thousandeyes.com/v7/link/to/resource/id",
+ "type" : "type",
+ "deprecation" : "deprecation",
+ "title" : "title"
+ }
+ },
+ "name" : "My operation",
+ "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf",
+ "category" : "alerts",
+ "type" : "webhook",
+ "enabled" : true,
+ "status" : "pending"
+ }
+ """;
+ var statusCode = 200;
+ var responseContentType = "application/json";
+ WebhookOperation mappedResponse =
+ mapper.readValue(responseBodyJson, WebhookOperation.class);
+ assertNotNull(mappedResponse);
+
+ var path = "/operations/webhooks/{id}";
+ stubFor(put(urlPathTemplate(path))
+ .withPathParam("id", equalTo(URLEncoder.encode(id, StandardCharsets.UTF_8)))
+ .withHeader(AUTHORIZATION, equalTo(BEARER_TOKEN))
+ .withHeader(CONTENT_TYPE, equalTo(requestBodyContentType))
+ .withRequestBody(equalToJson(requestBodyJson))
+ .willReturn(aResponse()
+ .withHeader(CONTENT_TYPE, responseContentType)
+ .withBody(responseBodyJson)
+ .withStatus(statusCode)));
+
+ var apiResponse = api.updateWebhookOperation(id, mappedRequest, null);
+ assertEquals(mappedResponse, apiResponse);
+ }
+
+}
diff --git a/credentials/README.md b/credentials/README.md
index 3512ef734..9e21c7a4f 100644
--- a/credentials/README.md
+++ b/credentials/README.md
@@ -2,7 +2,7 @@
Credentials API
-- API version: 7.0.75
+- API version: 7.0.78
Manage credentials for transaction tests using the Credentials API.
diff --git a/dashboards/README.md b/dashboards/README.md
index e0abc0af9..07841dd89 100644
--- a/dashboards/README.md
+++ b/dashboards/README.md
@@ -2,7 +2,7 @@
Dashboards API
-- API version: 7.0.75
+- API version: 7.0.78
Manage ThousandEyes Dashboards.
diff --git a/emulation/README.md b/emulation/README.md
index 2f8a5ba0a..7e66bc363 100644
--- a/emulation/README.md
+++ b/emulation/README.md
@@ -2,7 +2,7 @@
Emulation API
-- API version: 7.0.75
+- API version: 7.0.78
The Emulation API facilitates the retrieval of user-agent strings for HTTP, pageload, and transaction tests. It also enables the retrieval and addition of emulated devices for pageload and transaction tests.
diff --git a/endpoint-agents/.openapi-generator/FILES b/endpoint-agents/.openapi-generator/FILES
index f97ab026a..cbbfc65b7 100644
--- a/endpoint-agents/.openapi-generator/FILES
+++ b/endpoint-agents/.openapi-generator/FILES
@@ -18,9 +18,12 @@ src/main/java/com/thousandeyes/sdk/endpoint/agents/model/AgentThresholdFilters.j
src/main/java/com/thousandeyes/sdk/endpoint/agents/model/AgentTransfer.java
src/main/java/com/thousandeyes/sdk/endpoint/agents/model/AgentTransferRequest.java
src/main/java/com/thousandeyes/sdk/endpoint/agents/model/AgentTransferStatus.java
+src/main/java/com/thousandeyes/sdk/endpoint/agents/model/BatteryLevel.java
+src/main/java/com/thousandeyes/sdk/endpoint/agents/model/BatteryMetrics.java
src/main/java/com/thousandeyes/sdk/endpoint/agents/model/BrowserType.java
src/main/java/com/thousandeyes/sdk/endpoint/agents/model/BulkAgentTransferRequest.java
src/main/java/com/thousandeyes/sdk/endpoint/agents/model/BulkAgentTransferResponse.java
+src/main/java/com/thousandeyes/sdk/endpoint/agents/model/CellularProfile.java
src/main/java/com/thousandeyes/sdk/endpoint/agents/model/ConditionalOperator.java
src/main/java/com/thousandeyes/sdk/endpoint/agents/model/ConnectionString.java
src/main/java/com/thousandeyes/sdk/endpoint/agents/model/EndpointAgent.java
diff --git a/endpoint-agents/README.md b/endpoint-agents/README.md
index 518b157c7..d7bd9b35c 100644
--- a/endpoint-agents/README.md
+++ b/endpoint-agents/README.md
@@ -2,7 +2,7 @@
Endpoint Agents API
-- API version: 7.0.75
+- API version: 7.0.78
Manage ThousandEyes Endpoint Agents using this API.
diff --git a/endpoint-agents/src/main/java/com/thousandeyes/sdk/endpoint/agents/model/BatteryLevel.java b/endpoint-agents/src/main/java/com/thousandeyes/sdk/endpoint/agents/model/BatteryLevel.java
new file mode 100644
index 000000000..495915ad4
--- /dev/null
+++ b/endpoint-agents/src/main/java/com/thousandeyes/sdk/endpoint/agents/model/BatteryLevel.java
@@ -0,0 +1,64 @@
+/*
+ * Endpoint Agents API
+ * Manage ThousandEyes Endpoint Agents using this API. For more information about Endpoint Agents, see [Endpoint Agents](https://docs.thousandeyes.com/product-documentation/global-vantage-points/endpoint-agents).
+ *
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package com.thousandeyes.sdk.endpoint.agents.model;
+
+import java.util.Objects;
+import java.util.Map;
+import java.util.HashMap;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Battery level indicator.
+ */
+public enum BatteryLevel {
+
+ HIGH("high"),
+
+ MEDIUM("medium"),
+
+ LOW("low"),
+
+ UNKNOWN("unknown");
+
+ private String value;
+
+ BatteryLevel(String value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static BatteryLevel fromValue(String value) {
+ for (BatteryLevel b : BatteryLevel.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ return UNKNOWN;
+ }
+
+}
+
diff --git a/endpoint-agents/src/main/java/com/thousandeyes/sdk/endpoint/agents/model/BatteryMetrics.java b/endpoint-agents/src/main/java/com/thousandeyes/sdk/endpoint/agents/model/BatteryMetrics.java
new file mode 100644
index 000000000..b61e6bfc3
--- /dev/null
+++ b/endpoint-agents/src/main/java/com/thousandeyes/sdk/endpoint/agents/model/BatteryMetrics.java
@@ -0,0 +1,139 @@
+/*
+ * Endpoint Agents API
+ * Manage ThousandEyes Endpoint Agents using this API. For more information about Endpoint Agents, see [Endpoint Agents](https://docs.thousandeyes.com/product-documentation/global-vantage-points/endpoint-agents).
+ *
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package com.thousandeyes.sdk.endpoint.agents.model;
+
+import java.util.Objects;
+import java.util.Map;
+import java.util.HashMap;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.fasterxml.jackson.annotation.JsonValue;
+import com.thousandeyes.sdk.endpoint.agents.model.BatteryLevel;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+
+
+/**
+ * Battery metrics for the endpoint agent.
+ */
+@JsonPropertyOrder({
+ BatteryMetrics.JSON_PROPERTY_BATTERY_LEVEL,
+ BatteryMetrics.JSON_PROPERTY_BATTERY_LEVEL_NORMALIZED_PERCENT
+})
+@jakarta.annotation.Generated(value = "com.thousandeyes.api.codegen.ThousandeyesJavaGenerator")
+public class BatteryMetrics {
+ public static final String JSON_PROPERTY_BATTERY_LEVEL = "batteryLevel";
+ private BatteryLevel batteryLevel;
+
+ public static final String JSON_PROPERTY_BATTERY_LEVEL_NORMALIZED_PERCENT = "batteryLevelNormalizedPercent";
+ private Double batteryLevelNormalizedPercent;
+
+ public BatteryMetrics() {
+ }
+
+ public BatteryMetrics batteryLevel(BatteryLevel batteryLevel) {
+ this.batteryLevel = batteryLevel;
+ return this;
+ }
+
+ /**
+ * Get batteryLevel
+ * @return batteryLevel
+ **/
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_BATTERY_LEVEL)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+ public BatteryLevel getBatteryLevel() {
+ return batteryLevel;
+ }
+
+
+ @JsonProperty(JSON_PROPERTY_BATTERY_LEVEL)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setBatteryLevel(BatteryLevel batteryLevel) {
+ this.batteryLevel = batteryLevel;
+ }
+
+
+ public BatteryMetrics batteryLevelNormalizedPercent(Double batteryLevelNormalizedPercent) {
+ this.batteryLevelNormalizedPercent = batteryLevelNormalizedPercent;
+ return this;
+ }
+
+ /**
+ * Battery level as a normalized percentage (0-1).
+ * minimum: 0
+ * maximum: 1
+ * @return batteryLevelNormalizedPercent
+ **/
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_BATTERY_LEVEL_NORMALIZED_PERCENT)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+ public Double getBatteryLevelNormalizedPercent() {
+ return batteryLevelNormalizedPercent;
+ }
+
+
+ @JsonProperty(JSON_PROPERTY_BATTERY_LEVEL_NORMALIZED_PERCENT)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setBatteryLevelNormalizedPercent(Double batteryLevelNormalizedPercent) {
+ this.batteryLevelNormalizedPercent = batteryLevelNormalizedPercent;
+ }
+
+
+ /**
+ * Return true if this BatteryMetrics object is equal to o.
+ */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ BatteryMetrics batteryMetrics = (BatteryMetrics) o;
+ return Objects.equals(this.batteryLevel, batteryMetrics.batteryLevel) &&
+ Objects.equals(this.batteryLevelNormalizedPercent, batteryMetrics.batteryLevelNormalizedPercent);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(batteryLevel, batteryLevelNormalizedPercent);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class BatteryMetrics {\n");
+ sb.append(" batteryLevel: ").append(toIndentedString(batteryLevel)).append("\n");
+ sb.append(" batteryLevelNormalizedPercent: ").append(toIndentedString(batteryLevelNormalizedPercent)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/endpoint-agents/src/main/java/com/thousandeyes/sdk/endpoint/agents/model/CellularProfile.java b/endpoint-agents/src/main/java/com/thousandeyes/sdk/endpoint/agents/model/CellularProfile.java
new file mode 100644
index 000000000..df47e7e83
--- /dev/null
+++ b/endpoint-agents/src/main/java/com/thousandeyes/sdk/endpoint/agents/model/CellularProfile.java
@@ -0,0 +1,384 @@
+/*
+ * Endpoint Agents API
+ * Manage ThousandEyes Endpoint Agents using this API. For more information about Endpoint Agents, see [Endpoint Agents](https://docs.thousandeyes.com/product-documentation/global-vantage-points/endpoint-agents).
+ *
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package com.thousandeyes.sdk.endpoint.agents.model;
+
+import java.util.Objects;
+import java.util.Map;
+import java.util.HashMap;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.fasterxml.jackson.annotation.JsonValue;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+
+
+/**
+ * Cellular network profile information for a mobile endpoint agent.
+ */
+@JsonPropertyOrder({
+ CellularProfile.JSON_PROPERTY_CARRIER_NAME,
+ CellularProfile.JSON_PROPERTY_NETWORK_GEN,
+ CellularProfile.JSON_PROPERTY_NETWORK_SUBTYPE,
+ CellularProfile.JSON_PROPERTY_ADVERTISED_NETWORK_GEN,
+ CellularProfile.JSON_PROPERTY_ADVERTISED_NETWORK_SUBTYPE,
+ CellularProfile.JSON_PROPERTY_RSSI,
+ CellularProfile.JSON_PROPERTY_RSRP,
+ CellularProfile.JSON_PROPERTY_RSCP,
+ CellularProfile.JSON_PROPERTY_RSRQ,
+ CellularProfile.JSON_PROPERTY_SINR
+})
+@jakarta.annotation.Generated(value = "com.thousandeyes.api.codegen.ThousandeyesJavaGenerator")
+public class CellularProfile {
+ public static final String JSON_PROPERTY_CARRIER_NAME = "carrierName";
+ private String carrierName;
+
+ public static final String JSON_PROPERTY_NETWORK_GEN = "networkGen";
+ private String networkGen;
+
+ public static final String JSON_PROPERTY_NETWORK_SUBTYPE = "networkSubtype";
+ private String networkSubtype;
+
+ public static final String JSON_PROPERTY_ADVERTISED_NETWORK_GEN = "advertisedNetworkGen";
+ private String advertisedNetworkGen;
+
+ public static final String JSON_PROPERTY_ADVERTISED_NETWORK_SUBTYPE = "advertisedNetworkSubtype";
+ private String advertisedNetworkSubtype;
+
+ public static final String JSON_PROPERTY_RSSI = "rssi";
+ private Double rssi;
+
+ public static final String JSON_PROPERTY_RSRP = "rsrp";
+ private Double rsrp;
+
+ public static final String JSON_PROPERTY_RSCP = "rscp";
+ private Double rscp;
+
+ public static final String JSON_PROPERTY_RSRQ = "rsrq";
+ private Double rsrq;
+
+ public static final String JSON_PROPERTY_SINR = "sinr";
+ private Double sinr;
+
+ public CellularProfile() {
+ }
+
+ public CellularProfile carrierName(String carrierName) {
+ this.carrierName = carrierName;
+ return this;
+ }
+
+ /**
+ * Carrier name
+ * @return carrierName
+ **/
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_CARRIER_NAME)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public String getCarrierName() {
+ return carrierName;
+ }
+
+
+ @JsonProperty(JSON_PROPERTY_CARRIER_NAME)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setCarrierName(String carrierName) {
+ this.carrierName = carrierName;
+ }
+
+
+ public CellularProfile networkGen(String networkGen) {
+ this.networkGen = networkGen;
+ return this;
+ }
+
+ /**
+ * Cellular network generation.
+ * @return networkGen
+ **/
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_NETWORK_GEN)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public String getNetworkGen() {
+ return networkGen;
+ }
+
+
+ @JsonProperty(JSON_PROPERTY_NETWORK_GEN)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setNetworkGen(String networkGen) {
+ this.networkGen = networkGen;
+ }
+
+
+ public CellularProfile networkSubtype(String networkSubtype) {
+ this.networkSubtype = networkSubtype;
+ return this;
+ }
+
+ /**
+ * A real network subtype. It may be different from an advertised network type.
+ * @return networkSubtype
+ **/
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_NETWORK_SUBTYPE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public String getNetworkSubtype() {
+ return networkSubtype;
+ }
+
+
+ @JsonProperty(JSON_PROPERTY_NETWORK_SUBTYPE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setNetworkSubtype(String networkSubtype) {
+ this.networkSubtype = networkSubtype;
+ }
+
+
+ public CellularProfile advertisedNetworkGen(String advertisedNetworkGen) {
+ this.advertisedNetworkGen = advertisedNetworkGen;
+ return this;
+ }
+
+ /**
+ * Cellular network generation.
+ * @return advertisedNetworkGen
+ **/
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_ADVERTISED_NETWORK_GEN)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public String getAdvertisedNetworkGen() {
+ return advertisedNetworkGen;
+ }
+
+
+ @JsonProperty(JSON_PROPERTY_ADVERTISED_NETWORK_GEN)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setAdvertisedNetworkGen(String advertisedNetworkGen) {
+ this.advertisedNetworkGen = advertisedNetworkGen;
+ }
+
+
+ public CellularProfile advertisedNetworkSubtype(String advertisedNetworkSubtype) {
+ this.advertisedNetworkSubtype = advertisedNetworkSubtype;
+ return this;
+ }
+
+ /**
+ * Advertised Network subtype
+ * @return advertisedNetworkSubtype
+ **/
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_ADVERTISED_NETWORK_SUBTYPE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public String getAdvertisedNetworkSubtype() {
+ return advertisedNetworkSubtype;
+ }
+
+
+ @JsonProperty(JSON_PROPERTY_ADVERTISED_NETWORK_SUBTYPE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setAdvertisedNetworkSubtype(String advertisedNetworkSubtype) {
+ this.advertisedNetworkSubtype = advertisedNetworkSubtype;
+ }
+
+
+ public CellularProfile rssi(Double rssi) {
+ this.rssi = rssi;
+ return this;
+ }
+
+ /**
+ * Received Signal Strength Indicator in dBm. Values are always negative.
+ * @return rssi
+ **/
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_RSSI)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public Double getRssi() {
+ return rssi;
+ }
+
+
+ @JsonProperty(JSON_PROPERTY_RSSI)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setRssi(Double rssi) {
+ this.rssi = rssi;
+ }
+
+
+ public CellularProfile rsrp(Double rsrp) {
+ this.rsrp = rsrp;
+ return this;
+ }
+
+ /**
+ * Reference Signal Received Power in dBm. Values are always negative.
+ * @return rsrp
+ **/
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_RSRP)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public Double getRsrp() {
+ return rsrp;
+ }
+
+
+ @JsonProperty(JSON_PROPERTY_RSRP)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setRsrp(Double rsrp) {
+ this.rsrp = rsrp;
+ }
+
+
+ public CellularProfile rscp(Double rscp) {
+ this.rscp = rscp;
+ return this;
+ }
+
+ /**
+ * Received Signal Code Power in dBm. Values are always negative or zero.
+ * @return rscp
+ **/
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_RSCP)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public Double getRscp() {
+ return rscp;
+ }
+
+
+ @JsonProperty(JSON_PROPERTY_RSCP)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setRscp(Double rscp) {
+ this.rscp = rscp;
+ }
+
+
+ public CellularProfile rsrq(Double rsrq) {
+ this.rsrq = rsrq;
+ return this;
+ }
+
+ /**
+ * Reference Signal Received Quality in dBm. Values are always negative.
+ * @return rsrq
+ **/
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_RSRQ)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public Double getRsrq() {
+ return rsrq;
+ }
+
+
+ @JsonProperty(JSON_PROPERTY_RSRQ)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setRsrq(Double rsrq) {
+ this.rsrq = rsrq;
+ }
+
+
+ public CellularProfile sinr(Double sinr) {
+ this.sinr = sinr;
+ return this;
+ }
+
+ /**
+ * Signal to Interference and Noise Ratio in dBm. It can be negative or positive.
+ * @return sinr
+ **/
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_SINR)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public Double getSinr() {
+ return sinr;
+ }
+
+
+ @JsonProperty(JSON_PROPERTY_SINR)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setSinr(Double sinr) {
+ this.sinr = sinr;
+ }
+
+
+ /**
+ * Return true if this CellularProfile object is equal to o.
+ */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ CellularProfile cellularProfile = (CellularProfile) o;
+ return Objects.equals(this.carrierName, cellularProfile.carrierName) &&
+ Objects.equals(this.networkGen, cellularProfile.networkGen) &&
+ Objects.equals(this.networkSubtype, cellularProfile.networkSubtype) &&
+ Objects.equals(this.advertisedNetworkGen, cellularProfile.advertisedNetworkGen) &&
+ Objects.equals(this.advertisedNetworkSubtype, cellularProfile.advertisedNetworkSubtype) &&
+ Objects.equals(this.rssi, cellularProfile.rssi) &&
+ Objects.equals(this.rsrp, cellularProfile.rsrp) &&
+ Objects.equals(this.rscp, cellularProfile.rscp) &&
+ Objects.equals(this.rsrq, cellularProfile.rsrq) &&
+ Objects.equals(this.sinr, cellularProfile.sinr);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(carrierName, networkGen, networkSubtype, advertisedNetworkGen, advertisedNetworkSubtype, rssi, rsrp, rscp, rsrq, sinr);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class CellularProfile {\n");
+ sb.append(" carrierName: ").append(toIndentedString(carrierName)).append("\n");
+ sb.append(" networkGen: ").append(toIndentedString(networkGen)).append("\n");
+ sb.append(" networkSubtype: ").append(toIndentedString(networkSubtype)).append("\n");
+ sb.append(" advertisedNetworkGen: ").append(toIndentedString(advertisedNetworkGen)).append("\n");
+ sb.append(" advertisedNetworkSubtype: ").append(toIndentedString(advertisedNetworkSubtype)).append("\n");
+ sb.append(" rssi: ").append(toIndentedString(rssi)).append("\n");
+ sb.append(" rsrp: ").append(toIndentedString(rsrp)).append("\n");
+ sb.append(" rscp: ").append(toIndentedString(rscp)).append("\n");
+ sb.append(" rsrq: ").append(toIndentedString(rsrq)).append("\n");
+ sb.append(" sinr: ").append(toIndentedString(sinr)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/endpoint-agents/src/main/java/com/thousandeyes/sdk/endpoint/agents/model/EndpointAgent.java b/endpoint-agents/src/main/java/com/thousandeyes/sdk/endpoint/agents/model/EndpointAgent.java
index b654ae26b..b49481334 100644
--- a/endpoint-agents/src/main/java/com/thousandeyes/sdk/endpoint/agents/model/EndpointAgent.java
+++ b/endpoint-agents/src/main/java/com/thousandeyes/sdk/endpoint/agents/model/EndpointAgent.java
@@ -21,6 +21,8 @@
import com.fasterxml.jackson.annotation.JsonTypeName;
import com.fasterxml.jackson.annotation.JsonValue;
import com.thousandeyes.sdk.endpoint.agents.model.AgentLicenseType;
+import com.thousandeyes.sdk.endpoint.agents.model.BatteryMetrics;
+import com.thousandeyes.sdk.endpoint.agents.model.CellularProfile;
import com.thousandeyes.sdk.endpoint.agents.model.EndpointAgentLocation;
import com.thousandeyes.sdk.endpoint.agents.model.EndpointAsnDetails;
import com.thousandeyes.sdk.endpoint.agents.model.EndpointClient;
@@ -71,6 +73,8 @@
EndpointAgent.JSON_PROPERTY_LICENSE_TYPE,
EndpointAgent.JSON_PROPERTY_TCP_DRIVER_AVAILABLE,
EndpointAgent.JSON_PROPERTY_NPCAP_VERSION,
+ EndpointAgent.JSON_PROPERTY_BATTERY_METRICS,
+ EndpointAgent.JSON_PROPERTY_CELLULAR_PROFILE,
EndpointAgent.JSON_PROPERTY_LINKS
})
@jakarta.annotation.Generated(value = "com.thousandeyes.api.codegen.ThousandeyesJavaGenerator")
@@ -162,6 +166,12 @@ public class EndpointAgent {
public static final String JSON_PROPERTY_NPCAP_VERSION = "npcapVersion";
private String npcapVersion;
+ public static final String JSON_PROPERTY_BATTERY_METRICS = "batteryMetrics";
+ private BatteryMetrics batteryMetrics;
+
+ public static final String JSON_PROPERTY_CELLULAR_PROFILE = "cellularProfile";
+ private CellularProfile cellularProfile;
+
public static final String JSON_PROPERTY_LINKS = "_links";
private SelfLinks links;
@@ -739,6 +749,56 @@ public String getNpcapVersion() {
+ public EndpointAgent batteryMetrics(BatteryMetrics batteryMetrics) {
+ this.batteryMetrics = batteryMetrics;
+ return this;
+ }
+
+ /**
+ * Get batteryMetrics
+ * @return batteryMetrics
+ **/
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_BATTERY_METRICS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public BatteryMetrics getBatteryMetrics() {
+ return batteryMetrics;
+ }
+
+
+ @JsonProperty(JSON_PROPERTY_BATTERY_METRICS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setBatteryMetrics(BatteryMetrics batteryMetrics) {
+ this.batteryMetrics = batteryMetrics;
+ }
+
+
+ public EndpointAgent cellularProfile(CellularProfile cellularProfile) {
+ this.cellularProfile = cellularProfile;
+ return this;
+ }
+
+ /**
+ * Get cellularProfile
+ * @return cellularProfile
+ **/
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_CELLULAR_PROFILE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public CellularProfile getCellularProfile() {
+ return cellularProfile;
+ }
+
+
+ @JsonProperty(JSON_PROPERTY_CELLULAR_PROFILE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setCellularProfile(CellularProfile cellularProfile) {
+ this.cellularProfile = cellularProfile;
+ }
+
+
public EndpointAgent links(SelfLinks links) {
this.links = links;
return this;
@@ -805,12 +865,14 @@ public boolean equals(Object o) {
Objects.equals(this.licenseType, endpointAgent.licenseType) &&
Objects.equals(this.tcpDriverAvailable, endpointAgent.tcpDriverAvailable) &&
Objects.equals(this.npcapVersion, endpointAgent.npcapVersion) &&
+ Objects.equals(this.batteryMetrics, endpointAgent.batteryMetrics) &&
+ Objects.equals(this.cellularProfile, endpointAgent.cellularProfile) &&
Objects.equals(this.links, endpointAgent.links);
}
@Override
public int hashCode() {
- return Objects.hash(id, aid, name, computerName, osVersion, platform, kernelVersion, manufacturer, model, serialNumber, lastSeen, status, deleted, version, targetVersion, createdAt, numberOfClients, publicIP, location, clients, totalMemory, agentType, vpnProfiles, externalMetadata, networkInterfaceProfiles, asnDetails, licenseType, tcpDriverAvailable, npcapVersion, links);
+ return Objects.hash(id, aid, name, computerName, osVersion, platform, kernelVersion, manufacturer, model, serialNumber, lastSeen, status, deleted, version, targetVersion, createdAt, numberOfClients, publicIP, location, clients, totalMemory, agentType, vpnProfiles, externalMetadata, networkInterfaceProfiles, asnDetails, licenseType, tcpDriverAvailable, npcapVersion, batteryMetrics, cellularProfile, links);
}
@Override
@@ -846,6 +908,8 @@ public String toString() {
sb.append(" licenseType: ").append(toIndentedString(licenseType)).append("\n");
sb.append(" tcpDriverAvailable: ").append(toIndentedString(tcpDriverAvailable)).append("\n");
sb.append(" npcapVersion: ").append(toIndentedString(npcapVersion)).append("\n");
+ sb.append(" batteryMetrics: ").append(toIndentedString(batteryMetrics)).append("\n");
+ sb.append(" cellularProfile: ").append(toIndentedString(cellularProfile)).append("\n");
sb.append(" links: ").append(toIndentedString(links)).append("\n");
sb.append("}");
return sb.toString();
diff --git a/endpoint-agents/src/test/java/com/thousandeyes/sdk/endpoint/agents/EndpointAgentsApiTest.java b/endpoint-agents/src/test/java/com/thousandeyes/sdk/endpoint/agents/EndpointAgentsApiTest.java
index e536b9c27..933c1e97f 100644
--- a/endpoint-agents/src/test/java/com/thousandeyes/sdk/endpoint/agents/EndpointAgentsApiTest.java
+++ b/endpoint-agents/src/test/java/com/thousandeyes/sdk/endpoint/agents/EndpointAgentsApiTest.java
@@ -181,11 +181,27 @@ public void disableEndpointAgentRequestAndResponseDeserializationTest()
"title" : "title"
}
},
+ "batteryMetrics" : {
+ "batteryLevel" : "medium",
+ "batteryLevelNormalizedPercent" : 0.3
+ },
"publicIP" : "88.45.2.123",
"tcpDriverAvailable" : true,
"platform" : "mac",
"manufacturer" : "Apple, Inc.",
"targetVersion" : "0.123.4",
+ "cellularProfile" : {
+ "rssi" : -10,
+ "advertisedNetworkSubtype" : "LTE/HSPA",
+ "carrierName" : "T-Mobile",
+ "rsrq" : -30,
+ "rsrp" : -30,
+ "advertisedNetworkGen" : "2g, 3g, 4g, 5g",
+ "rscp" : -30,
+ "networkGen" : "2g, 3g, 4g, 5g",
+ "networkSubtype" : "LTE/HSPA",
+ "sinr" : 20
+ },
"createdAt" : "2022-05-26T23:37:16Z",
"numberOfClients" : 3,
"licenseType" : "essentials",
@@ -376,11 +392,27 @@ public void enableEndpointAgentRequestAndResponseDeserializationTest()
"title" : "title"
}
},
+ "batteryMetrics" : {
+ "batteryLevel" : "medium",
+ "batteryLevelNormalizedPercent" : 0.3
+ },
"publicIP" : "88.45.2.123",
"tcpDriverAvailable" : true,
"platform" : "mac",
"manufacturer" : "Apple, Inc.",
"targetVersion" : "0.123.4",
+ "cellularProfile" : {
+ "rssi" : -10,
+ "advertisedNetworkSubtype" : "LTE/HSPA",
+ "carrierName" : "T-Mobile",
+ "rsrq" : -30,
+ "rsrp" : -30,
+ "advertisedNetworkGen" : "2g, 3g, 4g, 5g",
+ "rscp" : -30,
+ "networkGen" : "2g, 3g, 4g, 5g",
+ "networkSubtype" : "LTE/HSPA",
+ "sinr" : 20
+ },
"createdAt" : "2022-05-26T23:37:16Z",
"numberOfClients" : 3,
"licenseType" : "essentials",
@@ -626,11 +658,27 @@ public void filterEndpointAgentsRequestAndResponseDeserializationTest()
"title" : "title"
}
},
+ "batteryMetrics" : {
+ "batteryLevel" : "medium",
+ "batteryLevelNormalizedPercent" : 0.3
+ },
"publicIP" : "88.45.2.123",
"tcpDriverAvailable" : true,
"platform" : "mac",
"manufacturer" : "Apple, Inc.",
"targetVersion" : "0.123.4",
+ "cellularProfile" : {
+ "rssi" : -10,
+ "advertisedNetworkSubtype" : "LTE/HSPA",
+ "carrierName" : "T-Mobile",
+ "rsrq" : -30,
+ "rsrp" : -30,
+ "advertisedNetworkGen" : "2g, 3g, 4g, 5g",
+ "rscp" : -30,
+ "networkGen" : "2g, 3g, 4g, 5g",
+ "networkSubtype" : "LTE/HSPA",
+ "sinr" : 20
+ },
"createdAt" : "2022-05-26T23:37:16Z",
"numberOfClients" : 3,
"licenseType" : "essentials",
@@ -785,11 +833,27 @@ public void filterEndpointAgentsRequestAndResponseDeserializationTest()
"title" : "title"
}
},
+ "batteryMetrics" : {
+ "batteryLevel" : "medium",
+ "batteryLevelNormalizedPercent" : 0.3
+ },
"publicIP" : "88.45.2.123",
"tcpDriverAvailable" : true,
"platform" : "mac",
"manufacturer" : "Apple, Inc.",
"targetVersion" : "0.123.4",
+ "cellularProfile" : {
+ "rssi" : -10,
+ "advertisedNetworkSubtype" : "LTE/HSPA",
+ "carrierName" : "T-Mobile",
+ "rsrq" : -30,
+ "rsrp" : -30,
+ "advertisedNetworkGen" : "2g, 3g, 4g, 5g",
+ "rscp" : -30,
+ "networkGen" : "2g, 3g, 4g, 5g",
+ "networkSubtype" : "LTE/HSPA",
+ "sinr" : 20
+ },
"createdAt" : "2022-05-26T23:37:16Z",
"numberOfClients" : 3,
"licenseType" : "essentials",
@@ -982,11 +1046,27 @@ public void getEndpointAgentRequestAndResponseDeserializationTest()
"title" : "title"
}
},
+ "batteryMetrics" : {
+ "batteryLevel" : "medium",
+ "batteryLevelNormalizedPercent" : 0.3
+ },
"publicIP" : "88.45.2.123",
"tcpDriverAvailable" : true,
"platform" : "mac",
"manufacturer" : "Apple, Inc.",
"targetVersion" : "0.123.4",
+ "cellularProfile" : {
+ "rssi" : -10,
+ "advertisedNetworkSubtype" : "LTE/HSPA",
+ "carrierName" : "T-Mobile",
+ "rsrq" : -30,
+ "rsrp" : -30,
+ "advertisedNetworkGen" : "2g, 3g, 4g, 5g",
+ "rscp" : -30,
+ "networkGen" : "2g, 3g, 4g, 5g",
+ "networkSubtype" : "LTE/HSPA",
+ "sinr" : 20
+ },
"createdAt" : "2022-05-26T23:37:16Z",
"numberOfClients" : 3,
"licenseType" : "essentials",
@@ -1200,11 +1280,27 @@ public void getEndpointAgentsRequestAndResponseDeserializationTest()
"title" : "title"
}
},
+ "batteryMetrics" : {
+ "batteryLevel" : "medium",
+ "batteryLevelNormalizedPercent" : 0.3
+ },
"publicIP" : "88.45.2.123",
"tcpDriverAvailable" : true,
"platform" : "mac",
"manufacturer" : "Apple, Inc.",
"targetVersion" : "0.123.4",
+ "cellularProfile" : {
+ "rssi" : -10,
+ "advertisedNetworkSubtype" : "LTE/HSPA",
+ "carrierName" : "T-Mobile",
+ "rsrq" : -30,
+ "rsrp" : -30,
+ "advertisedNetworkGen" : "2g, 3g, 4g, 5g",
+ "rscp" : -30,
+ "networkGen" : "2g, 3g, 4g, 5g",
+ "networkSubtype" : "LTE/HSPA",
+ "sinr" : 20
+ },
"createdAt" : "2022-05-26T23:37:16Z",
"numberOfClients" : 3,
"licenseType" : "essentials",
@@ -1359,11 +1455,27 @@ public void getEndpointAgentsRequestAndResponseDeserializationTest()
"title" : "title"
}
},
+ "batteryMetrics" : {
+ "batteryLevel" : "medium",
+ "batteryLevelNormalizedPercent" : 0.3
+ },
"publicIP" : "88.45.2.123",
"tcpDriverAvailable" : true,
"platform" : "mac",
"manufacturer" : "Apple, Inc.",
"targetVersion" : "0.123.4",
+ "cellularProfile" : {
+ "rssi" : -10,
+ "advertisedNetworkSubtype" : "LTE/HSPA",
+ "carrierName" : "T-Mobile",
+ "rsrq" : -30,
+ "rsrp" : -30,
+ "advertisedNetworkGen" : "2g, 3g, 4g, 5g",
+ "rscp" : -30,
+ "networkGen" : "2g, 3g, 4g, 5g",
+ "networkSubtype" : "LTE/HSPA",
+ "sinr" : 20
+ },
"createdAt" : "2022-05-26T23:37:16Z",
"numberOfClients" : 3,
"licenseType" : "essentials",
@@ -1612,11 +1724,27 @@ public void updateEndpointAgentRequestAndResponseDeserializationTest()
"title" : "title"
}
},
+ "batteryMetrics" : {
+ "batteryLevel" : "medium",
+ "batteryLevelNormalizedPercent" : 0.3
+ },
"publicIP" : "88.45.2.123",
"tcpDriverAvailable" : true,
"platform" : "mac",
"manufacturer" : "Apple, Inc.",
"targetVersion" : "0.123.4",
+ "cellularProfile" : {
+ "rssi" : -10,
+ "advertisedNetworkSubtype" : "LTE/HSPA",
+ "carrierName" : "T-Mobile",
+ "rsrq" : -30,
+ "rsrp" : -30,
+ "advertisedNetworkGen" : "2g, 3g, 4g, 5g",
+ "rscp" : -30,
+ "networkGen" : "2g, 3g, 4g, 5g",
+ "networkSubtype" : "LTE/HSPA",
+ "sinr" : 20
+ },
"createdAt" : "2022-05-26T23:37:16Z",
"numberOfClients" : 3,
"licenseType" : "essentials",
diff --git a/endpoint-instant-tests/README.md b/endpoint-instant-tests/README.md
index db9ed8cfc..87026aef9 100644
--- a/endpoint-instant-tests/README.md
+++ b/endpoint-instant-tests/README.md
@@ -2,7 +2,7 @@
Endpoint Instant Scheduled Tests API
-- API version: 7.0.75
+- API version: 7.0.78
You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data.
diff --git a/endpoint-labels/README.md b/endpoint-labels/README.md
index 8a2a35448..4e76ceef9 100644
--- a/endpoint-labels/README.md
+++ b/endpoint-labels/README.md
@@ -2,7 +2,7 @@
Endpoint Agent Labels API
-- API version: 7.0.75
+- API version: 7.0.78
Manage labels applied to endpoint agents using this API.
diff --git a/endpoint-test-results/.openapi-generator/FILES b/endpoint-test-results/.openapi-generator/FILES
index 5466957aa..988aed59b 100644
--- a/endpoint-test-results/.openapi-generator/FILES
+++ b/endpoint-test-results/.openapi-generator/FILES
@@ -15,6 +15,9 @@ src/main/java/com/thousandeyes/sdk/endpoint/tests/results/RealUserEndpointTestRe
src/main/java/com/thousandeyes/sdk/endpoint/tests/results/model/ApplicationMetrics.java
src/main/java/com/thousandeyes/sdk/endpoint/tests/results/model/ApplicationScoreQuality.java
src/main/java/com/thousandeyes/sdk/endpoint/tests/results/model/AsnDetails.java
+src/main/java/com/thousandeyes/sdk/endpoint/tests/results/model/BatteryLevel.java
+src/main/java/com/thousandeyes/sdk/endpoint/tests/results/model/BatteryMetrics.java
+src/main/java/com/thousandeyes/sdk/endpoint/tests/results/model/CellularProfile.java
src/main/java/com/thousandeyes/sdk/endpoint/tests/results/model/ConditionalOperator.java
src/main/java/com/thousandeyes/sdk/endpoint/tests/results/model/CpuUtilization.java
src/main/java/com/thousandeyes/sdk/endpoint/tests/results/model/DynamicBaseEndpointTestResult.java
diff --git a/endpoint-test-results/README.md b/endpoint-test-results/README.md
index 6e2ed9c77..cecac2a27 100644
--- a/endpoint-test-results/README.md
+++ b/endpoint-test-results/README.md
@@ -2,7 +2,7 @@
Endpoint Test Results API
-- API version: 7.0.75
+- API version: 7.0.78
Retrieve results for scheduled and dynamic tests on endpoint agents.
diff --git a/endpoint-test-results/src/main/java/com/thousandeyes/sdk/endpoint/tests/results/model/BatteryLevel.java b/endpoint-test-results/src/main/java/com/thousandeyes/sdk/endpoint/tests/results/model/BatteryLevel.java
new file mode 100644
index 000000000..eba3bab13
--- /dev/null
+++ b/endpoint-test-results/src/main/java/com/thousandeyes/sdk/endpoint/tests/results/model/BatteryLevel.java
@@ -0,0 +1,64 @@
+/*
+ * Endpoint Test Results API
+ * Retrieve results for scheduled and dynamic tests on endpoint agents.
+ *
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package com.thousandeyes.sdk.endpoint.tests.results.model;
+
+import java.util.Objects;
+import java.util.Map;
+import java.util.HashMap;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+/**
+ * Battery level indicator.
+ */
+public enum BatteryLevel {
+
+ HIGH("high"),
+
+ MEDIUM("medium"),
+
+ LOW("low"),
+
+ UNKNOWN("unknown");
+
+ private String value;
+
+ BatteryLevel(String value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ @JsonCreator
+ public static BatteryLevel fromValue(String value) {
+ for (BatteryLevel b : BatteryLevel.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ return UNKNOWN;
+ }
+
+}
+
diff --git a/endpoint-test-results/src/main/java/com/thousandeyes/sdk/endpoint/tests/results/model/BatteryMetrics.java b/endpoint-test-results/src/main/java/com/thousandeyes/sdk/endpoint/tests/results/model/BatteryMetrics.java
new file mode 100644
index 000000000..37bb29401
--- /dev/null
+++ b/endpoint-test-results/src/main/java/com/thousandeyes/sdk/endpoint/tests/results/model/BatteryMetrics.java
@@ -0,0 +1,139 @@
+/*
+ * Endpoint Test Results API
+ * Retrieve results for scheduled and dynamic tests on endpoint agents.
+ *
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package com.thousandeyes.sdk.endpoint.tests.results.model;
+
+import java.util.Objects;
+import java.util.Map;
+import java.util.HashMap;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.fasterxml.jackson.annotation.JsonValue;
+import com.thousandeyes.sdk.endpoint.tests.results.model.BatteryLevel;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+
+
+/**
+ * Battery metrics for the endpoint agent.
+ */
+@JsonPropertyOrder({
+ BatteryMetrics.JSON_PROPERTY_BATTERY_LEVEL,
+ BatteryMetrics.JSON_PROPERTY_BATTERY_LEVEL_NORMALIZED_PERCENT
+})
+@jakarta.annotation.Generated(value = "com.thousandeyes.api.codegen.ThousandeyesJavaGenerator")
+public class BatteryMetrics {
+ public static final String JSON_PROPERTY_BATTERY_LEVEL = "batteryLevel";
+ private BatteryLevel batteryLevel;
+
+ public static final String JSON_PROPERTY_BATTERY_LEVEL_NORMALIZED_PERCENT = "batteryLevelNormalizedPercent";
+ private Double batteryLevelNormalizedPercent;
+
+ public BatteryMetrics() {
+ }
+
+ public BatteryMetrics batteryLevel(BatteryLevel batteryLevel) {
+ this.batteryLevel = batteryLevel;
+ return this;
+ }
+
+ /**
+ * Get batteryLevel
+ * @return batteryLevel
+ **/
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_BATTERY_LEVEL)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+ public BatteryLevel getBatteryLevel() {
+ return batteryLevel;
+ }
+
+
+ @JsonProperty(JSON_PROPERTY_BATTERY_LEVEL)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setBatteryLevel(BatteryLevel batteryLevel) {
+ this.batteryLevel = batteryLevel;
+ }
+
+
+ public BatteryMetrics batteryLevelNormalizedPercent(Double batteryLevelNormalizedPercent) {
+ this.batteryLevelNormalizedPercent = batteryLevelNormalizedPercent;
+ return this;
+ }
+
+ /**
+ * Battery level as a normalized percentage (0-1).
+ * minimum: 0
+ * maximum: 1
+ * @return batteryLevelNormalizedPercent
+ **/
+ @jakarta.annotation.Nonnull
+ @JsonProperty(JSON_PROPERTY_BATTERY_LEVEL_NORMALIZED_PERCENT)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+
+ public Double getBatteryLevelNormalizedPercent() {
+ return batteryLevelNormalizedPercent;
+ }
+
+
+ @JsonProperty(JSON_PROPERTY_BATTERY_LEVEL_NORMALIZED_PERCENT)
+ @JsonInclude(value = JsonInclude.Include.ALWAYS)
+ public void setBatteryLevelNormalizedPercent(Double batteryLevelNormalizedPercent) {
+ this.batteryLevelNormalizedPercent = batteryLevelNormalizedPercent;
+ }
+
+
+ /**
+ * Return true if this BatteryMetrics object is equal to o.
+ */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ BatteryMetrics batteryMetrics = (BatteryMetrics) o;
+ return Objects.equals(this.batteryLevel, batteryMetrics.batteryLevel) &&
+ Objects.equals(this.batteryLevelNormalizedPercent, batteryMetrics.batteryLevelNormalizedPercent);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(batteryLevel, batteryLevelNormalizedPercent);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class BatteryMetrics {\n");
+ sb.append(" batteryLevel: ").append(toIndentedString(batteryLevel)).append("\n");
+ sb.append(" batteryLevelNormalizedPercent: ").append(toIndentedString(batteryLevelNormalizedPercent)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/endpoint-test-results/src/main/java/com/thousandeyes/sdk/endpoint/tests/results/model/CellularProfile.java b/endpoint-test-results/src/main/java/com/thousandeyes/sdk/endpoint/tests/results/model/CellularProfile.java
new file mode 100644
index 000000000..759508ee6
--- /dev/null
+++ b/endpoint-test-results/src/main/java/com/thousandeyes/sdk/endpoint/tests/results/model/CellularProfile.java
@@ -0,0 +1,384 @@
+/*
+ * Endpoint Test Results API
+ * Retrieve results for scheduled and dynamic tests on endpoint agents.
+ *
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package com.thousandeyes.sdk.endpoint.tests.results.model;
+
+import java.util.Objects;
+import java.util.Map;
+import java.util.HashMap;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonTypeName;
+import com.fasterxml.jackson.annotation.JsonValue;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+
+
+/**
+ * Cellular network profile information for a mobile endpoint agent.
+ */
+@JsonPropertyOrder({
+ CellularProfile.JSON_PROPERTY_CARRIER_NAME,
+ CellularProfile.JSON_PROPERTY_NETWORK_GEN,
+ CellularProfile.JSON_PROPERTY_NETWORK_SUBTYPE,
+ CellularProfile.JSON_PROPERTY_ADVERTISED_NETWORK_GEN,
+ CellularProfile.JSON_PROPERTY_ADVERTISED_NETWORK_SUBTYPE,
+ CellularProfile.JSON_PROPERTY_RSSI,
+ CellularProfile.JSON_PROPERTY_RSRP,
+ CellularProfile.JSON_PROPERTY_RSCP,
+ CellularProfile.JSON_PROPERTY_RSRQ,
+ CellularProfile.JSON_PROPERTY_SINR
+})
+@jakarta.annotation.Generated(value = "com.thousandeyes.api.codegen.ThousandeyesJavaGenerator")
+public class CellularProfile {
+ public static final String JSON_PROPERTY_CARRIER_NAME = "carrierName";
+ private String carrierName;
+
+ public static final String JSON_PROPERTY_NETWORK_GEN = "networkGen";
+ private String networkGen;
+
+ public static final String JSON_PROPERTY_NETWORK_SUBTYPE = "networkSubtype";
+ private String networkSubtype;
+
+ public static final String JSON_PROPERTY_ADVERTISED_NETWORK_GEN = "advertisedNetworkGen";
+ private String advertisedNetworkGen;
+
+ public static final String JSON_PROPERTY_ADVERTISED_NETWORK_SUBTYPE = "advertisedNetworkSubtype";
+ private String advertisedNetworkSubtype;
+
+ public static final String JSON_PROPERTY_RSSI = "rssi";
+ private Double rssi;
+
+ public static final String JSON_PROPERTY_RSRP = "rsrp";
+ private Double rsrp;
+
+ public static final String JSON_PROPERTY_RSCP = "rscp";
+ private Double rscp;
+
+ public static final String JSON_PROPERTY_RSRQ = "rsrq";
+ private Double rsrq;
+
+ public static final String JSON_PROPERTY_SINR = "sinr";
+ private Double sinr;
+
+ public CellularProfile() {
+ }
+
+ public CellularProfile carrierName(String carrierName) {
+ this.carrierName = carrierName;
+ return this;
+ }
+
+ /**
+ * Carrier name
+ * @return carrierName
+ **/
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_CARRIER_NAME)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public String getCarrierName() {
+ return carrierName;
+ }
+
+
+ @JsonProperty(JSON_PROPERTY_CARRIER_NAME)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setCarrierName(String carrierName) {
+ this.carrierName = carrierName;
+ }
+
+
+ public CellularProfile networkGen(String networkGen) {
+ this.networkGen = networkGen;
+ return this;
+ }
+
+ /**
+ * Cellular network generation.
+ * @return networkGen
+ **/
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_NETWORK_GEN)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public String getNetworkGen() {
+ return networkGen;
+ }
+
+
+ @JsonProperty(JSON_PROPERTY_NETWORK_GEN)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setNetworkGen(String networkGen) {
+ this.networkGen = networkGen;
+ }
+
+
+ public CellularProfile networkSubtype(String networkSubtype) {
+ this.networkSubtype = networkSubtype;
+ return this;
+ }
+
+ /**
+ * A real network subtype. It may be different from an advertised network type.
+ * @return networkSubtype
+ **/
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_NETWORK_SUBTYPE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public String getNetworkSubtype() {
+ return networkSubtype;
+ }
+
+
+ @JsonProperty(JSON_PROPERTY_NETWORK_SUBTYPE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setNetworkSubtype(String networkSubtype) {
+ this.networkSubtype = networkSubtype;
+ }
+
+
+ public CellularProfile advertisedNetworkGen(String advertisedNetworkGen) {
+ this.advertisedNetworkGen = advertisedNetworkGen;
+ return this;
+ }
+
+ /**
+ * Cellular network generation.
+ * @return advertisedNetworkGen
+ **/
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_ADVERTISED_NETWORK_GEN)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public String getAdvertisedNetworkGen() {
+ return advertisedNetworkGen;
+ }
+
+
+ @JsonProperty(JSON_PROPERTY_ADVERTISED_NETWORK_GEN)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setAdvertisedNetworkGen(String advertisedNetworkGen) {
+ this.advertisedNetworkGen = advertisedNetworkGen;
+ }
+
+
+ public CellularProfile advertisedNetworkSubtype(String advertisedNetworkSubtype) {
+ this.advertisedNetworkSubtype = advertisedNetworkSubtype;
+ return this;
+ }
+
+ /**
+ * Advertised Network subtype
+ * @return advertisedNetworkSubtype
+ **/
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_ADVERTISED_NETWORK_SUBTYPE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public String getAdvertisedNetworkSubtype() {
+ return advertisedNetworkSubtype;
+ }
+
+
+ @JsonProperty(JSON_PROPERTY_ADVERTISED_NETWORK_SUBTYPE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setAdvertisedNetworkSubtype(String advertisedNetworkSubtype) {
+ this.advertisedNetworkSubtype = advertisedNetworkSubtype;
+ }
+
+
+ public CellularProfile rssi(Double rssi) {
+ this.rssi = rssi;
+ return this;
+ }
+
+ /**
+ * Received Signal Strength Indicator in dBm. Values are always negative.
+ * @return rssi
+ **/
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_RSSI)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public Double getRssi() {
+ return rssi;
+ }
+
+
+ @JsonProperty(JSON_PROPERTY_RSSI)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setRssi(Double rssi) {
+ this.rssi = rssi;
+ }
+
+
+ public CellularProfile rsrp(Double rsrp) {
+ this.rsrp = rsrp;
+ return this;
+ }
+
+ /**
+ * Reference Signal Received Power in dBm. Values are always negative.
+ * @return rsrp
+ **/
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_RSRP)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public Double getRsrp() {
+ return rsrp;
+ }
+
+
+ @JsonProperty(JSON_PROPERTY_RSRP)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setRsrp(Double rsrp) {
+ this.rsrp = rsrp;
+ }
+
+
+ public CellularProfile rscp(Double rscp) {
+ this.rscp = rscp;
+ return this;
+ }
+
+ /**
+ * Received Signal Code Power in dBm. Values are always negative or zero.
+ * @return rscp
+ **/
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_RSCP)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public Double getRscp() {
+ return rscp;
+ }
+
+
+ @JsonProperty(JSON_PROPERTY_RSCP)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setRscp(Double rscp) {
+ this.rscp = rscp;
+ }
+
+
+ public CellularProfile rsrq(Double rsrq) {
+ this.rsrq = rsrq;
+ return this;
+ }
+
+ /**
+ * Reference Signal Received Quality in dBm. Values are always negative.
+ * @return rsrq
+ **/
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_RSRQ)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public Double getRsrq() {
+ return rsrq;
+ }
+
+
+ @JsonProperty(JSON_PROPERTY_RSRQ)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setRsrq(Double rsrq) {
+ this.rsrq = rsrq;
+ }
+
+
+ public CellularProfile sinr(Double sinr) {
+ this.sinr = sinr;
+ return this;
+ }
+
+ /**
+ * Signal to Interference and Noise Ratio in dBm. It can be negative or positive.
+ * @return sinr
+ **/
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_SINR)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public Double getSinr() {
+ return sinr;
+ }
+
+
+ @JsonProperty(JSON_PROPERTY_SINR)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setSinr(Double sinr) {
+ this.sinr = sinr;
+ }
+
+
+ /**
+ * Return true if this CellularProfile object is equal to o.
+ */
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ CellularProfile cellularProfile = (CellularProfile) o;
+ return Objects.equals(this.carrierName, cellularProfile.carrierName) &&
+ Objects.equals(this.networkGen, cellularProfile.networkGen) &&
+ Objects.equals(this.networkSubtype, cellularProfile.networkSubtype) &&
+ Objects.equals(this.advertisedNetworkGen, cellularProfile.advertisedNetworkGen) &&
+ Objects.equals(this.advertisedNetworkSubtype, cellularProfile.advertisedNetworkSubtype) &&
+ Objects.equals(this.rssi, cellularProfile.rssi) &&
+ Objects.equals(this.rsrp, cellularProfile.rsrp) &&
+ Objects.equals(this.rscp, cellularProfile.rscp) &&
+ Objects.equals(this.rsrq, cellularProfile.rsrq) &&
+ Objects.equals(this.sinr, cellularProfile.sinr);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(carrierName, networkGen, networkSubtype, advertisedNetworkGen, advertisedNetworkSubtype, rssi, rsrp, rscp, rsrq, sinr);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class CellularProfile {\n");
+ sb.append(" carrierName: ").append(toIndentedString(carrierName)).append("\n");
+ sb.append(" networkGen: ").append(toIndentedString(networkGen)).append("\n");
+ sb.append(" networkSubtype: ").append(toIndentedString(networkSubtype)).append("\n");
+ sb.append(" advertisedNetworkGen: ").append(toIndentedString(advertisedNetworkGen)).append("\n");
+ sb.append(" advertisedNetworkSubtype: ").append(toIndentedString(advertisedNetworkSubtype)).append("\n");
+ sb.append(" rssi: ").append(toIndentedString(rssi)).append("\n");
+ sb.append(" rsrp: ").append(toIndentedString(rsrp)).append("\n");
+ sb.append(" rscp: ").append(toIndentedString(rscp)).append("\n");
+ sb.append(" rsrq: ").append(toIndentedString(rsrq)).append("\n");
+ sb.append(" sinr: ").append(toIndentedString(sinr)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
+
diff --git a/endpoint-test-results/src/main/java/com/thousandeyes/sdk/endpoint/tests/results/model/EndpointTestResult.java b/endpoint-test-results/src/main/java/com/thousandeyes/sdk/endpoint/tests/results/model/EndpointTestResult.java
index 877f17898..9d75369d0 100644
--- a/endpoint-test-results/src/main/java/com/thousandeyes/sdk/endpoint/tests/results/model/EndpointTestResult.java
+++ b/endpoint-test-results/src/main/java/com/thousandeyes/sdk/endpoint/tests/results/model/EndpointTestResult.java
@@ -20,7 +20,10 @@
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonTypeName;
import com.fasterxml.jackson.annotation.JsonValue;
+import com.thousandeyes.sdk.endpoint.tests.results.model.BatteryMetrics;
+import com.thousandeyes.sdk.endpoint.tests.results.model.CellularProfile;
import com.thousandeyes.sdk.endpoint.tests.results.model.NetworkProfile;
+import com.thousandeyes.sdk.endpoint.tests.results.model.Platform;
import com.thousandeyes.sdk.endpoint.tests.results.model.SystemMetrics;
import com.thousandeyes.sdk.endpoint.tests.results.model.TargetProfile;
import com.thousandeyes.sdk.endpoint.tests.results.model.UserProfile;
@@ -42,7 +45,10 @@
EndpointTestResult.JSON_PROPERTY_SYSTEM_METRICS,
EndpointTestResult.JSON_PROPERTY_ORIGINAL_TARGET_PROFILE,
EndpointTestResult.JSON_PROPERTY_USER_PROFILE,
- EndpointTestResult.JSON_PROPERTY_VPN_PROFILE
+ EndpointTestResult.JSON_PROPERTY_VPN_PROFILE,
+ EndpointTestResult.JSON_PROPERTY_BATTERY_METRICS,
+ EndpointTestResult.JSON_PROPERTY_CELLULAR_PROFILE,
+ EndpointTestResult.JSON_PROPERTY_PLATFORM
})
@jakarta.annotation.Generated(value = "com.thousandeyes.api.codegen.ThousandeyesJavaGenerator")
public class EndpointTestResult {
@@ -76,6 +82,15 @@ public class EndpointTestResult {
public static final String JSON_PROPERTY_VPN_PROFILE = "vpnProfile";
private VpnProfile vpnProfile;
+ public static final String JSON_PROPERTY_BATTERY_METRICS = "batteryMetrics";
+ private BatteryMetrics batteryMetrics;
+
+ public static final String JSON_PROPERTY_CELLULAR_PROFILE = "cellularProfile";
+ private CellularProfile cellularProfile;
+
+ public static final String JSON_PROPERTY_PLATFORM = "platform";
+ private Platform platform;
+
public EndpointTestResult() {
}
@@ -303,6 +318,81 @@ public void setVpnProfile(VpnProfile vpnProfile) {
}
+ public EndpointTestResult batteryMetrics(BatteryMetrics batteryMetrics) {
+ this.batteryMetrics = batteryMetrics;
+ return this;
+ }
+
+ /**
+ * Get batteryMetrics
+ * @return batteryMetrics
+ **/
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_BATTERY_METRICS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public BatteryMetrics getBatteryMetrics() {
+ return batteryMetrics;
+ }
+
+
+ @JsonProperty(JSON_PROPERTY_BATTERY_METRICS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setBatteryMetrics(BatteryMetrics batteryMetrics) {
+ this.batteryMetrics = batteryMetrics;
+ }
+
+
+ public EndpointTestResult cellularProfile(CellularProfile cellularProfile) {
+ this.cellularProfile = cellularProfile;
+ return this;
+ }
+
+ /**
+ * Get cellularProfile
+ * @return cellularProfile
+ **/
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_CELLULAR_PROFILE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public CellularProfile getCellularProfile() {
+ return cellularProfile;
+ }
+
+
+ @JsonProperty(JSON_PROPERTY_CELLULAR_PROFILE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setCellularProfile(CellularProfile cellularProfile) {
+ this.cellularProfile = cellularProfile;
+ }
+
+
+ public EndpointTestResult platform(Platform platform) {
+ this.platform = platform;
+ return this;
+ }
+
+ /**
+ * Get platform
+ * @return platform
+ **/
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_PLATFORM)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public Platform getPlatform() {
+ return platform;
+ }
+
+
+ @JsonProperty(JSON_PROPERTY_PLATFORM)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setPlatform(Platform platform) {
+ this.platform = platform;
+ }
+
+
/**
* Return true if this EndpointTestResult object is equal to o.
*/
@@ -324,12 +414,15 @@ public boolean equals(Object o) {
Objects.equals(this.systemMetrics, endpointTestResult.systemMetrics) &&
Objects.equals(this.originalTargetProfile, endpointTestResult.originalTargetProfile) &&
Objects.equals(this.userProfile, endpointTestResult.userProfile) &&
- Objects.equals(this.vpnProfile, endpointTestResult.vpnProfile);
+ Objects.equals(this.vpnProfile, endpointTestResult.vpnProfile) &&
+ Objects.equals(this.batteryMetrics, endpointTestResult.batteryMetrics) &&
+ Objects.equals(this.cellularProfile, endpointTestResult.cellularProfile) &&
+ Objects.equals(this.platform, endpointTestResult.platform);
}
@Override
public int hashCode() {
- return Objects.hash(aid, testId, agentId, roundId, serverIp, networkProfile, systemMetrics, originalTargetProfile, userProfile, vpnProfile);
+ return Objects.hash(aid, testId, agentId, roundId, serverIp, networkProfile, systemMetrics, originalTargetProfile, userProfile, vpnProfile, batteryMetrics, cellularProfile, platform);
}
@Override
@@ -346,6 +439,9 @@ public String toString() {
sb.append(" originalTargetProfile: ").append(toIndentedString(originalTargetProfile)).append("\n");
sb.append(" userProfile: ").append(toIndentedString(userProfile)).append("\n");
sb.append(" vpnProfile: ").append(toIndentedString(vpnProfile)).append("\n");
+ sb.append(" batteryMetrics: ").append(toIndentedString(batteryMetrics)).append("\n");
+ sb.append(" cellularProfile: ").append(toIndentedString(cellularProfile)).append("\n");
+ sb.append(" platform: ").append(toIndentedString(platform)).append("\n");
sb.append("}");
return sb.toString();
}
diff --git a/endpoint-test-results/src/main/java/com/thousandeyes/sdk/endpoint/tests/results/model/HttpEndpointTestResult.java b/endpoint-test-results/src/main/java/com/thousandeyes/sdk/endpoint/tests/results/model/HttpEndpointTestResult.java
index 745ba94f6..f5056af57 100644
--- a/endpoint-test-results/src/main/java/com/thousandeyes/sdk/endpoint/tests/results/model/HttpEndpointTestResult.java
+++ b/endpoint-test-results/src/main/java/com/thousandeyes/sdk/endpoint/tests/results/model/HttpEndpointTestResult.java
@@ -20,10 +20,13 @@
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonTypeName;
import com.fasterxml.jackson.annotation.JsonValue;
+import com.thousandeyes.sdk.endpoint.tests.results.model.BatteryMetrics;
+import com.thousandeyes.sdk.endpoint.tests.results.model.CellularProfile;
import com.thousandeyes.sdk.endpoint.tests.results.model.EndpointHttpDataPointScore;
import com.thousandeyes.sdk.endpoint.tests.results.model.HttpEndpointTestResultHeaders;
import com.thousandeyes.sdk.endpoint.tests.results.model.HttpErrorType;
import com.thousandeyes.sdk.endpoint.tests.results.model.NetworkProfile;
+import com.thousandeyes.sdk.endpoint.tests.results.model.Platform;
import com.thousandeyes.sdk.endpoint.tests.results.model.SystemMetrics;
import com.thousandeyes.sdk.endpoint.tests.results.model.TargetProfile;
import com.thousandeyes.sdk.endpoint.tests.results.model.UserProfile;
@@ -46,6 +49,9 @@
HttpEndpointTestResult.JSON_PROPERTY_ORIGINAL_TARGET_PROFILE,
HttpEndpointTestResult.JSON_PROPERTY_USER_PROFILE,
HttpEndpointTestResult.JSON_PROPERTY_VPN_PROFILE,
+ HttpEndpointTestResult.JSON_PROPERTY_BATTERY_METRICS,
+ HttpEndpointTestResult.JSON_PROPERTY_CELLULAR_PROFILE,
+ HttpEndpointTestResult.JSON_PROPERTY_PLATFORM,
HttpEndpointTestResult.JSON_PROPERTY_SCORE,
HttpEndpointTestResult.JSON_PROPERTY_CONNECT_TIME,
HttpEndpointTestResult.JSON_PROPERTY_DNS_TIME,
@@ -95,6 +101,15 @@ public class HttpEndpointTestResult {
public static final String JSON_PROPERTY_VPN_PROFILE = "vpnProfile";
private VpnProfile vpnProfile;
+ public static final String JSON_PROPERTY_BATTERY_METRICS = "batteryMetrics";
+ private BatteryMetrics batteryMetrics;
+
+ public static final String JSON_PROPERTY_CELLULAR_PROFILE = "cellularProfile";
+ private CellularProfile cellularProfile;
+
+ public static final String JSON_PROPERTY_PLATFORM = "platform";
+ private Platform platform;
+
public static final String JSON_PROPERTY_SCORE = "score";
private EndpointHttpDataPointScore score;
@@ -396,6 +411,81 @@ public void setVpnProfile(VpnProfile vpnProfile) {
}
+ public HttpEndpointTestResult batteryMetrics(BatteryMetrics batteryMetrics) {
+ this.batteryMetrics = batteryMetrics;
+ return this;
+ }
+
+ /**
+ * Get batteryMetrics
+ * @return batteryMetrics
+ **/
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_BATTERY_METRICS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public BatteryMetrics getBatteryMetrics() {
+ return batteryMetrics;
+ }
+
+
+ @JsonProperty(JSON_PROPERTY_BATTERY_METRICS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setBatteryMetrics(BatteryMetrics batteryMetrics) {
+ this.batteryMetrics = batteryMetrics;
+ }
+
+
+ public HttpEndpointTestResult cellularProfile(CellularProfile cellularProfile) {
+ this.cellularProfile = cellularProfile;
+ return this;
+ }
+
+ /**
+ * Get cellularProfile
+ * @return cellularProfile
+ **/
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_CELLULAR_PROFILE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public CellularProfile getCellularProfile() {
+ return cellularProfile;
+ }
+
+
+ @JsonProperty(JSON_PROPERTY_CELLULAR_PROFILE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setCellularProfile(CellularProfile cellularProfile) {
+ this.cellularProfile = cellularProfile;
+ }
+
+
+ public HttpEndpointTestResult platform(Platform platform) {
+ this.platform = platform;
+ return this;
+ }
+
+ /**
+ * Get platform
+ * @return platform
+ **/
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_PLATFORM)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public Platform getPlatform() {
+ return platform;
+ }
+
+
+ @JsonProperty(JSON_PROPERTY_PLATFORM)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setPlatform(Platform platform) {
+ this.platform = platform;
+ }
+
+
public HttpEndpointTestResult score(EndpointHttpDataPointScore score) {
this.score = score;
return this;
@@ -688,6 +778,9 @@ public boolean equals(Object o) {
Objects.equals(this.originalTargetProfile, httpEndpointTestResult.originalTargetProfile) &&
Objects.equals(this.userProfile, httpEndpointTestResult.userProfile) &&
Objects.equals(this.vpnProfile, httpEndpointTestResult.vpnProfile) &&
+ Objects.equals(this.batteryMetrics, httpEndpointTestResult.batteryMetrics) &&
+ Objects.equals(this.cellularProfile, httpEndpointTestResult.cellularProfile) &&
+ Objects.equals(this.platform, httpEndpointTestResult.platform) &&
Objects.equals(this.score, httpEndpointTestResult.score) &&
Objects.equals(this.connectTime, httpEndpointTestResult.connectTime) &&
Objects.equals(this.dnsTime, httpEndpointTestResult.dnsTime) &&
@@ -708,7 +801,7 @@ public boolean equals(Object o) {
@Override
public int hashCode() {
- return Objects.hash(aid, testId, agentId, roundId, serverIp, networkProfile, systemMetrics, originalTargetProfile, userProfile, vpnProfile, score, connectTime, dnsTime, errorType, errorDetails, headers, numRedirects, receiveTime, redirectTime, responseCode, responseTime, sslTime, totalTime, waitTime, wireSize, throughput);
+ return Objects.hash(aid, testId, agentId, roundId, serverIp, networkProfile, systemMetrics, originalTargetProfile, userProfile, vpnProfile, batteryMetrics, cellularProfile, platform, score, connectTime, dnsTime, errorType, errorDetails, headers, numRedirects, receiveTime, redirectTime, responseCode, responseTime, sslTime, totalTime, waitTime, wireSize, throughput);
}
@Override
@@ -725,6 +818,9 @@ public String toString() {
sb.append(" originalTargetProfile: ").append(toIndentedString(originalTargetProfile)).append("\n");
sb.append(" userProfile: ").append(toIndentedString(userProfile)).append("\n");
sb.append(" vpnProfile: ").append(toIndentedString(vpnProfile)).append("\n");
+ sb.append(" batteryMetrics: ").append(toIndentedString(batteryMetrics)).append("\n");
+ sb.append(" cellularProfile: ").append(toIndentedString(cellularProfile)).append("\n");
+ sb.append(" platform: ").append(toIndentedString(platform)).append("\n");
sb.append(" score: ").append(toIndentedString(score)).append("\n");
sb.append(" connectTime: ").append(toIndentedString(connectTime)).append("\n");
sb.append(" dnsTime: ").append(toIndentedString(dnsTime)).append("\n");
diff --git a/endpoint-test-results/src/main/java/com/thousandeyes/sdk/endpoint/tests/results/model/LocalNetworkTopologyResult.java b/endpoint-test-results/src/main/java/com/thousandeyes/sdk/endpoint/tests/results/model/LocalNetworkTopologyResult.java
index b75f54d05..12d787c9f 100644
--- a/endpoint-test-results/src/main/java/com/thousandeyes/sdk/endpoint/tests/results/model/LocalNetworkTopologyResult.java
+++ b/endpoint-test-results/src/main/java/com/thousandeyes/sdk/endpoint/tests/results/model/LocalNetworkTopologyResult.java
@@ -20,6 +20,8 @@
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonTypeName;
import com.fasterxml.jackson.annotation.JsonValue;
+import com.thousandeyes.sdk.endpoint.tests.results.model.BatteryMetrics;
+import com.thousandeyes.sdk.endpoint.tests.results.model.CellularProfile;
import com.thousandeyes.sdk.endpoint.tests.results.model.EndpointProbeAgentScore;
import com.thousandeyes.sdk.endpoint.tests.results.model.EndpointProbeConnectionScore;
import com.thousandeyes.sdk.endpoint.tests.results.model.EndpointProbeGatewayScore;
@@ -28,6 +30,7 @@
import com.thousandeyes.sdk.endpoint.tests.results.model.NetworkPing;
import com.thousandeyes.sdk.endpoint.tests.results.model.NetworkProfile;
import com.thousandeyes.sdk.endpoint.tests.results.model.NetworkTopologyType;
+import com.thousandeyes.sdk.endpoint.tests.results.model.Platform;
import com.thousandeyes.sdk.endpoint.tests.results.model.RealUserEndpointTestCoordinates;
import com.thousandeyes.sdk.endpoint.tests.results.model.SystemMetricDetails;
import com.thousandeyes.sdk.endpoint.tests.results.model.SystemMetrics;
@@ -62,6 +65,9 @@
LocalNetworkTopologyResult.JSON_PROPERTY_PROXY_SCORE,
LocalNetworkTopologyResult.JSON_PROPERTY_CONNECTION_SCORE,
LocalNetworkTopologyResult.JSON_PROPERTY_AGENT_SCORE,
+ LocalNetworkTopologyResult.JSON_PROPERTY_BATTERY_METRICS,
+ LocalNetworkTopologyResult.JSON_PROPERTY_CELLULAR_PROFILE,
+ LocalNetworkTopologyResult.JSON_PROPERTY_PLATFORM,
LocalNetworkTopologyResult.JSON_PROPERTY_COORDINATES,
LocalNetworkTopologyResult.JSON_PROPERTY_NETWORK_PROFILE,
LocalNetworkTopologyResult.JSON_PROPERTY_ICMP_TRACEROUTE,
@@ -120,6 +126,15 @@ public class LocalNetworkTopologyResult {
public static final String JSON_PROPERTY_AGENT_SCORE = "agentScore";
private EndpointProbeAgentScore agentScore;
+ public static final String JSON_PROPERTY_BATTERY_METRICS = "batteryMetrics";
+ private BatteryMetrics batteryMetrics;
+
+ public static final String JSON_PROPERTY_CELLULAR_PROFILE = "cellularProfile";
+ private CellularProfile cellularProfile;
+
+ public static final String JSON_PROPERTY_PLATFORM = "platform";
+ private Platform platform;
+
public static final String JSON_PROPERTY_COORDINATES = "coordinates";
private RealUserEndpointTestCoordinates coordinates;
@@ -510,6 +525,81 @@ public void setAgentScore(EndpointProbeAgentScore agentScore) {
}
+ public LocalNetworkTopologyResult batteryMetrics(BatteryMetrics batteryMetrics) {
+ this.batteryMetrics = batteryMetrics;
+ return this;
+ }
+
+ /**
+ * Get batteryMetrics
+ * @return batteryMetrics
+ **/
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_BATTERY_METRICS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public BatteryMetrics getBatteryMetrics() {
+ return batteryMetrics;
+ }
+
+
+ @JsonProperty(JSON_PROPERTY_BATTERY_METRICS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setBatteryMetrics(BatteryMetrics batteryMetrics) {
+ this.batteryMetrics = batteryMetrics;
+ }
+
+
+ public LocalNetworkTopologyResult cellularProfile(CellularProfile cellularProfile) {
+ this.cellularProfile = cellularProfile;
+ return this;
+ }
+
+ /**
+ * Get cellularProfile
+ * @return cellularProfile
+ **/
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_CELLULAR_PROFILE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public CellularProfile getCellularProfile() {
+ return cellularProfile;
+ }
+
+
+ @JsonProperty(JSON_PROPERTY_CELLULAR_PROFILE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setCellularProfile(CellularProfile cellularProfile) {
+ this.cellularProfile = cellularProfile;
+ }
+
+
+ public LocalNetworkTopologyResult platform(Platform platform) {
+ this.platform = platform;
+ return this;
+ }
+
+ /**
+ * Get platform
+ * @return platform
+ **/
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_PLATFORM)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public Platform getPlatform() {
+ return platform;
+ }
+
+
+ @JsonProperty(JSON_PROPERTY_PLATFORM)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setPlatform(Platform platform) {
+ this.platform = platform;
+ }
+
+
public LocalNetworkTopologyResult coordinates(RealUserEndpointTestCoordinates coordinates) {
this.coordinates = coordinates;
return this;
@@ -647,6 +737,9 @@ public boolean equals(Object o) {
Objects.equals(this.proxyScore, localNetworkTopologyResult.proxyScore) &&
Objects.equals(this.connectionScore, localNetworkTopologyResult.connectionScore) &&
Objects.equals(this.agentScore, localNetworkTopologyResult.agentScore) &&
+ Objects.equals(this.batteryMetrics, localNetworkTopologyResult.batteryMetrics) &&
+ Objects.equals(this.cellularProfile, localNetworkTopologyResult.cellularProfile) &&
+ Objects.equals(this.platform, localNetworkTopologyResult.platform) &&
Objects.equals(this.coordinates, localNetworkTopologyResult.coordinates) &&
Objects.equals(this.networkProfile, localNetworkTopologyResult.networkProfile) &&
Objects.equals(this.icmpTraceroute, localNetworkTopologyResult.icmpTraceroute) &&
@@ -655,7 +748,7 @@ public boolean equals(Object o) {
@Override
public int hashCode() {
- return Objects.hash(agentId, date, networkTopologyId, roundId, target, targetPort, type, icmpPing, isIcmpBlocked, tcpConnect, systemMetrics, systemMetricDetails, vpnScore, gatewayScore, proxyScore, connectionScore, agentScore, coordinates, networkProfile, icmpTraceroute, icmpTraceroutes);
+ return Objects.hash(agentId, date, networkTopologyId, roundId, target, targetPort, type, icmpPing, isIcmpBlocked, tcpConnect, systemMetrics, systemMetricDetails, vpnScore, gatewayScore, proxyScore, connectionScore, agentScore, batteryMetrics, cellularProfile, platform, coordinates, networkProfile, icmpTraceroute, icmpTraceroutes);
}
@Override
@@ -679,6 +772,9 @@ public String toString() {
sb.append(" proxyScore: ").append(toIndentedString(proxyScore)).append("\n");
sb.append(" connectionScore: ").append(toIndentedString(connectionScore)).append("\n");
sb.append(" agentScore: ").append(toIndentedString(agentScore)).append("\n");
+ sb.append(" batteryMetrics: ").append(toIndentedString(batteryMetrics)).append("\n");
+ sb.append(" cellularProfile: ").append(toIndentedString(cellularProfile)).append("\n");
+ sb.append(" platform: ").append(toIndentedString(platform)).append("\n");
sb.append(" coordinates: ").append(toIndentedString(coordinates)).append("\n");
sb.append(" networkProfile: ").append(toIndentedString(networkProfile)).append("\n");
sb.append(" icmpTraceroute: ").append(toIndentedString(icmpTraceroute)).append("\n");
diff --git a/endpoint-test-results/src/main/java/com/thousandeyes/sdk/endpoint/tests/results/model/LocalNetworkTopologyResultBase.java b/endpoint-test-results/src/main/java/com/thousandeyes/sdk/endpoint/tests/results/model/LocalNetworkTopologyResultBase.java
index 91406bd7d..5bb9fddbc 100644
--- a/endpoint-test-results/src/main/java/com/thousandeyes/sdk/endpoint/tests/results/model/LocalNetworkTopologyResultBase.java
+++ b/endpoint-test-results/src/main/java/com/thousandeyes/sdk/endpoint/tests/results/model/LocalNetworkTopologyResultBase.java
@@ -20,6 +20,8 @@
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonTypeName;
import com.fasterxml.jackson.annotation.JsonValue;
+import com.thousandeyes.sdk.endpoint.tests.results.model.BatteryMetrics;
+import com.thousandeyes.sdk.endpoint.tests.results.model.CellularProfile;
import com.thousandeyes.sdk.endpoint.tests.results.model.EndpointProbeAgentScore;
import com.thousandeyes.sdk.endpoint.tests.results.model.EndpointProbeConnectionScore;
import com.thousandeyes.sdk.endpoint.tests.results.model.EndpointProbeGatewayScore;
@@ -27,6 +29,7 @@
import com.thousandeyes.sdk.endpoint.tests.results.model.EndpointProbeVpnScore;
import com.thousandeyes.sdk.endpoint.tests.results.model.NetworkPing;
import com.thousandeyes.sdk.endpoint.tests.results.model.NetworkTopologyType;
+import com.thousandeyes.sdk.endpoint.tests.results.model.Platform;
import com.thousandeyes.sdk.endpoint.tests.results.model.SystemMetricDetails;
import com.thousandeyes.sdk.endpoint.tests.results.model.SystemMetrics;
import com.thousandeyes.sdk.endpoint.tests.results.model.TcpConnect;
@@ -55,7 +58,10 @@
LocalNetworkTopologyResultBase.JSON_PROPERTY_GATEWAY_SCORE,
LocalNetworkTopologyResultBase.JSON_PROPERTY_PROXY_SCORE,
LocalNetworkTopologyResultBase.JSON_PROPERTY_CONNECTION_SCORE,
- LocalNetworkTopologyResultBase.JSON_PROPERTY_AGENT_SCORE
+ LocalNetworkTopologyResultBase.JSON_PROPERTY_AGENT_SCORE,
+ LocalNetworkTopologyResultBase.JSON_PROPERTY_BATTERY_METRICS,
+ LocalNetworkTopologyResultBase.JSON_PROPERTY_CELLULAR_PROFILE,
+ LocalNetworkTopologyResultBase.JSON_PROPERTY_PLATFORM
})
@jakarta.annotation.Generated(value = "com.thousandeyes.api.codegen.ThousandeyesJavaGenerator")
public class LocalNetworkTopologyResultBase {
@@ -110,6 +116,15 @@ public class LocalNetworkTopologyResultBase {
public static final String JSON_PROPERTY_AGENT_SCORE = "agentScore";
private EndpointProbeAgentScore agentScore;
+ public static final String JSON_PROPERTY_BATTERY_METRICS = "batteryMetrics";
+ private BatteryMetrics batteryMetrics;
+
+ public static final String JSON_PROPERTY_CELLULAR_PROFILE = "cellularProfile";
+ private CellularProfile cellularProfile;
+
+ public static final String JSON_PROPERTY_PLATFORM = "platform";
+ private Platform platform;
+
public LocalNetworkTopologyResultBase() {
}
@@ -488,6 +503,81 @@ public void setAgentScore(EndpointProbeAgentScore agentScore) {
}
+ public LocalNetworkTopologyResultBase batteryMetrics(BatteryMetrics batteryMetrics) {
+ this.batteryMetrics = batteryMetrics;
+ return this;
+ }
+
+ /**
+ * Get batteryMetrics
+ * @return batteryMetrics
+ **/
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_BATTERY_METRICS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public BatteryMetrics getBatteryMetrics() {
+ return batteryMetrics;
+ }
+
+
+ @JsonProperty(JSON_PROPERTY_BATTERY_METRICS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setBatteryMetrics(BatteryMetrics batteryMetrics) {
+ this.batteryMetrics = batteryMetrics;
+ }
+
+
+ public LocalNetworkTopologyResultBase cellularProfile(CellularProfile cellularProfile) {
+ this.cellularProfile = cellularProfile;
+ return this;
+ }
+
+ /**
+ * Get cellularProfile
+ * @return cellularProfile
+ **/
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_CELLULAR_PROFILE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public CellularProfile getCellularProfile() {
+ return cellularProfile;
+ }
+
+
+ @JsonProperty(JSON_PROPERTY_CELLULAR_PROFILE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setCellularProfile(CellularProfile cellularProfile) {
+ this.cellularProfile = cellularProfile;
+ }
+
+
+ public LocalNetworkTopologyResultBase platform(Platform platform) {
+ this.platform = platform;
+ return this;
+ }
+
+ /**
+ * Get platform
+ * @return platform
+ **/
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_PLATFORM)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public Platform getPlatform() {
+ return platform;
+ }
+
+
+ @JsonProperty(JSON_PROPERTY_PLATFORM)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setPlatform(Platform platform) {
+ this.platform = platform;
+ }
+
+
/**
* Return true if this LocalNetworkTopologyResultBase object is equal to o.
*/
@@ -516,12 +606,15 @@ public boolean equals(Object o) {
Objects.equals(this.gatewayScore, localNetworkTopologyResultBase.gatewayScore) &&
Objects.equals(this.proxyScore, localNetworkTopologyResultBase.proxyScore) &&
Objects.equals(this.connectionScore, localNetworkTopologyResultBase.connectionScore) &&
- Objects.equals(this.agentScore, localNetworkTopologyResultBase.agentScore);
+ Objects.equals(this.agentScore, localNetworkTopologyResultBase.agentScore) &&
+ Objects.equals(this.batteryMetrics, localNetworkTopologyResultBase.batteryMetrics) &&
+ Objects.equals(this.cellularProfile, localNetworkTopologyResultBase.cellularProfile) &&
+ Objects.equals(this.platform, localNetworkTopologyResultBase.platform);
}
@Override
public int hashCode() {
- return Objects.hash(agentId, date, networkTopologyId, roundId, target, targetPort, type, icmpPing, isIcmpBlocked, tcpConnect, systemMetrics, systemMetricDetails, vpnScore, gatewayScore, proxyScore, connectionScore, agentScore);
+ return Objects.hash(agentId, date, networkTopologyId, roundId, target, targetPort, type, icmpPing, isIcmpBlocked, tcpConnect, systemMetrics, systemMetricDetails, vpnScore, gatewayScore, proxyScore, connectionScore, agentScore, batteryMetrics, cellularProfile, platform);
}
@Override
@@ -545,6 +638,9 @@ public String toString() {
sb.append(" proxyScore: ").append(toIndentedString(proxyScore)).append("\n");
sb.append(" connectionScore: ").append(toIndentedString(connectionScore)).append("\n");
sb.append(" agentScore: ").append(toIndentedString(agentScore)).append("\n");
+ sb.append(" batteryMetrics: ").append(toIndentedString(batteryMetrics)).append("\n");
+ sb.append(" cellularProfile: ").append(toIndentedString(cellularProfile)).append("\n");
+ sb.append(" platform: ").append(toIndentedString(platform)).append("\n");
sb.append("}");
return sb.toString();
}
diff --git a/endpoint-test-results/src/main/java/com/thousandeyes/sdk/endpoint/tests/results/model/NetworkDynamicEndpointTestResult.java b/endpoint-test-results/src/main/java/com/thousandeyes/sdk/endpoint/tests/results/model/NetworkDynamicEndpointTestResult.java
index 5ce4850af..c5a494fa9 100644
--- a/endpoint-test-results/src/main/java/com/thousandeyes/sdk/endpoint/tests/results/model/NetworkDynamicEndpointTestResult.java
+++ b/endpoint-test-results/src/main/java/com/thousandeyes/sdk/endpoint/tests/results/model/NetworkDynamicEndpointTestResult.java
@@ -20,11 +20,14 @@
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonTypeName;
import com.fasterxml.jackson.annotation.JsonValue;
+import com.thousandeyes.sdk.endpoint.tests.results.model.BatteryMetrics;
+import com.thousandeyes.sdk.endpoint.tests.results.model.CellularProfile;
import com.thousandeyes.sdk.endpoint.tests.results.model.DynamicEndpointTestWebex;
import com.thousandeyes.sdk.endpoint.tests.results.model.EndpointPingDataPointScore;
import com.thousandeyes.sdk.endpoint.tests.results.model.EndpointTestResultProtocol;
import com.thousandeyes.sdk.endpoint.tests.results.model.EndpointZtaMetrics;
import com.thousandeyes.sdk.endpoint.tests.results.model.NetworkProfile;
+import com.thousandeyes.sdk.endpoint.tests.results.model.Platform;
import com.thousandeyes.sdk.endpoint.tests.results.model.SystemMetrics;
import com.thousandeyes.sdk.endpoint.tests.results.model.TargetProfile;
import com.thousandeyes.sdk.endpoint.tests.results.model.TestProbeModeResponse;
@@ -52,6 +55,9 @@
NetworkDynamicEndpointTestResult.JSON_PROPERTY_ORIGINAL_TARGET_PROFILE,
NetworkDynamicEndpointTestResult.JSON_PROPERTY_USER_PROFILE,
NetworkDynamicEndpointTestResult.JSON_PROPERTY_VPN_PROFILE,
+ NetworkDynamicEndpointTestResult.JSON_PROPERTY_BATTERY_METRICS,
+ NetworkDynamicEndpointTestResult.JSON_PROPERTY_CELLULAR_PROFILE,
+ NetworkDynamicEndpointTestResult.JSON_PROPERTY_PLATFORM,
NetworkDynamicEndpointTestResult.JSON_PROPERTY_AVG_LATENCY,
NetworkDynamicEndpointTestResult.JSON_PROPERTY_ERROR_DETAILS,
NetworkDynamicEndpointTestResult.JSON_PROPERTY_JITTER,
@@ -99,6 +105,15 @@ public class NetworkDynamicEndpointTestResult {
public static final String JSON_PROPERTY_VPN_PROFILE = "vpnProfile";
private VpnProfile vpnProfile;
+ public static final String JSON_PROPERTY_BATTERY_METRICS = "batteryMetrics";
+ private BatteryMetrics batteryMetrics;
+
+ public static final String JSON_PROPERTY_CELLULAR_PROFILE = "cellularProfile";
+ private CellularProfile cellularProfile;
+
+ public static final String JSON_PROPERTY_PLATFORM = "platform";
+ private Platform platform;
+
public static final String JSON_PROPERTY_AVG_LATENCY = "avgLatency";
private Double avgLatency;
@@ -382,6 +397,81 @@ public void setVpnProfile(VpnProfile vpnProfile) {
}
+ public NetworkDynamicEndpointTestResult batteryMetrics(BatteryMetrics batteryMetrics) {
+ this.batteryMetrics = batteryMetrics;
+ return this;
+ }
+
+ /**
+ * Get batteryMetrics
+ * @return batteryMetrics
+ **/
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_BATTERY_METRICS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public BatteryMetrics getBatteryMetrics() {
+ return batteryMetrics;
+ }
+
+
+ @JsonProperty(JSON_PROPERTY_BATTERY_METRICS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setBatteryMetrics(BatteryMetrics batteryMetrics) {
+ this.batteryMetrics = batteryMetrics;
+ }
+
+
+ public NetworkDynamicEndpointTestResult cellularProfile(CellularProfile cellularProfile) {
+ this.cellularProfile = cellularProfile;
+ return this;
+ }
+
+ /**
+ * Get cellularProfile
+ * @return cellularProfile
+ **/
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_CELLULAR_PROFILE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public CellularProfile getCellularProfile() {
+ return cellularProfile;
+ }
+
+
+ @JsonProperty(JSON_PROPERTY_CELLULAR_PROFILE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setCellularProfile(CellularProfile cellularProfile) {
+ this.cellularProfile = cellularProfile;
+ }
+
+
+ public NetworkDynamicEndpointTestResult platform(Platform platform) {
+ this.platform = platform;
+ return this;
+ }
+
+ /**
+ * Get platform
+ * @return platform
+ **/
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_PLATFORM)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public Platform getPlatform() {
+ return platform;
+ }
+
+
+ @JsonProperty(JSON_PROPERTY_PLATFORM)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setPlatform(Platform platform) {
+ this.platform = platform;
+ }
+
+
/**
* Average RTT for packets sent to destination.
* @return avgLatency
@@ -692,6 +782,9 @@ public boolean equals(Object o) {
Objects.equals(this.originalTargetProfile, networkDynamicEndpointTestResult.originalTargetProfile) &&
Objects.equals(this.userProfile, networkDynamicEndpointTestResult.userProfile) &&
Objects.equals(this.vpnProfile, networkDynamicEndpointTestResult.vpnProfile) &&
+ Objects.equals(this.batteryMetrics, networkDynamicEndpointTestResult.batteryMetrics) &&
+ Objects.equals(this.cellularProfile, networkDynamicEndpointTestResult.cellularProfile) &&
+ Objects.equals(this.platform, networkDynamicEndpointTestResult.platform) &&
Objects.equals(this.avgLatency, networkDynamicEndpointTestResult.avgLatency) &&
Objects.equals(this.errorDetails, networkDynamicEndpointTestResult.errorDetails) &&
Objects.equals(this.jitter, networkDynamicEndpointTestResult.jitter) &&
@@ -710,7 +803,7 @@ public boolean equals(Object o) {
@Override
public int hashCode() {
- return Objects.hash(aid, testId, agentId, roundId, serverIp, networkProfile, systemMetrics, originalTargetProfile, userProfile, vpnProfile, avgLatency, errorDetails, jitter, score, ztaMetrics, isIcmpBlocked, loss, maxLatency, minLatency, application, protocol, tcpProbeMode, udpProbeMode, webex);
+ return Objects.hash(aid, testId, agentId, roundId, serverIp, networkProfile, systemMetrics, originalTargetProfile, userProfile, vpnProfile, batteryMetrics, cellularProfile, platform, avgLatency, errorDetails, jitter, score, ztaMetrics, isIcmpBlocked, loss, maxLatency, minLatency, application, protocol, tcpProbeMode, udpProbeMode, webex);
}
@Override
@@ -727,6 +820,9 @@ public String toString() {
sb.append(" originalTargetProfile: ").append(toIndentedString(originalTargetProfile)).append("\n");
sb.append(" userProfile: ").append(toIndentedString(userProfile)).append("\n");
sb.append(" vpnProfile: ").append(toIndentedString(vpnProfile)).append("\n");
+ sb.append(" batteryMetrics: ").append(toIndentedString(batteryMetrics)).append("\n");
+ sb.append(" cellularProfile: ").append(toIndentedString(cellularProfile)).append("\n");
+ sb.append(" platform: ").append(toIndentedString(platform)).append("\n");
sb.append(" avgLatency: ").append(toIndentedString(avgLatency)).append("\n");
sb.append(" errorDetails: ").append(toIndentedString(errorDetails)).append("\n");
sb.append(" jitter: ").append(toIndentedString(jitter)).append("\n");
diff --git a/endpoint-test-results/src/main/java/com/thousandeyes/sdk/endpoint/tests/results/model/NetworkEndpointTestResult.java b/endpoint-test-results/src/main/java/com/thousandeyes/sdk/endpoint/tests/results/model/NetworkEndpointTestResult.java
index 7ecac0075..eb4722e23 100644
--- a/endpoint-test-results/src/main/java/com/thousandeyes/sdk/endpoint/tests/results/model/NetworkEndpointTestResult.java
+++ b/endpoint-test-results/src/main/java/com/thousandeyes/sdk/endpoint/tests/results/model/NetworkEndpointTestResult.java
@@ -20,9 +20,12 @@
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonTypeName;
import com.fasterxml.jackson.annotation.JsonValue;
+import com.thousandeyes.sdk.endpoint.tests.results.model.BatteryMetrics;
+import com.thousandeyes.sdk.endpoint.tests.results.model.CellularProfile;
import com.thousandeyes.sdk.endpoint.tests.results.model.EndpointPingDataPointScore;
import com.thousandeyes.sdk.endpoint.tests.results.model.EndpointZtaMetrics;
import com.thousandeyes.sdk.endpoint.tests.results.model.NetworkProfile;
+import com.thousandeyes.sdk.endpoint.tests.results.model.Platform;
import com.thousandeyes.sdk.endpoint.tests.results.model.SystemMetrics;
import com.thousandeyes.sdk.endpoint.tests.results.model.TargetProfile;
import com.thousandeyes.sdk.endpoint.tests.results.model.UserProfile;
@@ -48,6 +51,9 @@
NetworkEndpointTestResult.JSON_PROPERTY_ORIGINAL_TARGET_PROFILE,
NetworkEndpointTestResult.JSON_PROPERTY_USER_PROFILE,
NetworkEndpointTestResult.JSON_PROPERTY_VPN_PROFILE,
+ NetworkEndpointTestResult.JSON_PROPERTY_BATTERY_METRICS,
+ NetworkEndpointTestResult.JSON_PROPERTY_CELLULAR_PROFILE,
+ NetworkEndpointTestResult.JSON_PROPERTY_PLATFORM,
NetworkEndpointTestResult.JSON_PROPERTY_AVG_LATENCY,
NetworkEndpointTestResult.JSON_PROPERTY_ERROR_DETAILS,
NetworkEndpointTestResult.JSON_PROPERTY_JITTER,
@@ -90,6 +96,15 @@ public class NetworkEndpointTestResult {
public static final String JSON_PROPERTY_VPN_PROFILE = "vpnProfile";
private VpnProfile vpnProfile;
+ public static final String JSON_PROPERTY_BATTERY_METRICS = "batteryMetrics";
+ private BatteryMetrics batteryMetrics;
+
+ public static final String JSON_PROPERTY_CELLULAR_PROFILE = "cellularProfile";
+ private CellularProfile cellularProfile;
+
+ public static final String JSON_PROPERTY_PLATFORM = "platform";
+ private Platform platform;
+
public static final String JSON_PROPERTY_AVG_LATENCY = "avgLatency";
private Double avgLatency;
@@ -358,6 +373,81 @@ public void setVpnProfile(VpnProfile vpnProfile) {
}
+ public NetworkEndpointTestResult batteryMetrics(BatteryMetrics batteryMetrics) {
+ this.batteryMetrics = batteryMetrics;
+ return this;
+ }
+
+ /**
+ * Get batteryMetrics
+ * @return batteryMetrics
+ **/
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_BATTERY_METRICS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public BatteryMetrics getBatteryMetrics() {
+ return batteryMetrics;
+ }
+
+
+ @JsonProperty(JSON_PROPERTY_BATTERY_METRICS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setBatteryMetrics(BatteryMetrics batteryMetrics) {
+ this.batteryMetrics = batteryMetrics;
+ }
+
+
+ public NetworkEndpointTestResult cellularProfile(CellularProfile cellularProfile) {
+ this.cellularProfile = cellularProfile;
+ return this;
+ }
+
+ /**
+ * Get cellularProfile
+ * @return cellularProfile
+ **/
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_CELLULAR_PROFILE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public CellularProfile getCellularProfile() {
+ return cellularProfile;
+ }
+
+
+ @JsonProperty(JSON_PROPERTY_CELLULAR_PROFILE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setCellularProfile(CellularProfile cellularProfile) {
+ this.cellularProfile = cellularProfile;
+ }
+
+
+ public NetworkEndpointTestResult platform(Platform platform) {
+ this.platform = platform;
+ return this;
+ }
+
+ /**
+ * Get platform
+ * @return platform
+ **/
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_PLATFORM)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public Platform getPlatform() {
+ return platform;
+ }
+
+
+ @JsonProperty(JSON_PROPERTY_PLATFORM)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setPlatform(Platform platform) {
+ this.platform = platform;
+ }
+
+
/**
* Average RTT for packets sent to destination.
* @return avgLatency
@@ -543,6 +633,9 @@ public boolean equals(Object o) {
Objects.equals(this.originalTargetProfile, networkEndpointTestResult.originalTargetProfile) &&
Objects.equals(this.userProfile, networkEndpointTestResult.userProfile) &&
Objects.equals(this.vpnProfile, networkEndpointTestResult.vpnProfile) &&
+ Objects.equals(this.batteryMetrics, networkEndpointTestResult.batteryMetrics) &&
+ Objects.equals(this.cellularProfile, networkEndpointTestResult.cellularProfile) &&
+ Objects.equals(this.platform, networkEndpointTestResult.platform) &&
Objects.equals(this.avgLatency, networkEndpointTestResult.avgLatency) &&
Objects.equals(this.errorDetails, networkEndpointTestResult.errorDetails) &&
Objects.equals(this.jitter, networkEndpointTestResult.jitter) &&
@@ -556,7 +649,7 @@ public boolean equals(Object o) {
@Override
public int hashCode() {
- return Objects.hash(aid, testId, agentId, roundId, serverIp, networkProfile, systemMetrics, originalTargetProfile, userProfile, vpnProfile, avgLatency, errorDetails, jitter, score, ztaMetrics, isIcmpBlocked, loss, maxLatency, minLatency);
+ return Objects.hash(aid, testId, agentId, roundId, serverIp, networkProfile, systemMetrics, originalTargetProfile, userProfile, vpnProfile, batteryMetrics, cellularProfile, platform, avgLatency, errorDetails, jitter, score, ztaMetrics, isIcmpBlocked, loss, maxLatency, minLatency);
}
@Override
@@ -573,6 +666,9 @@ public String toString() {
sb.append(" originalTargetProfile: ").append(toIndentedString(originalTargetProfile)).append("\n");
sb.append(" userProfile: ").append(toIndentedString(userProfile)).append("\n");
sb.append(" vpnProfile: ").append(toIndentedString(vpnProfile)).append("\n");
+ sb.append(" batteryMetrics: ").append(toIndentedString(batteryMetrics)).append("\n");
+ sb.append(" cellularProfile: ").append(toIndentedString(cellularProfile)).append("\n");
+ sb.append(" platform: ").append(toIndentedString(platform)).append("\n");
sb.append(" avgLatency: ").append(toIndentedString(avgLatency)).append("\n");
sb.append(" errorDetails: ").append(toIndentedString(errorDetails)).append("\n");
sb.append(" jitter: ").append(toIndentedString(jitter)).append("\n");
diff --git a/endpoint-test-results/src/main/java/com/thousandeyes/sdk/endpoint/tests/results/model/PathVisBaseEndpointTestResult.java b/endpoint-test-results/src/main/java/com/thousandeyes/sdk/endpoint/tests/results/model/PathVisBaseEndpointTestResult.java
index 6ce9efcf5..531213d57 100644
--- a/endpoint-test-results/src/main/java/com/thousandeyes/sdk/endpoint/tests/results/model/PathVisBaseEndpointTestResult.java
+++ b/endpoint-test-results/src/main/java/com/thousandeyes/sdk/endpoint/tests/results/model/PathVisBaseEndpointTestResult.java
@@ -21,7 +21,10 @@
import com.fasterxml.jackson.annotation.JsonTypeName;
import com.fasterxml.jackson.annotation.JsonValue;
import com.thousandeyes.sdk.endpoint.tests.results.model.AsnDetails;
+import com.thousandeyes.sdk.endpoint.tests.results.model.BatteryMetrics;
+import com.thousandeyes.sdk.endpoint.tests.results.model.CellularProfile;
import com.thousandeyes.sdk.endpoint.tests.results.model.NetworkProfile;
+import com.thousandeyes.sdk.endpoint.tests.results.model.Platform;
import com.thousandeyes.sdk.endpoint.tests.results.model.SystemMetrics;
import com.thousandeyes.sdk.endpoint.tests.results.model.TargetProfile;
import com.thousandeyes.sdk.endpoint.tests.results.model.UserProfile;
@@ -44,6 +47,9 @@
PathVisBaseEndpointTestResult.JSON_PROPERTY_ORIGINAL_TARGET_PROFILE,
PathVisBaseEndpointTestResult.JSON_PROPERTY_USER_PROFILE,
PathVisBaseEndpointTestResult.JSON_PROPERTY_VPN_PROFILE,
+ PathVisBaseEndpointTestResult.JSON_PROPERTY_BATTERY_METRICS,
+ PathVisBaseEndpointTestResult.JSON_PROPERTY_CELLULAR_PROFILE,
+ PathVisBaseEndpointTestResult.JSON_PROPERTY_PLATFORM,
PathVisBaseEndpointTestResult.JSON_PROPERTY_ASN_DETAILS,
PathVisBaseEndpointTestResult.JSON_PROPERTY_SERVER,
PathVisBaseEndpointTestResult.JSON_PROPERTY_SOURCE_IP,
@@ -81,6 +87,15 @@ public class PathVisBaseEndpointTestResult {
public static final String JSON_PROPERTY_VPN_PROFILE = "vpnProfile";
private VpnProfile vpnProfile;
+ public static final String JSON_PROPERTY_BATTERY_METRICS = "batteryMetrics";
+ private BatteryMetrics batteryMetrics;
+
+ public static final String JSON_PROPERTY_CELLULAR_PROFILE = "cellularProfile";
+ private CellularProfile cellularProfile;
+
+ public static final String JSON_PROPERTY_PLATFORM = "platform";
+ private Platform platform;
+
public static final String JSON_PROPERTY_ASN_DETAILS = "asnDetails";
private AsnDetails asnDetails;
@@ -326,6 +341,81 @@ public void setVpnProfile(VpnProfile vpnProfile) {
}
+ public PathVisBaseEndpointTestResult batteryMetrics(BatteryMetrics batteryMetrics) {
+ this.batteryMetrics = batteryMetrics;
+ return this;
+ }
+
+ /**
+ * Get batteryMetrics
+ * @return batteryMetrics
+ **/
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_BATTERY_METRICS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public BatteryMetrics getBatteryMetrics() {
+ return batteryMetrics;
+ }
+
+
+ @JsonProperty(JSON_PROPERTY_BATTERY_METRICS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setBatteryMetrics(BatteryMetrics batteryMetrics) {
+ this.batteryMetrics = batteryMetrics;
+ }
+
+
+ public PathVisBaseEndpointTestResult cellularProfile(CellularProfile cellularProfile) {
+ this.cellularProfile = cellularProfile;
+ return this;
+ }
+
+ /**
+ * Get cellularProfile
+ * @return cellularProfile
+ **/
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_CELLULAR_PROFILE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public CellularProfile getCellularProfile() {
+ return cellularProfile;
+ }
+
+
+ @JsonProperty(JSON_PROPERTY_CELLULAR_PROFILE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setCellularProfile(CellularProfile cellularProfile) {
+ this.cellularProfile = cellularProfile;
+ }
+
+
+ public PathVisBaseEndpointTestResult platform(Platform platform) {
+ this.platform = platform;
+ return this;
+ }
+
+ /**
+ * Get platform
+ * @return platform
+ **/
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_PLATFORM)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public Platform getPlatform() {
+ return platform;
+ }
+
+
+ @JsonProperty(JSON_PROPERTY_PLATFORM)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setPlatform(Platform platform) {
+ this.platform = platform;
+ }
+
+
public PathVisBaseEndpointTestResult asnDetails(AsnDetails asnDetails) {
this.asnDetails = asnDetails;
return this;
@@ -418,6 +508,9 @@ public boolean equals(Object o) {
Objects.equals(this.originalTargetProfile, pathVisBaseEndpointTestResult.originalTargetProfile) &&
Objects.equals(this.userProfile, pathVisBaseEndpointTestResult.userProfile) &&
Objects.equals(this.vpnProfile, pathVisBaseEndpointTestResult.vpnProfile) &&
+ Objects.equals(this.batteryMetrics, pathVisBaseEndpointTestResult.batteryMetrics) &&
+ Objects.equals(this.cellularProfile, pathVisBaseEndpointTestResult.cellularProfile) &&
+ Objects.equals(this.platform, pathVisBaseEndpointTestResult.platform) &&
Objects.equals(this.asnDetails, pathVisBaseEndpointTestResult.asnDetails) &&
Objects.equals(this.server, pathVisBaseEndpointTestResult.server) &&
Objects.equals(this.sourceIp, pathVisBaseEndpointTestResult.sourceIp) &&
@@ -426,7 +519,7 @@ public boolean equals(Object o) {
@Override
public int hashCode() {
- return Objects.hash(aid, testId, agentId, roundId, serverIp, networkProfile, systemMetrics, originalTargetProfile, userProfile, vpnProfile, asnDetails, server, sourceIp, sourcePrefix);
+ return Objects.hash(aid, testId, agentId, roundId, serverIp, networkProfile, systemMetrics, originalTargetProfile, userProfile, vpnProfile, batteryMetrics, cellularProfile, platform, asnDetails, server, sourceIp, sourcePrefix);
}
@Override
@@ -443,6 +536,9 @@ public String toString() {
sb.append(" originalTargetProfile: ").append(toIndentedString(originalTargetProfile)).append("\n");
sb.append(" userProfile: ").append(toIndentedString(userProfile)).append("\n");
sb.append(" vpnProfile: ").append(toIndentedString(vpnProfile)).append("\n");
+ sb.append(" batteryMetrics: ").append(toIndentedString(batteryMetrics)).append("\n");
+ sb.append(" cellularProfile: ").append(toIndentedString(cellularProfile)).append("\n");
+ sb.append(" platform: ").append(toIndentedString(platform)).append("\n");
sb.append(" asnDetails: ").append(toIndentedString(asnDetails)).append("\n");
sb.append(" server: ").append(toIndentedString(server)).append("\n");
sb.append(" sourceIp: ").append(toIndentedString(sourceIp)).append("\n");
diff --git a/endpoint-test-results/src/main/java/com/thousandeyes/sdk/endpoint/tests/results/model/PathVisDetailDynamicEndpointTestResult.java b/endpoint-test-results/src/main/java/com/thousandeyes/sdk/endpoint/tests/results/model/PathVisDetailDynamicEndpointTestResult.java
index d16daa703..0289d536c 100644
--- a/endpoint-test-results/src/main/java/com/thousandeyes/sdk/endpoint/tests/results/model/PathVisDetailDynamicEndpointTestResult.java
+++ b/endpoint-test-results/src/main/java/com/thousandeyes/sdk/endpoint/tests/results/model/PathVisDetailDynamicEndpointTestResult.java
@@ -21,10 +21,13 @@
import com.fasterxml.jackson.annotation.JsonTypeName;
import com.fasterxml.jackson.annotation.JsonValue;
import com.thousandeyes.sdk.endpoint.tests.results.model.AsnDetails;
+import com.thousandeyes.sdk.endpoint.tests.results.model.BatteryMetrics;
+import com.thousandeyes.sdk.endpoint.tests.results.model.CellularProfile;
import com.thousandeyes.sdk.endpoint.tests.results.model.DynamicEndpointTestWebex;
import com.thousandeyes.sdk.endpoint.tests.results.model.EndpointPathVisRoute;
import com.thousandeyes.sdk.endpoint.tests.results.model.EndpointTestResultProtocol;
import com.thousandeyes.sdk.endpoint.tests.results.model.NetworkProfile;
+import com.thousandeyes.sdk.endpoint.tests.results.model.Platform;
import com.thousandeyes.sdk.endpoint.tests.results.model.SystemMetrics;
import com.thousandeyes.sdk.endpoint.tests.results.model.TargetProfile;
import com.thousandeyes.sdk.endpoint.tests.results.model.TestProbeModeResponse;
@@ -52,6 +55,9 @@
PathVisDetailDynamicEndpointTestResult.JSON_PROPERTY_ORIGINAL_TARGET_PROFILE,
PathVisDetailDynamicEndpointTestResult.JSON_PROPERTY_USER_PROFILE,
PathVisDetailDynamicEndpointTestResult.JSON_PROPERTY_VPN_PROFILE,
+ PathVisDetailDynamicEndpointTestResult.JSON_PROPERTY_BATTERY_METRICS,
+ PathVisDetailDynamicEndpointTestResult.JSON_PROPERTY_CELLULAR_PROFILE,
+ PathVisDetailDynamicEndpointTestResult.JSON_PROPERTY_PLATFORM,
PathVisDetailDynamicEndpointTestResult.JSON_PROPERTY_ASN_DETAILS,
PathVisDetailDynamicEndpointTestResult.JSON_PROPERTY_SERVER,
PathVisDetailDynamicEndpointTestResult.JSON_PROPERTY_SOURCE_IP,
@@ -96,6 +102,15 @@ public class PathVisDetailDynamicEndpointTestResult {
public static final String JSON_PROPERTY_VPN_PROFILE = "vpnProfile";
private VpnProfile vpnProfile;
+ public static final String JSON_PROPERTY_BATTERY_METRICS = "batteryMetrics";
+ private BatteryMetrics batteryMetrics;
+
+ public static final String JSON_PROPERTY_CELLULAR_PROFILE = "cellularProfile";
+ private CellularProfile cellularProfile;
+
+ public static final String JSON_PROPERTY_PLATFORM = "platform";
+ private Platform platform;
+
public static final String JSON_PROPERTY_ASN_DETAILS = "asnDetails";
private AsnDetails asnDetails;
@@ -362,6 +377,81 @@ public void setVpnProfile(VpnProfile vpnProfile) {
}
+ public PathVisDetailDynamicEndpointTestResult batteryMetrics(BatteryMetrics batteryMetrics) {
+ this.batteryMetrics = batteryMetrics;
+ return this;
+ }
+
+ /**
+ * Get batteryMetrics
+ * @return batteryMetrics
+ **/
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_BATTERY_METRICS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public BatteryMetrics getBatteryMetrics() {
+ return batteryMetrics;
+ }
+
+
+ @JsonProperty(JSON_PROPERTY_BATTERY_METRICS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setBatteryMetrics(BatteryMetrics batteryMetrics) {
+ this.batteryMetrics = batteryMetrics;
+ }
+
+
+ public PathVisDetailDynamicEndpointTestResult cellularProfile(CellularProfile cellularProfile) {
+ this.cellularProfile = cellularProfile;
+ return this;
+ }
+
+ /**
+ * Get cellularProfile
+ * @return cellularProfile
+ **/
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_CELLULAR_PROFILE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public CellularProfile getCellularProfile() {
+ return cellularProfile;
+ }
+
+
+ @JsonProperty(JSON_PROPERTY_CELLULAR_PROFILE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setCellularProfile(CellularProfile cellularProfile) {
+ this.cellularProfile = cellularProfile;
+ }
+
+
+ public PathVisDetailDynamicEndpointTestResult platform(Platform platform) {
+ this.platform = platform;
+ return this;
+ }
+
+ /**
+ * Get platform
+ * @return platform
+ **/
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_PLATFORM)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public Platform getPlatform() {
+ return platform;
+ }
+
+
+ @JsonProperty(JSON_PROPERTY_PLATFORM)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setPlatform(Platform platform) {
+ this.platform = platform;
+ }
+
+
public PathVisDetailDynamicEndpointTestResult asnDetails(AsnDetails asnDetails) {
this.asnDetails = asnDetails;
return this;
@@ -645,6 +735,9 @@ public boolean equals(Object o) {
Objects.equals(this.originalTargetProfile, pathVisDetailDynamicEndpointTestResult.originalTargetProfile) &&
Objects.equals(this.userProfile, pathVisDetailDynamicEndpointTestResult.userProfile) &&
Objects.equals(this.vpnProfile, pathVisDetailDynamicEndpointTestResult.vpnProfile) &&
+ Objects.equals(this.batteryMetrics, pathVisDetailDynamicEndpointTestResult.batteryMetrics) &&
+ Objects.equals(this.cellularProfile, pathVisDetailDynamicEndpointTestResult.cellularProfile) &&
+ Objects.equals(this.platform, pathVisDetailDynamicEndpointTestResult.platform) &&
Objects.equals(this.asnDetails, pathVisDetailDynamicEndpointTestResult.asnDetails) &&
Objects.equals(this.server, pathVisDetailDynamicEndpointTestResult.server) &&
Objects.equals(this.sourceIp, pathVisDetailDynamicEndpointTestResult.sourceIp) &&
@@ -660,7 +753,7 @@ public boolean equals(Object o) {
@Override
public int hashCode() {
- return Objects.hash(aid, testId, agentId, roundId, serverIp, networkProfile, systemMetrics, originalTargetProfile, userProfile, vpnProfile, asnDetails, server, sourceIp, sourcePrefix, pathTraces, vpnPathTraces, application, protocol, tcpProbeMode, udpProbeMode, webex);
+ return Objects.hash(aid, testId, agentId, roundId, serverIp, networkProfile, systemMetrics, originalTargetProfile, userProfile, vpnProfile, batteryMetrics, cellularProfile, platform, asnDetails, server, sourceIp, sourcePrefix, pathTraces, vpnPathTraces, application, protocol, tcpProbeMode, udpProbeMode, webex);
}
@Override
@@ -677,6 +770,9 @@ public String toString() {
sb.append(" originalTargetProfile: ").append(toIndentedString(originalTargetProfile)).append("\n");
sb.append(" userProfile: ").append(toIndentedString(userProfile)).append("\n");
sb.append(" vpnProfile: ").append(toIndentedString(vpnProfile)).append("\n");
+ sb.append(" batteryMetrics: ").append(toIndentedString(batteryMetrics)).append("\n");
+ sb.append(" cellularProfile: ").append(toIndentedString(cellularProfile)).append("\n");
+ sb.append(" platform: ").append(toIndentedString(platform)).append("\n");
sb.append(" asnDetails: ").append(toIndentedString(asnDetails)).append("\n");
sb.append(" server: ").append(toIndentedString(server)).append("\n");
sb.append(" sourceIp: ").append(toIndentedString(sourceIp)).append("\n");
diff --git a/endpoint-test-results/src/main/java/com/thousandeyes/sdk/endpoint/tests/results/model/PathVisDetailEndpointTestResult.java b/endpoint-test-results/src/main/java/com/thousandeyes/sdk/endpoint/tests/results/model/PathVisDetailEndpointTestResult.java
index 6f63d65ca..611f41b5c 100644
--- a/endpoint-test-results/src/main/java/com/thousandeyes/sdk/endpoint/tests/results/model/PathVisDetailEndpointTestResult.java
+++ b/endpoint-test-results/src/main/java/com/thousandeyes/sdk/endpoint/tests/results/model/PathVisDetailEndpointTestResult.java
@@ -21,8 +21,11 @@
import com.fasterxml.jackson.annotation.JsonTypeName;
import com.fasterxml.jackson.annotation.JsonValue;
import com.thousandeyes.sdk.endpoint.tests.results.model.AsnDetails;
+import com.thousandeyes.sdk.endpoint.tests.results.model.BatteryMetrics;
+import com.thousandeyes.sdk.endpoint.tests.results.model.CellularProfile;
import com.thousandeyes.sdk.endpoint.tests.results.model.EndpointPathVisRoute;
import com.thousandeyes.sdk.endpoint.tests.results.model.NetworkProfile;
+import com.thousandeyes.sdk.endpoint.tests.results.model.Platform;
import com.thousandeyes.sdk.endpoint.tests.results.model.SystemMetrics;
import com.thousandeyes.sdk.endpoint.tests.results.model.TargetProfile;
import com.thousandeyes.sdk.endpoint.tests.results.model.UserProfile;
@@ -48,6 +51,9 @@
PathVisDetailEndpointTestResult.JSON_PROPERTY_ORIGINAL_TARGET_PROFILE,
PathVisDetailEndpointTestResult.JSON_PROPERTY_USER_PROFILE,
PathVisDetailEndpointTestResult.JSON_PROPERTY_VPN_PROFILE,
+ PathVisDetailEndpointTestResult.JSON_PROPERTY_BATTERY_METRICS,
+ PathVisDetailEndpointTestResult.JSON_PROPERTY_CELLULAR_PROFILE,
+ PathVisDetailEndpointTestResult.JSON_PROPERTY_PLATFORM,
PathVisDetailEndpointTestResult.JSON_PROPERTY_ASN_DETAILS,
PathVisDetailEndpointTestResult.JSON_PROPERTY_SERVER,
PathVisDetailEndpointTestResult.JSON_PROPERTY_SOURCE_IP,
@@ -87,6 +93,15 @@ public class PathVisDetailEndpointTestResult {
public static final String JSON_PROPERTY_VPN_PROFILE = "vpnProfile";
private VpnProfile vpnProfile;
+ public static final String JSON_PROPERTY_BATTERY_METRICS = "batteryMetrics";
+ private BatteryMetrics batteryMetrics;
+
+ public static final String JSON_PROPERTY_CELLULAR_PROFILE = "cellularProfile";
+ private CellularProfile cellularProfile;
+
+ public static final String JSON_PROPERTY_PLATFORM = "platform";
+ private Platform platform;
+
public static final String JSON_PROPERTY_ASN_DETAILS = "asnDetails";
private AsnDetails asnDetails;
@@ -338,6 +353,81 @@ public void setVpnProfile(VpnProfile vpnProfile) {
}
+ public PathVisDetailEndpointTestResult batteryMetrics(BatteryMetrics batteryMetrics) {
+ this.batteryMetrics = batteryMetrics;
+ return this;
+ }
+
+ /**
+ * Get batteryMetrics
+ * @return batteryMetrics
+ **/
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_BATTERY_METRICS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public BatteryMetrics getBatteryMetrics() {
+ return batteryMetrics;
+ }
+
+
+ @JsonProperty(JSON_PROPERTY_BATTERY_METRICS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setBatteryMetrics(BatteryMetrics batteryMetrics) {
+ this.batteryMetrics = batteryMetrics;
+ }
+
+
+ public PathVisDetailEndpointTestResult cellularProfile(CellularProfile cellularProfile) {
+ this.cellularProfile = cellularProfile;
+ return this;
+ }
+
+ /**
+ * Get cellularProfile
+ * @return cellularProfile
+ **/
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_CELLULAR_PROFILE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public CellularProfile getCellularProfile() {
+ return cellularProfile;
+ }
+
+
+ @JsonProperty(JSON_PROPERTY_CELLULAR_PROFILE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setCellularProfile(CellularProfile cellularProfile) {
+ this.cellularProfile = cellularProfile;
+ }
+
+
+ public PathVisDetailEndpointTestResult platform(Platform platform) {
+ this.platform = platform;
+ return this;
+ }
+
+ /**
+ * Get platform
+ * @return platform
+ **/
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_PLATFORM)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public Platform getPlatform() {
+ return platform;
+ }
+
+
+ @JsonProperty(JSON_PROPERTY_PLATFORM)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setPlatform(Platform platform) {
+ this.platform = platform;
+ }
+
+
public PathVisDetailEndpointTestResult asnDetails(AsnDetails asnDetails) {
this.asnDetails = asnDetails;
return this;
@@ -496,6 +586,9 @@ public boolean equals(Object o) {
Objects.equals(this.originalTargetProfile, pathVisDetailEndpointTestResult.originalTargetProfile) &&
Objects.equals(this.userProfile, pathVisDetailEndpointTestResult.userProfile) &&
Objects.equals(this.vpnProfile, pathVisDetailEndpointTestResult.vpnProfile) &&
+ Objects.equals(this.batteryMetrics, pathVisDetailEndpointTestResult.batteryMetrics) &&
+ Objects.equals(this.cellularProfile, pathVisDetailEndpointTestResult.cellularProfile) &&
+ Objects.equals(this.platform, pathVisDetailEndpointTestResult.platform) &&
Objects.equals(this.asnDetails, pathVisDetailEndpointTestResult.asnDetails) &&
Objects.equals(this.server, pathVisDetailEndpointTestResult.server) &&
Objects.equals(this.sourceIp, pathVisDetailEndpointTestResult.sourceIp) &&
@@ -506,7 +599,7 @@ public boolean equals(Object o) {
@Override
public int hashCode() {
- return Objects.hash(aid, testId, agentId, roundId, serverIp, networkProfile, systemMetrics, originalTargetProfile, userProfile, vpnProfile, asnDetails, server, sourceIp, sourcePrefix, pathTraces, vpnPathTraces);
+ return Objects.hash(aid, testId, agentId, roundId, serverIp, networkProfile, systemMetrics, originalTargetProfile, userProfile, vpnProfile, batteryMetrics, cellularProfile, platform, asnDetails, server, sourceIp, sourcePrefix, pathTraces, vpnPathTraces);
}
@Override
@@ -523,6 +616,9 @@ public String toString() {
sb.append(" originalTargetProfile: ").append(toIndentedString(originalTargetProfile)).append("\n");
sb.append(" userProfile: ").append(toIndentedString(userProfile)).append("\n");
sb.append(" vpnProfile: ").append(toIndentedString(vpnProfile)).append("\n");
+ sb.append(" batteryMetrics: ").append(toIndentedString(batteryMetrics)).append("\n");
+ sb.append(" cellularProfile: ").append(toIndentedString(cellularProfile)).append("\n");
+ sb.append(" platform: ").append(toIndentedString(platform)).append("\n");
sb.append(" asnDetails: ").append(toIndentedString(asnDetails)).append("\n");
sb.append(" server: ").append(toIndentedString(server)).append("\n");
sb.append(" sourceIp: ").append(toIndentedString(sourceIp)).append("\n");
diff --git a/endpoint-test-results/src/main/java/com/thousandeyes/sdk/endpoint/tests/results/model/PathVisDynamicEndpointTestResult.java b/endpoint-test-results/src/main/java/com/thousandeyes/sdk/endpoint/tests/results/model/PathVisDynamicEndpointTestResult.java
index a36d0df25..721f22905 100644
--- a/endpoint-test-results/src/main/java/com/thousandeyes/sdk/endpoint/tests/results/model/PathVisDynamicEndpointTestResult.java
+++ b/endpoint-test-results/src/main/java/com/thousandeyes/sdk/endpoint/tests/results/model/PathVisDynamicEndpointTestResult.java
@@ -21,10 +21,13 @@
import com.fasterxml.jackson.annotation.JsonTypeName;
import com.fasterxml.jackson.annotation.JsonValue;
import com.thousandeyes.sdk.endpoint.tests.results.model.AsnDetails;
+import com.thousandeyes.sdk.endpoint.tests.results.model.BatteryMetrics;
+import com.thousandeyes.sdk.endpoint.tests.results.model.CellularProfile;
import com.thousandeyes.sdk.endpoint.tests.results.model.DynamicEndpointTestWebex;
import com.thousandeyes.sdk.endpoint.tests.results.model.EndpointPathTrace;
import com.thousandeyes.sdk.endpoint.tests.results.model.EndpointTestResultProtocol;
import com.thousandeyes.sdk.endpoint.tests.results.model.NetworkProfile;
+import com.thousandeyes.sdk.endpoint.tests.results.model.Platform;
import com.thousandeyes.sdk.endpoint.tests.results.model.SystemMetrics;
import com.thousandeyes.sdk.endpoint.tests.results.model.TargetProfile;
import com.thousandeyes.sdk.endpoint.tests.results.model.TestProbeModeResponse;
@@ -52,6 +55,9 @@
PathVisDynamicEndpointTestResult.JSON_PROPERTY_ORIGINAL_TARGET_PROFILE,
PathVisDynamicEndpointTestResult.JSON_PROPERTY_USER_PROFILE,
PathVisDynamicEndpointTestResult.JSON_PROPERTY_VPN_PROFILE,
+ PathVisDynamicEndpointTestResult.JSON_PROPERTY_BATTERY_METRICS,
+ PathVisDynamicEndpointTestResult.JSON_PROPERTY_CELLULAR_PROFILE,
+ PathVisDynamicEndpointTestResult.JSON_PROPERTY_PLATFORM,
PathVisDynamicEndpointTestResult.JSON_PROPERTY_ASN_DETAILS,
PathVisDynamicEndpointTestResult.JSON_PROPERTY_SERVER,
PathVisDynamicEndpointTestResult.JSON_PROPERTY_SOURCE_IP,
@@ -96,6 +102,15 @@ public class PathVisDynamicEndpointTestResult {
public static final String JSON_PROPERTY_VPN_PROFILE = "vpnProfile";
private VpnProfile vpnProfile;
+ public static final String JSON_PROPERTY_BATTERY_METRICS = "batteryMetrics";
+ private BatteryMetrics batteryMetrics;
+
+ public static final String JSON_PROPERTY_CELLULAR_PROFILE = "cellularProfile";
+ private CellularProfile cellularProfile;
+
+ public static final String JSON_PROPERTY_PLATFORM = "platform";
+ private Platform platform;
+
public static final String JSON_PROPERTY_ASN_DETAILS = "asnDetails";
private AsnDetails asnDetails;
@@ -364,6 +379,81 @@ public void setVpnProfile(VpnProfile vpnProfile) {
}
+ public PathVisDynamicEndpointTestResult batteryMetrics(BatteryMetrics batteryMetrics) {
+ this.batteryMetrics = batteryMetrics;
+ return this;
+ }
+
+ /**
+ * Get batteryMetrics
+ * @return batteryMetrics
+ **/
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_BATTERY_METRICS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public BatteryMetrics getBatteryMetrics() {
+ return batteryMetrics;
+ }
+
+
+ @JsonProperty(JSON_PROPERTY_BATTERY_METRICS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setBatteryMetrics(BatteryMetrics batteryMetrics) {
+ this.batteryMetrics = batteryMetrics;
+ }
+
+
+ public PathVisDynamicEndpointTestResult cellularProfile(CellularProfile cellularProfile) {
+ this.cellularProfile = cellularProfile;
+ return this;
+ }
+
+ /**
+ * Get cellularProfile
+ * @return cellularProfile
+ **/
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_CELLULAR_PROFILE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public CellularProfile getCellularProfile() {
+ return cellularProfile;
+ }
+
+
+ @JsonProperty(JSON_PROPERTY_CELLULAR_PROFILE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setCellularProfile(CellularProfile cellularProfile) {
+ this.cellularProfile = cellularProfile;
+ }
+
+
+ public PathVisDynamicEndpointTestResult platform(Platform platform) {
+ this.platform = platform;
+ return this;
+ }
+
+ /**
+ * Get platform
+ * @return platform
+ **/
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_PLATFORM)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public Platform getPlatform() {
+ return platform;
+ }
+
+
+ @JsonProperty(JSON_PROPERTY_PLATFORM)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setPlatform(Platform platform) {
+ this.platform = platform;
+ }
+
+
public PathVisDynamicEndpointTestResult asnDetails(AsnDetails asnDetails) {
this.asnDetails = asnDetails;
return this;
@@ -629,6 +719,9 @@ public boolean equals(Object o) {
Objects.equals(this.originalTargetProfile, pathVisDynamicEndpointTestResult.originalTargetProfile) &&
Objects.equals(this.userProfile, pathVisDynamicEndpointTestResult.userProfile) &&
Objects.equals(this.vpnProfile, pathVisDynamicEndpointTestResult.vpnProfile) &&
+ Objects.equals(this.batteryMetrics, pathVisDynamicEndpointTestResult.batteryMetrics) &&
+ Objects.equals(this.cellularProfile, pathVisDynamicEndpointTestResult.cellularProfile) &&
+ Objects.equals(this.platform, pathVisDynamicEndpointTestResult.platform) &&
Objects.equals(this.asnDetails, pathVisDynamicEndpointTestResult.asnDetails) &&
Objects.equals(this.server, pathVisDynamicEndpointTestResult.server) &&
Objects.equals(this.sourceIp, pathVisDynamicEndpointTestResult.sourceIp) &&
@@ -644,7 +737,7 @@ public boolean equals(Object o) {
@Override
public int hashCode() {
- return Objects.hash(aid, testId, agentId, roundId, serverIp, networkProfile, systemMetrics, originalTargetProfile, userProfile, vpnProfile, asnDetails, server, sourceIp, sourcePrefix, application, protocol, tcpProbeMode, udpProbeMode, webex, location, pathTraces);
+ return Objects.hash(aid, testId, agentId, roundId, serverIp, networkProfile, systemMetrics, originalTargetProfile, userProfile, vpnProfile, batteryMetrics, cellularProfile, platform, asnDetails, server, sourceIp, sourcePrefix, application, protocol, tcpProbeMode, udpProbeMode, webex, location, pathTraces);
}
@Override
@@ -661,6 +754,9 @@ public String toString() {
sb.append(" originalTargetProfile: ").append(toIndentedString(originalTargetProfile)).append("\n");
sb.append(" userProfile: ").append(toIndentedString(userProfile)).append("\n");
sb.append(" vpnProfile: ").append(toIndentedString(vpnProfile)).append("\n");
+ sb.append(" batteryMetrics: ").append(toIndentedString(batteryMetrics)).append("\n");
+ sb.append(" cellularProfile: ").append(toIndentedString(cellularProfile)).append("\n");
+ sb.append(" platform: ").append(toIndentedString(platform)).append("\n");
sb.append(" asnDetails: ").append(toIndentedString(asnDetails)).append("\n");
sb.append(" server: ").append(toIndentedString(server)).append("\n");
sb.append(" sourceIp: ").append(toIndentedString(sourceIp)).append("\n");
diff --git a/endpoint-test-results/src/main/java/com/thousandeyes/sdk/endpoint/tests/results/model/PathVisEndpointTestResult.java b/endpoint-test-results/src/main/java/com/thousandeyes/sdk/endpoint/tests/results/model/PathVisEndpointTestResult.java
index 44c81908b..944bcd5af 100644
--- a/endpoint-test-results/src/main/java/com/thousandeyes/sdk/endpoint/tests/results/model/PathVisEndpointTestResult.java
+++ b/endpoint-test-results/src/main/java/com/thousandeyes/sdk/endpoint/tests/results/model/PathVisEndpointTestResult.java
@@ -21,8 +21,11 @@
import com.fasterxml.jackson.annotation.JsonTypeName;
import com.fasterxml.jackson.annotation.JsonValue;
import com.thousandeyes.sdk.endpoint.tests.results.model.AsnDetails;
+import com.thousandeyes.sdk.endpoint.tests.results.model.BatteryMetrics;
+import com.thousandeyes.sdk.endpoint.tests.results.model.CellularProfile;
import com.thousandeyes.sdk.endpoint.tests.results.model.EndpointPathTrace;
import com.thousandeyes.sdk.endpoint.tests.results.model.NetworkProfile;
+import com.thousandeyes.sdk.endpoint.tests.results.model.Platform;
import com.thousandeyes.sdk.endpoint.tests.results.model.SystemMetrics;
import com.thousandeyes.sdk.endpoint.tests.results.model.TargetProfile;
import com.thousandeyes.sdk.endpoint.tests.results.model.UserProfile;
@@ -48,6 +51,9 @@
PathVisEndpointTestResult.JSON_PROPERTY_ORIGINAL_TARGET_PROFILE,
PathVisEndpointTestResult.JSON_PROPERTY_USER_PROFILE,
PathVisEndpointTestResult.JSON_PROPERTY_VPN_PROFILE,
+ PathVisEndpointTestResult.JSON_PROPERTY_BATTERY_METRICS,
+ PathVisEndpointTestResult.JSON_PROPERTY_CELLULAR_PROFILE,
+ PathVisEndpointTestResult.JSON_PROPERTY_PLATFORM,
PathVisEndpointTestResult.JSON_PROPERTY_ASN_DETAILS,
PathVisEndpointTestResult.JSON_PROPERTY_SERVER,
PathVisEndpointTestResult.JSON_PROPERTY_SOURCE_IP,
@@ -87,6 +93,15 @@ public class PathVisEndpointTestResult {
public static final String JSON_PROPERTY_VPN_PROFILE = "vpnProfile";
private VpnProfile vpnProfile;
+ public static final String JSON_PROPERTY_BATTERY_METRICS = "batteryMetrics";
+ private BatteryMetrics batteryMetrics;
+
+ public static final String JSON_PROPERTY_CELLULAR_PROFILE = "cellularProfile";
+ private CellularProfile cellularProfile;
+
+ public static final String JSON_PROPERTY_PLATFORM = "platform";
+ private Platform platform;
+
public static final String JSON_PROPERTY_ASN_DETAILS = "asnDetails";
private AsnDetails asnDetails;
@@ -340,6 +355,81 @@ public void setVpnProfile(VpnProfile vpnProfile) {
}
+ public PathVisEndpointTestResult batteryMetrics(BatteryMetrics batteryMetrics) {
+ this.batteryMetrics = batteryMetrics;
+ return this;
+ }
+
+ /**
+ * Get batteryMetrics
+ * @return batteryMetrics
+ **/
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_BATTERY_METRICS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public BatteryMetrics getBatteryMetrics() {
+ return batteryMetrics;
+ }
+
+
+ @JsonProperty(JSON_PROPERTY_BATTERY_METRICS)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setBatteryMetrics(BatteryMetrics batteryMetrics) {
+ this.batteryMetrics = batteryMetrics;
+ }
+
+
+ public PathVisEndpointTestResult cellularProfile(CellularProfile cellularProfile) {
+ this.cellularProfile = cellularProfile;
+ return this;
+ }
+
+ /**
+ * Get cellularProfile
+ * @return cellularProfile
+ **/
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_CELLULAR_PROFILE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public CellularProfile getCellularProfile() {
+ return cellularProfile;
+ }
+
+
+ @JsonProperty(JSON_PROPERTY_CELLULAR_PROFILE)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setCellularProfile(CellularProfile cellularProfile) {
+ this.cellularProfile = cellularProfile;
+ }
+
+
+ public PathVisEndpointTestResult platform(Platform platform) {
+ this.platform = platform;
+ return this;
+ }
+
+ /**
+ * Get platform
+ * @return platform
+ **/
+ @jakarta.annotation.Nullable
+ @JsonProperty(JSON_PROPERTY_PLATFORM)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+
+ public Platform getPlatform() {
+ return platform;
+ }
+
+
+ @JsonProperty(JSON_PROPERTY_PLATFORM)
+ @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
+ public void setPlatform(Platform platform) {
+ this.platform = platform;
+ }
+
+
public PathVisEndpointTestResult asnDetails(AsnDetails asnDetails) {
this.asnDetails = asnDetails;
return this;
@@ -480,6 +570,9 @@ public boolean equals(Object o) {
Objects.equals(this.originalTargetProfile, pathVisEndpointTestResult.originalTargetProfile) &&
Objects.equals(this.userProfile, pathVisEndpointTestResult.userProfile) &&
Objects.equals(this.vpnProfile, pathVisEndpointTestResult.vpnProfile) &&
+ Objects.equals(this.batteryMetrics, pathVisEndpointTestResult.batteryMetrics) &&
+ Objects.equals(this.cellularProfile, pathVisEndpointTestResult.cellularProfile) &&
+ Objects.equals(this.platform, pathVisEndpointTestResult.platform) &&
Objects.equals(this.asnDetails, pathVisEndpointTestResult.asnDetails) &&
Objects.equals(this.server, pathVisEndpointTestResult.server) &&
Objects.equals(this.sourceIp, pathVisEndpointTestResult.sourceIp) &&
@@ -490,7 +583,7 @@ public boolean equals(Object o) {
@Override
public int hashCode() {
- return Objects.hash(aid, testId, agentId, roundId, serverIp, networkProfile, systemMetrics, originalTargetProfile, userProfile, vpnProfile, asnDetails, server, sourceIp, sourcePrefix, location, pathTraces);
+ return Objects.hash(aid, testId, agentId, roundId, serverIp, networkProfile, systemMetrics, originalTargetProfile, userProfile, vpnProfile, batteryMetrics, cellularProfile, platform, asnDetails, server, sourceIp, sourcePrefix, location, pathTraces);
}
@Override
@@ -507,6 +600,9 @@ public String toString() {
sb.append(" originalTargetProfile: ").append(toIndentedString(originalTargetProfile)).append("\n");
sb.append(" userProfile: ").append(toIndentedString(userProfile)).append("\n");
sb.append(" vpnProfile: ").append(toIndentedString(vpnProfile)).append("\n");
+ sb.append(" batteryMetrics: ").append(toIndentedString(batteryMetrics)).append("\n");
+ sb.append(" cellularProfile: ").append(toIndentedString(cellularProfile)).append("\n");
+ sb.append(" platform: ").append(toIndentedString(platform)).append("\n");
sb.append(" asnDetails: ").append(toIndentedString(asnDetails)).append("\n");
sb.append(" server: ").append(toIndentedString(server)).append("\n");
sb.append(" sourceIp: ").append(toIndentedString(sourceIp)).append("\n");
diff --git a/endpoint-test-results/src/test/java/com/thousandeyes/sdk/endpoint/tests/results/HttpServerEndpointScheduledTestResultsApiTest.java b/endpoint-test-results/src/test/java/com/thousandeyes/sdk/endpoint/tests/results/HttpServerEndpointScheduledTestResultsApiTest.java
index dca5650c3..2237c2993 100644
--- a/endpoint-test-results/src/test/java/com/thousandeyes/sdk/endpoint/tests/results/HttpServerEndpointScheduledTestResultsApiTest.java
+++ b/endpoint-test-results/src/test/java/com/thousandeyes/sdk/endpoint/tests/results/HttpServerEndpointScheduledTestResultsApiTest.java
@@ -192,11 +192,28 @@ public void getHttpServerScheduledTestResultsRequestAndResponseDeserializationTe
"vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ]
},
"errorType" : "connect",
+ "batteryMetrics" : {
+ "batteryLevel" : "medium",
+ "batteryLevelNormalizedPercent" : 0.3
+ },
"userProfile" : {
"userName" : "joeblogs32",
"userPrincipalName" : "joeblogs32@c.com"
},
+ "platform" : "mac",
"responseCode" : 200,
+ "cellularProfile" : {
+ "rssi" : -10,
+ "advertisedNetworkSubtype" : "LTE/HSPA",
+ "carrierName" : "T-Mobile",
+ "rsrq" : -30,
+ "rsrp" : -30,
+ "advertisedNetworkGen" : "2g, 3g, 4g, 5g",
+ "rscp" : -30,
+ "networkGen" : "2g, 3g, 4g, 5g",
+ "networkSubtype" : "LTE/HSPA",
+ "sinr" : 20
+ },
"score" : {
"applicationScore" : 100.0,
"quality" : "great"
@@ -302,11 +319,28 @@ public void getHttpServerScheduledTestResultsRequestAndResponseDeserializationTe
"vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ]
},
"errorType" : "connect",
+ "batteryMetrics" : {
+ "batteryLevel" : "medium",
+ "batteryLevelNormalizedPercent" : 0.3
+ },
"userProfile" : {
"userName" : "joeblogs32",
"userPrincipalName" : "joeblogs32@c.com"
},
+ "platform" : "mac",
"responseCode" : 200,
+ "cellularProfile" : {
+ "rssi" : -10,
+ "advertisedNetworkSubtype" : "LTE/HSPA",
+ "carrierName" : "T-Mobile",
+ "rsrq" : -30,
+ "rsrp" : -30,
+ "advertisedNetworkGen" : "2g, 3g, 4g, 5g",
+ "rscp" : -30,
+ "networkGen" : "2g, 3g, 4g, 5g",
+ "networkSubtype" : "LTE/HSPA",
+ "sinr" : 20
+ },
"score" : {
"applicationScore" : 100.0,
"quality" : "great"
@@ -506,11 +540,28 @@ public void getMultiTestFilteredHttpServerScheduledTestResultsRequestAndResponse
"vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ]
},
"errorType" : "connect",
+ "batteryMetrics" : {
+ "batteryLevel" : "medium",
+ "batteryLevelNormalizedPercent" : 0.3
+ },
"userProfile" : {
"userName" : "joeblogs32",
"userPrincipalName" : "joeblogs32@c.com"
},
+ "platform" : "mac",
"responseCode" : 200,
+ "cellularProfile" : {
+ "rssi" : -10,
+ "advertisedNetworkSubtype" : "LTE/HSPA",
+ "carrierName" : "T-Mobile",
+ "rsrq" : -30,
+ "rsrp" : -30,
+ "advertisedNetworkGen" : "2g, 3g, 4g, 5g",
+ "rscp" : -30,
+ "networkGen" : "2g, 3g, 4g, 5g",
+ "networkSubtype" : "LTE/HSPA",
+ "sinr" : 20
+ },
"score" : {
"applicationScore" : 100.0,
"quality" : "great"
@@ -616,11 +667,28 @@ public void getMultiTestFilteredHttpServerScheduledTestResultsRequestAndResponse
"vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ]
},
"errorType" : "connect",
+ "batteryMetrics" : {
+ "batteryLevel" : "medium",
+ "batteryLevelNormalizedPercent" : 0.3
+ },
"userProfile" : {
"userName" : "joeblogs32",
"userPrincipalName" : "joeblogs32@c.com"
},
+ "platform" : "mac",
"responseCode" : 200,
+ "cellularProfile" : {
+ "rssi" : -10,
+ "advertisedNetworkSubtype" : "LTE/HSPA",
+ "carrierName" : "T-Mobile",
+ "rsrq" : -30,
+ "rsrp" : -30,
+ "advertisedNetworkGen" : "2g, 3g, 4g, 5g",
+ "rscp" : -30,
+ "networkGen" : "2g, 3g, 4g, 5g",
+ "networkSubtype" : "LTE/HSPA",
+ "sinr" : 20
+ },
"score" : {
"applicationScore" : 100.0,
"quality" : "great"
@@ -822,11 +890,28 @@ public void getSingleTestFilteredHttpServerScheduledTestResultsRequestAndRespons
"vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ]
},
"errorType" : "connect",
+ "batteryMetrics" : {
+ "batteryLevel" : "medium",
+ "batteryLevelNormalizedPercent" : 0.3
+ },
"userProfile" : {
"userName" : "joeblogs32",
"userPrincipalName" : "joeblogs32@c.com"
},
+ "platform" : "mac",
"responseCode" : 200,
+ "cellularProfile" : {
+ "rssi" : -10,
+ "advertisedNetworkSubtype" : "LTE/HSPA",
+ "carrierName" : "T-Mobile",
+ "rsrq" : -30,
+ "rsrp" : -30,
+ "advertisedNetworkGen" : "2g, 3g, 4g, 5g",
+ "rscp" : -30,
+ "networkGen" : "2g, 3g, 4g, 5g",
+ "networkSubtype" : "LTE/HSPA",
+ "sinr" : 20
+ },
"score" : {
"applicationScore" : 100.0,
"quality" : "great"
@@ -932,11 +1017,28 @@ public void getSingleTestFilteredHttpServerScheduledTestResultsRequestAndRespons
"vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ]
},
"errorType" : "connect",
+ "batteryMetrics" : {
+ "batteryLevel" : "medium",
+ "batteryLevelNormalizedPercent" : 0.3
+ },
"userProfile" : {
"userName" : "joeblogs32",
"userPrincipalName" : "joeblogs32@c.com"
},
+ "platform" : "mac",
"responseCode" : 200,
+ "cellularProfile" : {
+ "rssi" : -10,
+ "advertisedNetworkSubtype" : "LTE/HSPA",
+ "carrierName" : "T-Mobile",
+ "rsrq" : -30,
+ "rsrp" : -30,
+ "advertisedNetworkGen" : "2g, 3g, 4g, 5g",
+ "rscp" : -30,
+ "networkGen" : "2g, 3g, 4g, 5g",
+ "networkSubtype" : "LTE/HSPA",
+ "sinr" : 20
+ },
"score" : {
"applicationScore" : 100.0,
"quality" : "great"
diff --git a/endpoint-test-results/src/test/java/com/thousandeyes/sdk/endpoint/tests/results/LocalNetworkEndpointTestResultsApiTest.java b/endpoint-test-results/src/test/java/com/thousandeyes/sdk/endpoint/tests/results/LocalNetworkEndpointTestResultsApiTest.java
index 49528bf04..66e734e24 100644
--- a/endpoint-test-results/src/test/java/com/thousandeyes/sdk/endpoint/tests/results/LocalNetworkEndpointTestResultsApiTest.java
+++ b/endpoint-test-results/src/test/java/com/thousandeyes/sdk/endpoint/tests/results/LocalNetworkEndpointTestResultsApiTest.java
@@ -158,9 +158,26 @@ public void filterLocalNetworksTestResultsTopologiesRequestAndResponseDeserializ
"score" : 100.0,
"quality" : "great"
},
+ "batteryMetrics" : {
+ "batteryLevel" : "medium",
+ "batteryLevelNormalizedPercent" : 0.3
+ },
"type" : "vpn",
"targetPort" : 80,
+ "platform" : "mac",
"target" : "10.0.2.2",
+ "cellularProfile" : {
+ "rssi" : -10,
+ "advertisedNetworkSubtype" : "LTE/HSPA",
+ "carrierName" : "T-Mobile",
+ "rsrq" : -30,
+ "rsrp" : -30,
+ "advertisedNetworkGen" : "2g, 3g, 4g, 5g",
+ "rscp" : -30,
+ "networkGen" : "2g, 3g, 4g, 5g",
+ "networkSubtype" : "LTE/HSPA",
+ "sinr" : 20
+ },
"systemMetrics" : {
"cpuUtilization" : {
"min" : 0.22,
@@ -301,9 +318,26 @@ public void filterLocalNetworksTestResultsTopologiesRequestAndResponseDeserializ
"score" : 100.0,
"quality" : "great"
},
+ "batteryMetrics" : {
+ "batteryLevel" : "medium",
+ "batteryLevelNormalizedPercent" : 0.3
+ },
"type" : "vpn",
"targetPort" : 80,
+ "platform" : "mac",
"target" : "10.0.2.2",
+ "cellularProfile" : {
+ "rssi" : -10,
+ "advertisedNetworkSubtype" : "LTE/HSPA",
+ "carrierName" : "T-Mobile",
+ "rsrq" : -30,
+ "rsrp" : -30,
+ "advertisedNetworkGen" : "2g, 3g, 4g, 5g",
+ "rscp" : -30,
+ "networkGen" : "2g, 3g, 4g, 5g",
+ "networkSubtype" : "LTE/HSPA",
+ "sinr" : 20
+ },
"systemMetrics" : {
"cpuUtilization" : {
"min" : 0.22,
@@ -559,6 +593,10 @@ public void getLocalNetworksTestResultsTopologyRequestAndResponseDeserialization
"location" : "Slovenia",
"longitude" : 14.5144444
},
+ "batteryMetrics" : {
+ "batteryLevel" : "medium",
+ "batteryLevelNormalizedPercent" : 0.3
+ },
"icmpTraceroutes" : [ {
"destination" : "13.32.22.232",
"hops" : [ {
@@ -606,7 +644,20 @@ public void getLocalNetworksTestResultsTopologyRequestAndResponseDeserialization
} ],
"type" : "vpn",
"targetPort" : 80,
+ "platform" : "mac",
"target" : "10.0.2.2",
+ "cellularProfile" : {
+ "rssi" : -10,
+ "advertisedNetworkSubtype" : "LTE/HSPA",
+ "carrierName" : "T-Mobile",
+ "rsrq" : -30,
+ "rsrp" : -30,
+ "advertisedNetworkGen" : "2g, 3g, 4g, 5g",
+ "rscp" : -30,
+ "networkGen" : "2g, 3g, 4g, 5g",
+ "networkSubtype" : "LTE/HSPA",
+ "sinr" : 20
+ },
"systemMetrics" : {
"cpuUtilization" : {
"min" : 0.22,
@@ -821,6 +872,10 @@ public void getLocalNetworksTestResultsTopologyRequestAndResponseDeserialization
"location" : "Slovenia",
"longitude" : 14.5144444
},
+ "batteryMetrics" : {
+ "batteryLevel" : "medium",
+ "batteryLevelNormalizedPercent" : 0.3
+ },
"icmpTraceroutes" : [ {
"destination" : "13.32.22.232",
"hops" : [ {
@@ -868,7 +923,20 @@ public void getLocalNetworksTestResultsTopologyRequestAndResponseDeserialization
} ],
"type" : "vpn",
"targetPort" : 80,
+ "platform" : "mac",
"target" : "10.0.2.2",
+ "cellularProfile" : {
+ "rssi" : -10,
+ "advertisedNetworkSubtype" : "LTE/HSPA",
+ "carrierName" : "T-Mobile",
+ "rsrq" : -30,
+ "rsrp" : -30,
+ "advertisedNetworkGen" : "2g, 3g, 4g, 5g",
+ "rscp" : -30,
+ "networkGen" : "2g, 3g, 4g, 5g",
+ "networkSubtype" : "LTE/HSPA",
+ "sinr" : 20
+ },
"systemMetrics" : {
"cpuUtilization" : {
"min" : 0.22,
diff --git a/endpoint-test-results/src/test/java/com/thousandeyes/sdk/endpoint/tests/results/NetworkDynamicEndpointTestResultsApiTest.java b/endpoint-test-results/src/test/java/com/thousandeyes/sdk/endpoint/tests/results/NetworkDynamicEndpointTestResultsApiTest.java
index dc1733ead..639243fb7 100644
--- a/endpoint-test-results/src/test/java/com/thousandeyes/sdk/endpoint/tests/results/NetworkDynamicEndpointTestResultsApiTest.java
+++ b/endpoint-test-results/src/test/java/com/thousandeyes/sdk/endpoint/tests/results/NetworkDynamicEndpointTestResultsApiTest.java
@@ -193,10 +193,7 @@ public void filterDynamicTestNetworkResultsRequestAndResponseDeserializationTest
"remotePort" : 80,
"remoteIpAddress" : "120.98.134.7"
},
- "udpProbeMode" : "unknown",
"agentId" : "861b7557-cd57-4bbb-b648-00bddf88ef49",
- "isIcmpBlocked" : true,
- "avgLatency" : 167.04,
"minLatency" : 167.0,
"vpnProfile" : {
"vpnClientNetworkRange" : [ "9.88.37.27", "9.88.37.27" ],
@@ -205,41 +202,33 @@ public void filterDynamicTestNetworkResultsRequestAndResponseDeserializationTest
"vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ]
},
"maxLatency" : 168.0,
+ "batteryMetrics" : {
+ "batteryLevel" : "medium",
+ "batteryLevelNormalizedPercent" : 0.3
+ },
"userProfile" : {
"userName" : "joeblogs32",
"userPrincipalName" : "joeblogs32@c.com"
},
- "tcpProbeMode" : "auto",
+ "platform" : "mac",
+ "cellularProfile" : {
+ "rssi" : -10,
+ "advertisedNetworkSubtype" : "LTE/HSPA",
+ "carrierName" : "T-Mobile",
+ "rsrq" : -30,
+ "rsrp" : -30,
+ "advertisedNetworkGen" : "2g, 3g, 4g, 5g",
+ "rscp" : -30,
+ "networkGen" : "2g, 3g, 4g, 5g",
+ "networkSubtype" : "LTE/HSPA",
+ "sinr" : 20
+ },
"score" : {
"applicationScore" : 100.0,
"quality" : "great"
},
"loss" : 0.0,
"protocol" : "tcp",
- "systemMetrics" : {
- "cpuUtilization" : {
- "min" : 0.22,
- "median" : 0.61,
- "max" : 0.75,
- "mean" : 0.55,
- "count" : 150,
- "stdDev" : 0.01
- },
- "physicalMemoryTotalBytes" : 1024,
- "startTimeMs" : 1581508857327,
- "physicalMemoryUsedBytes" : {
- "min" : 1.2,
- "median" : 1.85,
- "max" : 2.5,
- "mean" : 1.77,
- "count" : 155,
- "stdDev" : 0.25
- },
- "endTimeMs" : 1581508867333
- },
- "jitter" : 0.076808,
- "application" : "webex",
- "serverIp" : "185.199.108.153",
"networkProfile" : {
"previousInterface" : {
"publicIpAddress" : "84.255.241.1",
@@ -299,6 +288,35 @@ public void filterDynamicTestNetworkResultsRequestAndResponseDeserializationTest
"errorMessage" : "ERR_NAME_NOT_RESOLVED",
"type" : "zta_service"
} ],
+ "roundId" : 1384309800,
+ "udpProbeMode" : "unknown",
+ "isIcmpBlocked" : true,
+ "avgLatency" : 167.04,
+ "tcpProbeMode" : "auto",
+ "systemMetrics" : {
+ "cpuUtilization" : {
+ "min" : 0.22,
+ "median" : 0.61,
+ "max" : 0.75,
+ "mean" : 0.55,
+ "count" : 150,
+ "stdDev" : 0.01
+ },
+ "physicalMemoryTotalBytes" : 1024,
+ "startTimeMs" : 1581508857327,
+ "physicalMemoryUsedBytes" : {
+ "min" : 1.2,
+ "median" : 1.85,
+ "max" : 2.5,
+ "mean" : 1.77,
+ "count" : 155,
+ "stdDev" : 0.25
+ },
+ "endTimeMs" : 1581508867333
+ },
+ "jitter" : 0.076808,
+ "application" : "webex",
+ "serverIp" : "185.199.108.153",
"testId" : "584739201",
"webex" : {
"remoteSipSessionId" : "22581707460321454",
@@ -307,7 +325,6 @@ public void filterDynamicTestNetworkResultsRequestAndResponseDeserializationTest
"correlationId" : "22581707460321454"
},
"aid" : "1234",
- "roundId" : 1384309800,
"errorDetails" : "Error"
}, {
"originalTargetProfile" : {
@@ -315,10 +332,7 @@ public void filterDynamicTestNetworkResultsRequestAndResponseDeserializationTest
"remotePort" : 80,
"remoteIpAddress" : "120.98.134.7"
},
- "udpProbeMode" : "unknown",
"agentId" : "861b7557-cd57-4bbb-b648-00bddf88ef49",
- "isIcmpBlocked" : true,
- "avgLatency" : 167.04,
"minLatency" : 167.0,
"vpnProfile" : {
"vpnClientNetworkRange" : [ "9.88.37.27", "9.88.37.27" ],
@@ -327,41 +341,33 @@ public void filterDynamicTestNetworkResultsRequestAndResponseDeserializationTest
"vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ]
},
"maxLatency" : 168.0,
+ "batteryMetrics" : {
+ "batteryLevel" : "medium",
+ "batteryLevelNormalizedPercent" : 0.3
+ },
"userProfile" : {
"userName" : "joeblogs32",
"userPrincipalName" : "joeblogs32@c.com"
},
- "tcpProbeMode" : "auto",
+ "platform" : "mac",
+ "cellularProfile" : {
+ "rssi" : -10,
+ "advertisedNetworkSubtype" : "LTE/HSPA",
+ "carrierName" : "T-Mobile",
+ "rsrq" : -30,
+ "rsrp" : -30,
+ "advertisedNetworkGen" : "2g, 3g, 4g, 5g",
+ "rscp" : -30,
+ "networkGen" : "2g, 3g, 4g, 5g",
+ "networkSubtype" : "LTE/HSPA",
+ "sinr" : 20
+ },
"score" : {
"applicationScore" : 100.0,
"quality" : "great"
},
"loss" : 0.0,
"protocol" : "tcp",
- "systemMetrics" : {
- "cpuUtilization" : {
- "min" : 0.22,
- "median" : 0.61,
- "max" : 0.75,
- "mean" : 0.55,
- "count" : 150,
- "stdDev" : 0.01
- },
- "physicalMemoryTotalBytes" : 1024,
- "startTimeMs" : 1581508857327,
- "physicalMemoryUsedBytes" : {
- "min" : 1.2,
- "median" : 1.85,
- "max" : 2.5,
- "mean" : 1.77,
- "count" : 155,
- "stdDev" : 0.25
- },
- "endTimeMs" : 1581508867333
- },
- "jitter" : 0.076808,
- "application" : "webex",
- "serverIp" : "185.199.108.153",
"networkProfile" : {
"previousInterface" : {
"publicIpAddress" : "84.255.241.1",
@@ -421,6 +427,35 @@ public void filterDynamicTestNetworkResultsRequestAndResponseDeserializationTest
"errorMessage" : "ERR_NAME_NOT_RESOLVED",
"type" : "zta_service"
} ],
+ "roundId" : 1384309800,
+ "udpProbeMode" : "unknown",
+ "isIcmpBlocked" : true,
+ "avgLatency" : 167.04,
+ "tcpProbeMode" : "auto",
+ "systemMetrics" : {
+ "cpuUtilization" : {
+ "min" : 0.22,
+ "median" : 0.61,
+ "max" : 0.75,
+ "mean" : 0.55,
+ "count" : 150,
+ "stdDev" : 0.01
+ },
+ "physicalMemoryTotalBytes" : 1024,
+ "startTimeMs" : 1581508857327,
+ "physicalMemoryUsedBytes" : {
+ "min" : 1.2,
+ "median" : 1.85,
+ "max" : 2.5,
+ "mean" : 1.77,
+ "count" : 155,
+ "stdDev" : 0.25
+ },
+ "endTimeMs" : 1581508867333
+ },
+ "jitter" : 0.076808,
+ "application" : "webex",
+ "serverIp" : "185.199.108.153",
"testId" : "584739201",
"webex" : {
"remoteSipSessionId" : "22581707460321454",
@@ -429,7 +464,6 @@ public void filterDynamicTestNetworkResultsRequestAndResponseDeserializationTest
"correlationId" : "22581707460321454"
},
"aid" : "1234",
- "roundId" : 1384309800,
"errorDetails" : "Error"
} ],
"startDate" : "2022-07-17T22:00:54Z"
@@ -553,12 +587,29 @@ public void getDynamicTestPathVisAgentRoundResultsRequestAndResponseDeserializat
"vpnType" : "cisco-anyconnect",
"vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ]
},
+ "batteryMetrics" : {
+ "batteryLevel" : "medium",
+ "batteryLevelNormalizedPercent" : 0.3
+ },
"sourcePrefix" : "196.40.96.0/20",
"userProfile" : {
"userName" : "joeblogs32",
"userPrincipalName" : "joeblogs32@c.com"
},
+ "platform" : "mac",
"tcpProbeMode" : "auto",
+ "cellularProfile" : {
+ "rssi" : -10,
+ "advertisedNetworkSubtype" : "LTE/HSPA",
+ "carrierName" : "T-Mobile",
+ "rsrq" : -30,
+ "rsrp" : -30,
+ "advertisedNetworkGen" : "2g, 3g, 4g, 5g",
+ "rscp" : -30,
+ "networkGen" : "2g, 3g, 4g, 5g",
+ "networkSubtype" : "LTE/HSPA",
+ "sinr" : 20
+ },
"protocol" : "tcp",
"systemMetrics" : {
"cpuUtilization" : {
@@ -748,12 +799,29 @@ public void getDynamicTestPathVisAgentRoundResultsRequestAndResponseDeserializat
"vpnType" : "cisco-anyconnect",
"vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ]
},
+ "batteryMetrics" : {
+ "batteryLevel" : "medium",
+ "batteryLevelNormalizedPercent" : 0.3
+ },
"sourcePrefix" : "196.40.96.0/20",
"userProfile" : {
"userName" : "joeblogs32",
"userPrincipalName" : "joeblogs32@c.com"
},
+ "platform" : "mac",
"tcpProbeMode" : "auto",
+ "cellularProfile" : {
+ "rssi" : -10,
+ "advertisedNetworkSubtype" : "LTE/HSPA",
+ "carrierName" : "T-Mobile",
+ "rsrq" : -30,
+ "rsrp" : -30,
+ "advertisedNetworkGen" : "2g, 3g, 4g, 5g",
+ "rscp" : -30,
+ "networkGen" : "2g, 3g, 4g, 5g",
+ "networkSubtype" : "LTE/HSPA",
+ "sinr" : 20
+ },
"protocol" : "tcp",
"systemMetrics" : {
"cpuUtilization" : {
@@ -1055,12 +1123,29 @@ public void getDynamicTestPathVisResultsRequestAndResponseDeserializationTest()
"vpnType" : "cisco-anyconnect",
"vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ]
},
+ "batteryMetrics" : {
+ "batteryLevel" : "medium",
+ "batteryLevelNormalizedPercent" : 0.3
+ },
"sourcePrefix" : "196.40.96.0/20",
"userProfile" : {
"userName" : "joeblogs32",
"userPrincipalName" : "joeblogs32@c.com"
},
+ "platform" : "mac",
"tcpProbeMode" : "auto",
+ "cellularProfile" : {
+ "rssi" : -10,
+ "advertisedNetworkSubtype" : "LTE/HSPA",
+ "carrierName" : "T-Mobile",
+ "rsrq" : -30,
+ "rsrp" : -30,
+ "advertisedNetworkGen" : "2g, 3g, 4g, 5g",
+ "rscp" : -30,
+ "networkGen" : "2g, 3g, 4g, 5g",
+ "networkSubtype" : "LTE/HSPA",
+ "sinr" : 20
+ },
"protocol" : "tcp",
"systemMetrics" : {
"cpuUtilization" : {
@@ -1178,12 +1263,29 @@ public void getDynamicTestPathVisResultsRequestAndResponseDeserializationTest()
"vpnType" : "cisco-anyconnect",
"vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ]
},
+ "batteryMetrics" : {
+ "batteryLevel" : "medium",
+ "batteryLevelNormalizedPercent" : 0.3
+ },
"sourcePrefix" : "196.40.96.0/20",
"userProfile" : {
"userName" : "joeblogs32",
"userPrincipalName" : "joeblogs32@c.com"
},
+ "platform" : "mac",
"tcpProbeMode" : "auto",
+ "cellularProfile" : {
+ "rssi" : -10,
+ "advertisedNetworkSubtype" : "LTE/HSPA",
+ "carrierName" : "T-Mobile",
+ "rsrq" : -30,
+ "rsrp" : -30,
+ "advertisedNetworkGen" : "2g, 3g, 4g, 5g",
+ "rscp" : -30,
+ "networkGen" : "2g, 3g, 4g, 5g",
+ "networkSubtype" : "LTE/HSPA",
+ "sinr" : 20
+ },
"protocol" : "tcp",
"systemMetrics" : {
"cpuUtilization" : {
diff --git a/endpoint-test-results/src/test/java/com/thousandeyes/sdk/endpoint/tests/results/NetworkEndpointScheduledTestResultsApiTest.java b/endpoint-test-results/src/test/java/com/thousandeyes/sdk/endpoint/tests/results/NetworkEndpointScheduledTestResultsApiTest.java
index 9bd772de3..a221c3a56 100644
--- a/endpoint-test-results/src/test/java/com/thousandeyes/sdk/endpoint/tests/results/NetworkEndpointScheduledTestResultsApiTest.java
+++ b/endpoint-test-results/src/test/java/com/thousandeyes/sdk/endpoint/tests/results/NetworkEndpointScheduledTestResultsApiTest.java
@@ -207,10 +207,27 @@ public void filterScheduledTestNetworkResultsRequestAndResponseDeserializationTe
"vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ]
},
"maxLatency" : 168.0,
+ "batteryMetrics" : {
+ "batteryLevel" : "medium",
+ "batteryLevelNormalizedPercent" : 0.3
+ },
"userProfile" : {
"userName" : "joeblogs32",
"userPrincipalName" : "joeblogs32@c.com"
},
+ "platform" : "mac",
+ "cellularProfile" : {
+ "rssi" : -10,
+ "advertisedNetworkSubtype" : "LTE/HSPA",
+ "carrierName" : "T-Mobile",
+ "rsrq" : -30,
+ "rsrp" : -30,
+ "advertisedNetworkGen" : "2g, 3g, 4g, 5g",
+ "rscp" : -30,
+ "networkGen" : "2g, 3g, 4g, 5g",
+ "networkSubtype" : "LTE/HSPA",
+ "sinr" : 20
+ },
"score" : {
"applicationScore" : 100.0,
"quality" : "great"
@@ -319,10 +336,27 @@ public void filterScheduledTestNetworkResultsRequestAndResponseDeserializationTe
"vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ]
},
"maxLatency" : 168.0,
+ "batteryMetrics" : {
+ "batteryLevel" : "medium",
+ "batteryLevelNormalizedPercent" : 0.3
+ },
"userProfile" : {
"userName" : "joeblogs32",
"userPrincipalName" : "joeblogs32@c.com"
},
+ "platform" : "mac",
+ "cellularProfile" : {
+ "rssi" : -10,
+ "advertisedNetworkSubtype" : "LTE/HSPA",
+ "carrierName" : "T-Mobile",
+ "rsrq" : -30,
+ "rsrp" : -30,
+ "advertisedNetworkGen" : "2g, 3g, 4g, 5g",
+ "rscp" : -30,
+ "networkGen" : "2g, 3g, 4g, 5g",
+ "networkSubtype" : "LTE/HSPA",
+ "sinr" : 20
+ },
"score" : {
"applicationScore" : 100.0,
"quality" : "great"
@@ -516,10 +550,27 @@ public void filterScheduledTestsNetworkResultsRequestAndResponseDeserializationT
"vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ]
},
"maxLatency" : 168.0,
+ "batteryMetrics" : {
+ "batteryLevel" : "medium",
+ "batteryLevelNormalizedPercent" : 0.3
+ },
"userProfile" : {
"userName" : "joeblogs32",
"userPrincipalName" : "joeblogs32@c.com"
},
+ "platform" : "mac",
+ "cellularProfile" : {
+ "rssi" : -10,
+ "advertisedNetworkSubtype" : "LTE/HSPA",
+ "carrierName" : "T-Mobile",
+ "rsrq" : -30,
+ "rsrp" : -30,
+ "advertisedNetworkGen" : "2g, 3g, 4g, 5g",
+ "rscp" : -30,
+ "networkGen" : "2g, 3g, 4g, 5g",
+ "networkSubtype" : "LTE/HSPA",
+ "sinr" : 20
+ },
"score" : {
"applicationScore" : 100.0,
"quality" : "great"
@@ -628,10 +679,27 @@ public void filterScheduledTestsNetworkResultsRequestAndResponseDeserializationT
"vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ]
},
"maxLatency" : 168.0,
+ "batteryMetrics" : {
+ "batteryLevel" : "medium",
+ "batteryLevelNormalizedPercent" : 0.3
+ },
"userProfile" : {
"userName" : "joeblogs32",
"userPrincipalName" : "joeblogs32@c.com"
},
+ "platform" : "mac",
+ "cellularProfile" : {
+ "rssi" : -10,
+ "advertisedNetworkSubtype" : "LTE/HSPA",
+ "carrierName" : "T-Mobile",
+ "rsrq" : -30,
+ "rsrp" : -30,
+ "advertisedNetworkGen" : "2g, 3g, 4g, 5g",
+ "rscp" : -30,
+ "networkGen" : "2g, 3g, 4g, 5g",
+ "networkSubtype" : "LTE/HSPA",
+ "sinr" : 20
+ },
"score" : {
"applicationScore" : 100.0,
"quality" : "great"
@@ -844,11 +912,28 @@ public void getScheduledTestPathVisAgentRoundResultsRequestAndResponseDeserializ
"vpnType" : "cisco-anyconnect",
"vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ]
},
+ "batteryMetrics" : {
+ "batteryLevel" : "medium",
+ "batteryLevelNormalizedPercent" : 0.3
+ },
"sourcePrefix" : "196.40.96.0/20",
"userProfile" : {
"userName" : "joeblogs32",
"userPrincipalName" : "joeblogs32@c.com"
},
+ "platform" : "mac",
+ "cellularProfile" : {
+ "rssi" : -10,
+ "advertisedNetworkSubtype" : "LTE/HSPA",
+ "carrierName" : "T-Mobile",
+ "rsrq" : -30,
+ "rsrp" : -30,
+ "advertisedNetworkGen" : "2g, 3g, 4g, 5g",
+ "rscp" : -30,
+ "networkGen" : "2g, 3g, 4g, 5g",
+ "networkSubtype" : "LTE/HSPA",
+ "sinr" : 20
+ },
"systemMetrics" : {
"cpuUtilization" : {
"min" : 0.22,
@@ -1029,11 +1114,28 @@ public void getScheduledTestPathVisAgentRoundResultsRequestAndResponseDeserializ
"vpnType" : "cisco-anyconnect",
"vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ]
},
+ "batteryMetrics" : {
+ "batteryLevel" : "medium",
+ "batteryLevelNormalizedPercent" : 0.3
+ },
"sourcePrefix" : "196.40.96.0/20",
"userProfile" : {
"userName" : "joeblogs32",
"userPrincipalName" : "joeblogs32@c.com"
},
+ "platform" : "mac",
+ "cellularProfile" : {
+ "rssi" : -10,
+ "advertisedNetworkSubtype" : "LTE/HSPA",
+ "carrierName" : "T-Mobile",
+ "rsrq" : -30,
+ "rsrp" : -30,
+ "advertisedNetworkGen" : "2g, 3g, 4g, 5g",
+ "rscp" : -30,
+ "networkGen" : "2g, 3g, 4g, 5g",
+ "networkSubtype" : "LTE/HSPA",
+ "sinr" : 20
+ },
"systemMetrics" : {
"cpuUtilization" : {
"min" : 0.22,
@@ -1326,11 +1428,28 @@ public void getScheduledTestPathVisResultsRequestAndResponseDeserializationTest(
"vpnType" : "cisco-anyconnect",
"vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ]
},
+ "batteryMetrics" : {
+ "batteryLevel" : "medium",
+ "batteryLevelNormalizedPercent" : 0.3
+ },
"sourcePrefix" : "196.40.96.0/20",
"userProfile" : {
"userName" : "joeblogs32",
"userPrincipalName" : "joeblogs32@c.com"
},
+ "platform" : "mac",
+ "cellularProfile" : {
+ "rssi" : -10,
+ "advertisedNetworkSubtype" : "LTE/HSPA",
+ "carrierName" : "T-Mobile",
+ "rsrq" : -30,
+ "rsrp" : -30,
+ "advertisedNetworkGen" : "2g, 3g, 4g, 5g",
+ "rscp" : -30,
+ "networkGen" : "2g, 3g, 4g, 5g",
+ "networkSubtype" : "LTE/HSPA",
+ "sinr" : 20
+ },
"systemMetrics" : {
"cpuUtilization" : {
"min" : 0.22,
@@ -1439,11 +1558,28 @@ public void getScheduledTestPathVisResultsRequestAndResponseDeserializationTest(
"vpnType" : "cisco-anyconnect",
"vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ]
},
+ "batteryMetrics" : {
+ "batteryLevel" : "medium",
+ "batteryLevelNormalizedPercent" : 0.3
+ },
"sourcePrefix" : "196.40.96.0/20",
"userProfile" : {
"userName" : "joeblogs32",
"userPrincipalName" : "joeblogs32@c.com"
},
+ "platform" : "mac",
+ "cellularProfile" : {
+ "rssi" : -10,
+ "advertisedNetworkSubtype" : "LTE/HSPA",
+ "carrierName" : "T-Mobile",
+ "rsrq" : -30,
+ "rsrp" : -30,
+ "advertisedNetworkGen" : "2g, 3g, 4g, 5g",
+ "rscp" : -30,
+ "networkGen" : "2g, 3g, 4g, 5g",
+ "networkSubtype" : "LTE/HSPA",
+ "sinr" : 20
+ },
"systemMetrics" : {
"cpuUtilization" : {
"min" : 0.22,
diff --git a/endpoint-tests/README.md b/endpoint-tests/README.md
index acba20455..ed7710d8e 100644
--- a/endpoint-tests/README.md
+++ b/endpoint-tests/README.md
@@ -2,7 +2,7 @@
Endpoint Tests API
-- API version: 7.0.75
+- API version: 7.0.78
Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API.
diff --git a/event-detection/README.md b/event-detection/README.md
index 17c4932d6..59c10abda 100644
--- a/event-detection/README.md
+++ b/event-detection/README.md
@@ -2,7 +2,7 @@
Event Detection API
-- API version: 7.0.75
+- API version: 7.0.78
Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events.
diff --git a/instant-tests/README.md b/instant-tests/README.md
index 2b40a58db..56c7753c7 100644
--- a/instant-tests/README.md
+++ b/instant-tests/README.md
@@ -2,7 +2,7 @@
Instant Tests API
-- API version: 7.0.75
+- API version: 7.0.78
The Instant Tests API operations lets you create and run new instant tests. You will need to be an Account Admin.
diff --git a/internet-insights/README.md b/internet-insights/README.md
index bcdf1c160..c6ff0eb5b 100644
--- a/internet-insights/README.md
+++ b/internet-insights/README.md
@@ -2,7 +2,7 @@
Internet Insights API
-- API version: 7.0.75
+- API version: 7.0.78
We are happy to announce the release of the Internet Insights API set. This limited release includes endpoints that:
diff --git a/snapshots/README.md b/snapshots/README.md
index 74ade13de..4eeba5554 100644
--- a/snapshots/README.md
+++ b/snapshots/README.md
@@ -2,7 +2,7 @@
Test Snapshots API
-- API version: 7.0.75
+- API version: 7.0.78
Creates a new test snapshot in ThousandEyes.
diff --git a/streaming/README.md b/streaming/README.md
index 3c9f99902..f8ab5d3dc 100644
--- a/streaming/README.md
+++ b/streaming/README.md
@@ -2,7 +2,7 @@
ThousandEyes for OpenTelemetry API
-- API version: 7.0.75
+- API version: 7.0.78
ThousandEyes for OpenTelemetry provides machine-to-machine integration between ThousandEyes and its customers. It allows you to export ThousandEyes telemetry data in OTel format, which is widely used in the industry. With ThousandEyes for OTel, you can leverage frameworks widely used in the observability domain - such as Splunk, Grafana, and Honeycomb - to capture and analyze ThousandEyes data. Any client that supports OTel can use ThousandEyes for OpenTelemetry.
diff --git a/tags/README.md b/tags/README.md
index 3f34553cb..42d86d26c 100644
--- a/tags/README.md
+++ b/tags/README.md
@@ -2,7 +2,7 @@
Tags API
-- API version: 7.0.75
+- API version: 7.0.78
The ThousandEyes Tags API provides a tagging system with key/value pairs. It allows you to tag assets within the ThousandEyes platform (such as agents, tests, or dashboards) with meaningful metadata. For example: `branch:sfo`, `branch:nyc`, and `team:netops`.
diff --git a/test-results/README.md b/test-results/README.md
index 985531bd6..1340e51aa 100644
--- a/test-results/README.md
+++ b/test-results/README.md
@@ -2,7 +2,7 @@
Test Results API
-- API version: 7.0.75
+- API version: 7.0.78
Get test result metrics for Network and Application Synthetics tests.
diff --git a/tests/README.md b/tests/README.md
index 86b09b2de..ffc332363 100644
--- a/tests/README.md
+++ b/tests/README.md
@@ -2,7 +2,7 @@
Tests API
-- API version: 7.0.75
+- API version: 7.0.78
This API allows you to list, create, edit, and delete Network and Application Synthetics tests.
diff --git a/usage/README.md b/usage/README.md
index 4c15bf412..15d5c4459 100644
--- a/usage/README.md
+++ b/usage/README.md
@@ -2,7 +2,7 @@
Usage API
-- API version: 7.0.75
+- API version: 7.0.78
These usage endpoints define the following operations: