# Update Selected iOS Mobile App for Test Plan

The endpoint allows users to update the selected iOS mobile app for a specific test plan. The user must provide the test plan ID and the mobile app ID to be set.

***

### Endpoint Information

* **URL**: `<custom-env-url>/Testinium.RestApi/api/plans/{id}/setIosMobileApp/{mobileAppId}`
* **Method**: `PUT`
* **Authentication**: `Bearer Token` is required
* **Content-Type**: `application/json`

***

### Path Variables

| Parameter     | Type   | Required | Description                                     |
| ------------- | ------ | -------- | ----------------------------------------------- |
| `id`          | `Long` | Yes      | The unique identifier of the test plan.         |
| `mobileAppId` | `Long` | Yes      | The unique identifier of the mobile app to set. |

***

### Response Body

Upon a successful request, the API returns the updated `PlanDTO` object representing the test plan with the selected iOS mobile app.

```json
{
    "id": 261,
    "project_id": 580,
    "company_id": 1,
    "plan_name": "Android",
    "group_plan": false,
    "description": "",
    "enabled": true,
    "plan_parallel_test_limit": 36,
    "scenarios": [
        3076,
        3077,
        3078,
        3079,
        3080,
        3056,
        3087,
        3086,
        3100
    ],
    "period": {
        "period_type": "MANUAL",
        "days_of_week": "2,3,4,5,6,7,1",
        "repeat_period": 60
    },
    "alerts": [],
    "alerts_enabled": false,
    "failed_test_retry_count": 3,
    "screen_shot_type": "YES",
    "video_enabled": false,
    "environments": [
        {
            "id": 9
        },
        {
            "id": 13
        }
    ],
    "clear_app_data": false,
    "fetch_app_files": [],
    "selected_android_mobile_app": {
        "id": 54,
        "mobile_app_name": "pegasus-pilot-release-2.39.0.38__2_-ee15733f-2799725523214323595.apk",
        "mobile_app_hash": "57e487d42eaa459b1713df8c1dd691a8",
        "operating_system": "ANDROID",
        "mobile_app_metadata": "{\"packageName\":\"com.pozitron.pegasus.pilotRelease\",\"label\":\"PGS Pilot\",\"icon\":\"res/u3.png\",\"versionName\":\"2.39.0.38\",\"versionCode\":119,\"minSdkVersion\":\"23\",\"targetSdkVersion\":\"33\"}",
        "created_at": "2024-10-18 09:34:30"
    },
    "selected_ios_mobile_app": {
        "id": 53,
        "mobile_app_name": "Gratis-b250541b__2_-8988176051238453961.ipa",
        "mobile_app_hash": "556372e35d7f2b6fa4b7ceb4c0af8b58",
        "operating_system": "IOS",
        "mobile_app_metadata": "{\"bundleName\":\"Gratis\",\"bundleDisplayName\":\"Gratis\",\"bundleVersion\":\"3.2.12\",\"bundleMinOsVersion\":\"12.0\",\"bundleDevelopmentRegion\":\"tr\",\"bundleExecutable\":\"Gratis\",\"bundleIconFiles\":\"\",\"bundleInfoDictVersion\":\"6.0\",\"bundlePackageType\":\"APPL\",\"bundleMainStoryBoardFile\":\"Main\"}",
        "created_at": "2024-10-18 09:34:30"
    }
}

```

| Field                  | Type        | Description                                        |
| ---------------------- | ----------- | -------------------------------------------------- |
| `id`                   | `Long`      | The unique identifier of the test plan.            |
| `plan_name`            | `String`    | The name of the test plan.                         |
| `selectedIosMobileApp` | `MobileApp` | The mobile app that is selected for the test plan. |

***

### Error Codes

| HTTP Code | Error Message                           | Description                                                          |
| --------- | --------------------------------------- | -------------------------------------------------------------------- |
| `404`     | `Mobile app not found`                  | The specified mobile app was not found.                              |
| `404`     | `Plan not found`                        | The specified test plan was not found.                               |
| `400`     | `Mobile app not iOS`                    | The specified mobile app is not an iOS app.                          |
| `400`     | `Mobile app does not belong to project` | The specified mobile app does not belong to the test plan's project. |
| `500`     | `Internal Server Error`                 | An unexpected error occurred on the server side.                     |

***

### Example Request

```bash
curl --location --request PUT '<custom-env-url>/Testinium.RestApi/api/plans/{id}/setIosMobileApp/{mobileAppId}' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer <token>'
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://testinium.gitbook.io/testinium-enterprise/apis/enterprise-2.0/plan/update-selected-ios-mobile-app-for-test-plan.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
