---
updatedAt: 2026-09-04T07:06:15.000Z
agentTools:
  projectIndex: https://documentation.indigitall.com/llms.txt
---

# Update  A/B testing with the given test's id

Update the data of the selected A/B testing. The data to be modified is passed through the A/B testing object

# OpenAPI definition

````json
{
  "openapi": "3.0.0",
  "info": {
    "version": "1.0.0",
    "title": "INDIGITALL API v1",
    "x-gateway-endpoint": "accountService",
    "description": "### Introduction\nThis documentation describes the interface of Indigitall's API version 1.\n<ins>API BASE URL:</ins> https://api.indigitall.com/v1\n### Authentication\nEvery request to this API needs an Authorization header.\nThere are two Authorization ways:\n- If your intention is to manage API calls with a server-side script you have to create a Server key through Indigitall's console.\n\n  You can set the following Authorization Header :\n  ```\n  Authorization: ServerKey {ServerKey}\n  ```\n- If your intention is to integrate this API for front-end users POST /auth endpoint authorizes a user and returns an access token.\n\n  You can set the following Authorization Header :\n  ```\n  Authorization: Bearer {Token}\n  ```\n\n### Support\nFor further information or if you need support you can contact with support@indigitall.com\n"
  },
  "tags": [
    {
      "name": "A/B Testing",
      "description": "Endpoints for A/B Testing"
    }
  ],
  "security": [
    {
      "Authorization": []
    }
  ],
  "paths": {
    "/test/{id}": {
      "parameters": [
        {
          "in": "path",
          "name": "id",
          "required": true,
          "description": "test's id",
          "schema": {
            "type": "integer"
          }
        }
      ],
      "put": {
        "summary": "Update  A/B testing with the given test's id",
        "description": "Update the data of the selected A/B testing. The data to be modified is passed through the A/B testing object",
        "x-gateway-endpoint": "pushService",
        "operationId": "putTest",
        "tags": [
          "A/B Testing"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/TestPutRequest"
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TestResponse"
                }
              }
            }
          },
          "400": {
            "description": "Parameters missing or not in right format",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Invalid credentials",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Operation forbidden for your user",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Campaign not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    }
  },
  "servers": [
    {
      "url": "https://api.indigitall.com/v1"
    }
  ],
  "components": {
    "securitySchemes": {
      "Authorization": {
        "type": "apiKey",
        "in": "header",
        "name": "Authorization",
        "description": "Authorization for accesing endpoints , must be in one of the following format:\n- **Bearer {token}**\n- **ServerKey {key}**\n"
      }
    },
    "schemas": {
      "ErrorResponse": {
        "required": [
          "statusCode",
          "message"
        ],
        "properties": {
          "statusCode": {
            "type": "integer",
            "description": "Response code"
          },
          "errorCode": {
            "type": "string",
            "enum": [
              "AUTH_ERROR",
              "TOO_MANY_REQUESTS",
              "IP_WHITELIST",
              "PS_INTERNAL_ERROR",
              "PS_FORBIDDEN",
              "PS_BAD_REQUEST",
              "PS_ARGUMENTS",
              "PS_DATE_FORMAT",
              "PS_DATE_RANGE",
              "PS_DATE_RANGE_MAX",
              "PS_INVALID_TOPIC_CODE",
              "PS_TOPIC_NOT_FOUND",
              "PS_APPLICATION_NOT_FOUND",
              "PS_CAMPAIGN_NOT_FOUND",
              "PS_TEST_NOT_FOUND",
              "PS_MULTITEST_NOT_FOUND",
              "PS_SENDING_NOT_FOUND",
              "PS_SENDING_ALREADY_CANCELLED",
              "PS_CSV_EMPTY",
              "PS_CSV_FIELD_NOT_FOUND",
              "PS_CSV_SIZE",
              "PS_BAD_CSV_FORMAT",
              "PS_CAMPAIGN_TIMEZONE",
              "PS_CAMPAIGN_ACTION",
              "PS_CAMPAIGN_BUTTON",
              "PS_CAMPAIGN_TRIGGER",
              "PS_CAMPAIGN_OVERWRITE_PROPERTIES",
              "PS_CAMPAIGN_BAD_VIDEO",
              "PS_CAMPAIGN_BAD_VIDEO_TYPE",
              "PS_CAMPAIGN_BAD_VIDEO_SIZE",
              "PS_CAMPAIGN_BAD_VIDEO_SIZE_AFTER_CONVERSION",
              "PS_CAMPAIGN_BAD_ICON_TYPE",
              "PS_CAMPAIGN_BAD_ICON_SIZE",
              "PS_CAMPAIGN_TARGETS",
              "PS_FEATURE_GEOFENCING_DISABLED",
              "PS_FEATURE_NETWORK_DISABLED",
              "PS_MULTITEST_INVALID",
              "PS_MULTITEST_ALREADY_SENT",
              "PS_BAD_IMAGE_TYPE",
              "PS_BAD_IMAGE_SIZE",
              "PS_CAMPAIGN_CUSTOMER_SERVICE",
              "PS_CAMPAIGN_CUSTOMER_SERVICE_SENDING",
              "PS_CAMPAIGN_INVALID_CATEGORY_ID",
              "PS_EXTRACT_META_PARSE_HTML_ERROR",
              "PS_AUDIENCE_CJ_NOT_FOUND",
              "AS_INTERNAL_ERROR",
              "AS_FORBIDDEN",
              "AS_BAD_REQUEST",
              "AS_LIMIT_EXCEEDED",
              "AS_INVALID_CREDENTIALS",
              "AS_ELEMENT_NOT_FOUND",
              "AS_LOCKED_INACTIVITY",
              "AS_LOCKED_EXPIRED_PASSWORD",
              "AS_LOCKED_TOO_MANY_LOGIN_ATTEMPTS",
              "AS_APPLICATION_NOT_FOUND",
              "AS_ACCOUNT_NOT_FOUND",
              "AS_EXTERNAL_APP_NOT_FOUND",
              "AS_AREA_NOT_FOUND",
              "AS_WEB_ANALYTIC_NOT_FOUND",
              "AS_CATEGORY_NOT_FOUND",
              "AS_EXTERNAL_AUTH_NOT_FOUND",
              "AS_USER_NOT_FOUND",
              "AS_INTEGRATION_NOT_FOUND",
              "AS_PERMISSION_NOT_FOUND",
              "AS_ROLE_NOT_FOUND",
              "AS_IP_WHITELIST",
              "AS_CHAT_FEATURE_DISABLED",
              "AS_CONTACT_CENTER_FEATURE_DISABLED",
              "AS_RESOURCE_ALREADY_EXISTS",
              "AS_EMAIL_ALREADY_EXISTS",
              "AS_TOPIC_ALREADY_EXISTS",
              "AS_CATEGORY_ALREADY_EXISTS",
              "AS_USER_ALREADY_EXISTS",
              "AS_SAFARI_ID_ALREADY_EXISTS",
              "AS_EXTERNAL_AUTH_DATA_ALREADY_EXISTS",
              "AS_TOPIC_PARENT_NOT_FOUND",
              "AS_INVALID_CERTIFICATE",
              "AS_BAD_SAFARI_CONFIGURATION",
              "AS_BAD_HARMONY_CONFIGURATION",
              "AS_BAD_ANDROID_CONFIGURATION",
              "AS_BAD_REPORTING_CONFIGURATION",
              "AS_BAD_SLICING_CONFIGURATION",
              "AS_BAD_APP_CODE",
              "AS_BAD_TOPIC_CODE",
              "AS_BAD_IMAGE_TYPE",
              "AS_BAD_IMAGE_SIZE",
              "AS_BAD_CSV_FORMAT",
              "AS_BAD_EMAIL",
              "AS_PASSWORD_MANDATORY",
              "AS_PASSWORD_TOO_SHORT",
              "AS_PASSWORD_COMPLEXITY_NOT_MET",
              "AS_PASSWORD_PERSONAL_INFO",
              "AS_PASSWORD_REUSED",
              "AS_PASSWORD_MISMATCH",
              "AS_PASSWORD_SAME_OLD",
              "AS_PASSWORD_TOO_MANY_CHANGES",
              "PS_TEST_INVALID",
              "PS_TEST_ALREADY_SENT",
              "AS_ONLY_SUPER_ADMIN_PERMISSION",
              "AS_INVALID_METHOD",
              "AS_INVALID_TOTP",
              "AS_INVALID_TOKEN",
              "AS_CHAT_DOWNLOAD_ACCOUNTS_FEATURE_DISABLED",
              "AS_CHAT_V2_FEATURE_DISABLED",
              "AS_CHAT_V2_PERMISSION_PROFILE_NOT_FOUND",
              "AS_CHAT_V2_UPSTREAM_ERROR",
              "CS_CSV_NUMBER_OF_PARAMS",
              "CS_CSV_EMPTY_FILE",
              "CS_CSV_INVALID_CHANNEL",
              "CS_CSV_INVALID_CONTENT_TYPE",
              "CS_CSV_INVALID_PARAMETER",
              "CS_CSV_INVALID_TYPE",
              "CS_CSV_MISSING_FIELDS",
              "CS_CSV_EMPTY_FIELDS",
              "CS_DOWNLOAD_MULTIMEDIA_ERROR"
            ],
            "description": "Sort order:\n  * `AUTH_ERROR` - Authorization error\n  * `TOO_MANY_REQUESTS` - TOO_MANY_REQUESTS\n  * `IP_WHITELIST` - The ip with which you are trying to access the resource is not allowed\n  * `PS_INTERNAL_ERROR` - Internal Server Error\n  * `PS_FORBIDDEN` - Forbidden action\n  * `PS_BAD_REQUEST` - Generic bad request\n  * `PS_ARGUMENTS` - Error in any of the arguments\n  * `PS_DATE_FORMAT` - The specified date format is not correct\n  * `PS_DATE_RANGE` - It indicated a range of dates not allowed\n  * `PS_DATE_RANGE_MAX` - Indicates that the range between two dates exceeds the maximum limit\n  * `PS_INVALID_TOPIC_CODE` - The topic code has a wrong format\n  * `PS_TOPIC_NOT_FOUND` - The topic code has a wrong format\n  * `PS_APPLICATION_NOT_FOUND` - Application / project not found\n  * `PS_CAMPAIGN_NOT_FOUND` - Campaign not found\n  * `PS_CAMPAIGN_NOT_MODIFIABLE` - Campaign cannot be updated as it belongs to an initialized journey\n  * `PS_TEST_NOT_FOUND` - Test not found\n  * `PS_MULTITEST_NOT_FOUND` - Multitest not found\n  * `PS_SENDING_NOT_FOUND` - Sending not found\n  * `PS_SENDING_ALREADY_CANCELLED` - Sending already cancelled or has a past date scheduled\n  * `PS_CSV_EMPTY` - The CSV has a wrong format: it is empty\n  * `PS_CSV_FIELD_NOT_FOUND` - The CSV has a wrong format: a required field is missing\n  * `PS_CSV_SIZE` - The CSV has an impermissible size\n  * `PS_BAD_CSV_FORMAT` - Generic CSV format error\n  * `PS_CAMPAIGN_TIMEZONE` - The property Timezone camapaña has an incorrect value\n  * `PS_CAMPAIGN_ACTION` - There was an error trying to process the actions of the campaign\n  * `PS_CAMPAIGN_BUTTON` - There was an error trying to process the campaign buttons\n  * `PS_CAMPAIGN_TRIGGER` - There was an error trying to process the triggers of the campaign\n  * `PS_CAMPAIGN_OVERWRITE_PROPERTIES` - There was an error trying to process the properties overwrite campaign\n  * `PS_CAMPAIGN_BAD_VIDEO` - There was an error trying to process the video of the campaign\n  * `PS_CAMPAIGN_BAD_VIDEO_TYPE` - There was an error trying to process the video of the campaign. Video type is not allowed.\n  * `PS_CAMPAIGN_BAD_VIDEO_SIZE` - There was an error trying to process the video of the campaign. The size of the video exceeds the maximum allowable size.\n  * `PS_CAMPAIGN_BAD_VIDEO_SIZE_AFTER_CONVERSION` - There was an error trying to process the video of the campaign. The size of the video then convert it exceeds the maximum allowable size.\n  * `PS_CAMPAIGN_BAD_ICON_TYPE` - There was an error trying to process the icon of the campaign. The type of icon is invalid.\n  * `PS_CAMPAIGN_BAD_ICON_SIZE` - There was an error trying to process the icon of the campaign. The size of the icon is invalid.\n  * `PS_CAMPAIGN_TARGETS` - There was an error trying to process the targets of the campaign\n  * `PS_FEATURE_GEOFENCING_DISABLED` - The feature 'gefencing' is disabled for this account\n  * `PS_FEATURE_NETWORK_DISABLED` - The feature 'network' is disabled for this account\n  * `PS_MULTITEST_INVALID` - The test contains invalid data\n  * `PS_MULTITEST_ALREADY_SENT` - The multitest has already been sent\n  * `PS_BAD_IMAGE_TYPE` - Image has invalid format\n  * `PS_BAD_IMAGE_SIZE` - Image has invalid size\n  * `PS_TEST_INVALID` - This test is not valid on this endpoint or has invalid configuration\n  * `PS_TEST_ALREADY_SENT` - The test has already been sent\n  * `PS_CAMPAIGN_CUSTOMER_SERVICE` - Campaigns with the onlyCustomerService field set to true cannot use triggers or filtering other than platform\n  * `PS_CAMPAIGN_CUSTOMER_SERVICE_SENDING` - Campaigns with the onlyCustomerService field set to true can only be sent from a journey.\n                                            Customer service can only send campaigns with this field set to true.\n  * `PS_CAMPAIGN_INVALID_CATEGORY_ID` - The category id indicated in a campaign is invalid, does not exist or belongs to another application\n  * `PS_EXTRACT_META_PARSE_HTML_ERROR` - Error during meta tag extraction due to HTML parsing failure\n  * `PS_AUDIENCE_CJ_NOT_FOUND` - The CJ audience or segment indicated in the audienceCJ filter was not found in customer-service\n  * `AS_INTERNAL_ERROR` - Generic internal error\n  * `AS_FORBIDDEN` - Generic forbidden error\n  * `AS_BAD_REQUEST` - Generic bad request\n  * `AS_LIMIT_EXCEEDED` - Some of the configured limits have been exceeded\n  * `AS_INVALID_CREDENTIALS` - Invalid credentials\n  * `AS_ELEMENT_NOT_FOUND` - Element not found\n  * `AS_LOCKED_INACTIVITY` - User is locked for inactivity. Please, contact an administrator\n  * `AS_LOCKED_EXPIRED_PASSWORD` - The password is way old. Please, change it for a new one\n  * `AS_LOCKED_TOO_MANY_LOGIN_ATTEMPTS` - Too many login attempts\n  * `AS_APPLICATION_NOT_FOUND` - Application (project) not found\n  * `AS_ACCOUNT_NOT_FOUND` - Account not found\n  * `AS_EXTERNAL_APP_NOT_FOUND` -\n  * `AS_AREA_NOT_FOUND` -\n  * `AS_WEB_ANALYTIC_NOT_FOUND` -\n  * `AS_CATEGORY_NOT_FOUND` -\n  * `AS_EXTERNAL_AUTH_NOT_FOUND` -\n  * `AS_USER_NOT_FOUND` -\n  * `AS_INTEGRATION_NOT_FOUND` -\n  * `AS_PERMISSION_NOT_FOUND` -\n  * `AS_ROLE_NOT_FOUND` -\n  * `AS_IP_WHITELIST`- The ip with which you are trying to access the resource is not allowed\n  * `AS_CHAT_FEATURE_DISABLED` - Chat Service is not activated for this account\n  * `AS_CONTACT_CENTER_FEATURE_DISABLED` - Contact Center is not activated for this account\n  * `AS_RESOURCE_ALREADY_EXISTS` - Generic error when trying to duplicate a resource\n  * `AS_EMAIL_ALREADY_EXISTS` - User with same email already exists\n  * `AS_TOPIC_ALREADY_EXISTS` - Topic code already exists in this application\n  * `AS_CATEGORY_ALREADY_EXISTS` - Category code already exists in this application\n  * `AS_USER_ALREADY_EXISTS` - User already exists\n  * `AS_SAFARI_ID_ALREADY_EXISTS` - Safari push ID already exists\n  * `AS_EXTERNAL_AUTH_DATA_ALREADY_EXISTS` - External auth already exists\n  * `AS_TOPIC_PARENT_NOT_FOUND` - Topic parent not found\n  * `AS_INVALID_CERTIFICATE` - Invalid certificate credentials or invalid certificate\n  * `AS_BAD_SAFARI_CONFIGURATION` - It has been requested to activate Safari push, however, the necessary parameters for this service has not been provided.\n  * `AS_BAD_HARMONY_CONFIGURATION` - It has been requested to activate Harmony push, however, the necessary parameters for this service has not been provided.\n  * `AS_BAD_ANDROID_CONFIGURATION` - It has been requested to activate Android push, however, the necessary parameters for this service has not been provided.\n  * `AS_BAD_REPORTING_CONFIGURATION` - Reporting configuration object does not have the expected format\n  * `AS_BAD_SLICING_CONFIGURATION` - Slicing configuration object does not have the expected format\n  * `AS_BAD_APP_CODE` - App code does not have the expected format\n  * `AS_BAD_TOPIC_CODE` - Topic code does not have the expected format\n  * `AS_BAD_IMAGE_TYPE` - Image format is different than expected\n  * `AS_BAD_IMAGE_SIZE` - Image file size exceeds maximum size\n  * `AS_BAD_CSV_FORMAT` - The format of the CSV file is not as expected. It may be empty or may not contain the expected columns or headers.\n  * `AS_BAD_EMAIL` - Email was not found or is in the wrong format\n  * `AS_PASSWORD_MANDATORY` - Password field is mandatory and cannot be empty\n  * `AS_PASSWORD_TOO_SHORT` - Password is too short\n  * `AS_PASSWORD_COMPLEXITY_NOT_MET` - Password must include at least three of the following categories: numbers, lowercase letters, uppercase letters, or special characters\n  * `AS_PASSWORD_PERSONAL_INFO` - Password must not contain personal information (name, email, etc.)\n  * `AS_PASSWORD_REUSED` - Password has been used before\n  * `AS_PASSWORD_MISMATCH` - currentPassword does not match with user current password\n  * `AS_PASSWORD_SAME_OLD` - Old and new password shoud be different\n  * `AS_PASSWORD_TOO_MANY_CHANGES` - Password has been changed too many times in a short period of time\n  * `AS_ONLY_SUPER_ADMIN_PERMISSION` - Only super administrator has permission to perform this action\n  * `AS_INVALID_METHOD` - The totp method is not valid\n  * `AS_INVALID_TOTP` - The totp code is not valid\n  * `AS_INVALID_TOKEN` - The JWT user is not the same that body user.\n  * `AS_CHAT_DOWNLOAD_ACCOUNTS_FEATURE_DISABLED` - download contacts is not active in this account.\n  * `CS_CSV_NUMBER_OF_PARAMS` - Number of incorrect parameters\n  * `CS_CSV_EMPTY_FILE` - Empty file or no data\n  * `CS_CSV_INVALID_CHANNEL` - Only Whatsapp channel is allowed\n  * `CS_CSV_INVALID_CONTENT_TYPE` - Invalid contentType. Only `template` contentType is available\n  * `CS_CSV_INVALID_PARAMETER` - Invalid parameter\n  * `CS_CSV_INVALID_TYPE` - Invalid file type\n  * `CS_CSV_MISSING_FIELDS` - Missings fields\n  * `CS_CSV_EMPTY_FIELDS` - Empty fields\n  * `CS_DOWNLOAD_MULTIMEDIA_ERROR` - Error in download file by URL\n  * `AS_CHAT_V2_FEATURE_DISABLED` - Chat V2 is not active in this account.\n  * `AS_CHAT_V2_PERMISSION_PROFILE_NOT_FOUND` - The permission profile specified in the request was not found.\n  * `AS_CHAT_V2_UPSTREAM_ERROR` - An error occurred while processing the request in the upstream service.\n"
          },
          "message": {
            "type": "string",
            "description": "Error message"
          }
        }
      },
      "CampaignFilterObject": {
        "type": "object",
        "description": "Campaign's filters",
        "required": [
          "platforms"
        ],
        "properties": {
          "platforms": {
            "type": "array",
            "minimum": 1,
            "description": "Array of platforms, sends to devices that belogs to these platforms",
            "items": {
              "type": "string",
              "description": "Target platform",
              "enum": [
                "webpush",
                "safari",
                "android",
                "ios",
                "harmony"
              ]
            }
          },
          "areas": {
            "type": "array",
            "description": "Array of area ids, sends to devices that belong to these areas",
            "items": {
              "type": "integer",
              "description": "Area id"
            }
          },
          "areaTags": {
            "type": "array",
            "description": "Array of area's tags , sends to devices that belong to these areas with tags selected",
            "items": {
              "type": "string",
              "description": "area's tag"
            }
          },
          "topics": {
            "type": "object",
            "description": "Array of topic ids, sends to devices that are susbscribed or not to these topics",
            "properties": {
              "subscribed": {
                "type": "array",
                "description": "Array of topics. sends to devices that are subscribed to these topics",
                "items": {
                  "description": "Topic's id. If it is passed as a multidimensional matrix, in each new arrangement its elements are selected as AND, while between integers and arrays it will be translated as an OR",
                  "oneOf": [
                    {
                      "type": "integer"
                    },
                    {
                      "type": "array",
                      "items": {}
                    }
                  ]
                }
              },
              "notSubscribed": {
                "type": "array",
                "description": "Array of topics. sends to devices that are not subscribed to these topics",
                "items": {
                  "description": "Topic's id. If it is passed as a multidimensional matrix, in each new arrangement its elements are selected as AND, while between integers and arrays it will be translated as an OR",
                  "oneOf": [
                    {
                      "type": "integer"
                    },
                    {
                      "type": "array",
                      "items": {}
                    }
                  ]
                }
              }
            }
          },
          "externalApps": {
            "type": "object",
            "description": "Array of external Apps ids, sends to devices that are susbscribed or not to these external Apps",
            "properties": {
              "subscribed": {
                "type": "array",
                "description": "Array of external Apps. sends to devices that are subscribed to these external Apps",
                "items": {
                  "description": "External Apps's id. If it is passed as a multidimensional matrix, in each new arrangement its elements are selected as AND, while between integers and arrays it will be translated as an OR",
                  "oneOf": [
                    {
                      "type": "integer"
                    },
                    {
                      "type": "array",
                      "items": {}
                    }
                  ]
                }
              },
              "notSubscribed": {
                "type": "array",
                "description": "Array of external Apps. sends to devices that are not subscribed to these external Apps",
                "items": {
                  "description": "External Apps's id. If it is passed as a multidimensional matrix, in each new arrangement its elements are selected as AND, while between integers and arrays it will be translated as an OR",
                  "oneOf": [
                    {
                      "type": "integer"
                    },
                    {
                      "type": "array",
                      "items": {}
                    }
                  ]
                }
              }
            }
          },
          "timeSincelastVisit": {
            "type": "integer",
            "description": "Time since user's last visit to the application. Unit of measurement is hours."
          },
          "timeLastVisit": {
            "type": "integer",
            "description": "Fraction of time that users entered. Unit of measurement is hours."
          },
          "deviceCodes": {
            "type": "array",
            "description": "Array of  the Device's codes",
            "items": {
              "type": "string",
              "description": "code device"
            }
          },
          "deviceCodesActive": {
            "type": "boolean",
            "description": "Campaign's deviceCodesFilter State"
          },
          "deviceTypes": {
            "type": "array",
            "description": "Array of types device. (mobile, tablet or desktop)",
            "items": {
              "type": "string",
              "enum": [
                "mobile",
                "tablet",
                "desktop"
              ],
              "description": "Device's type\n  - mobile: ios or android device\n  - tablet: for tablet ios or android\n  - desktop: device web\n"
            }
          },
          "browserTypes": {
            "type": "array",
            "description": "Array of types browser. (chrome, firefox, edge, safari or opera)",
            "items": {
              "type": "string",
              "enum": [
                "Chrome",
                "Firefox",
                "Edge",
                "Safari",
                "Opera"
              ],
              "description": "Device's type\n  - Chrome: browser Chrome\n  - Firefox: browser Firefox\n  - Edge: browser Explorer o edge\n  - Safari: browser Safari\n  - Opera: browser Opera\n"
            }
          },
          "geoLocation": {
            "type": "object",
            "description": "Filtered by the user's location",
            "properties": {
              "countryCode": {
                "type": "string",
                "description": "Country ISO 3166-1alpha2 code",
                "example": "es"
              },
              "state": {
                "type": "string",
                "description": "State filter",
                "example": "Community of Madrid"
              },
              "city": {
                "type": "string",
                "description": "City filter",
                "example": "Madrid"
              }
            }
          },
          "network": {
            "type": "object",
            "description": "Device network filters",
            "properties": {
              "wifiConnected": {
                "type": "boolean",
                "description": "Devices that are connected to a WiFi network"
              },
              "wifiSSID": {
                "type": "string",
                "maxLength": 32,
                "description": "Devices that are connected to a certain WiFi network"
              },
              "wifiSSIDMode": {
                "type": "string",
                "enum": [
                  "match",
                  "negated",
                  "negated_notnull"
                ],
                "description": "Specify how to apply the wifiSSID filter. Default is 'match' mode.\n- match: Default value. Only devices that are connected to a Wi-Fi network with an identical SSID specified in wifiSSID\n- negated: All devices that are not connected to the network specified in the wifiSSID field (includes devices that are not connected to any Wi-Fi network or whose network connection status is unknown).\n- negated_notnull: All the devices that are connected to a different Wi-Fi network than the one indicated in the wifiSSID field. (Does not include devices that are not connected via Wi-Fi or that we do not know their network status)\n"
              }
            }
          },
          "audienceCJ": {
            "type": "array",
            "description": "References an `audienceList` or `segment` defined in Customer Journey (CJ), combined (AND)\nwith any other filter present (e.g. `topics`) to restrict the recipients of a\n`/campaign/{id}/send/all` sending.\n\nModeled as an array so it can be combined at the schema level with other CJ entities in\nthe future, but in this first phase only one entry is supported: combining several\nlists/audiences together is not supported yet.\n",
            "items": {
              "type": "object",
              "required": [
                "entityType",
                "entityId"
              ],
              "properties": {
                "entityType": {
                  "type": "string",
                  "enum": [
                    "audienceList",
                    "segment"
                  ],
                  "description": "Type of CJ entity referenced."
                },
                "entityId": {
                  "type": "integer",
                  "description": "Numeric id of the audienceList or segment in customer-service."
                }
              }
            }
          }
        }
      },
      "TestResponse": {
        "required": [
          "statusCode",
          "message",
          "data"
        ],
        "properties": {
          "statusCode": {
            "type": "integer",
            "description": "Response code"
          },
          "message": {
            "type": "string",
            "description": "Response message, usually OK"
          },
          "data": {
            "$ref": "#/components/schemas/TestObject"
          }
        }
      },
      "TestObject": {
        "required": [
          "id",
          "applicationId",
          "filters"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "A/B testing's id"
          },
          "name": {
            "type": "string",
            "description": "A/B testing's name"
          },
          "applicationId": {
            "type": "integer",
            "description": "Application's id"
          },
          "updatedAt": {
            "type": "string",
            "description": "Last update date. The format is ISO 8601, UTC-0\n\n  Ex:\n\n    2019-02-13T08:18:39.632Z\n"
          },
          "createdAt": {
            "type": "string",
            "description": "Creation date. The format is ISO 8601, UTC-0\n\n  Ex:\n\n    2019-02-13T08:18:39.632Z\n"
          },
          "filters": {
            "$ref": "#/components/schemas/CampaignFilterObject"
          }
        }
      },
      "TestPutRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "A/B testing's name"
          },
          "filters": {
            "$ref": "#/components/schemas/CampaignFilterObject"
          }
        }
      }
    },
    "requestBodies": {
      "TestPutRequest": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/TestPutRequest"
            }
          }
        },
        "required": true
      }
    }
  }
}
````