# SCIM Application examples (InformationSystem)

## Operations

This page shows the operations that can be performed for the application object (Information Systems from a functional point of view)

### List all

##### Request

```XML
GET https://<your-domain>/webservice/scim2/v1/Application
```

##### Response 200 OK

```JSON
{
    "schemas": [
        "urn:ietf:params:scim:api:messages:2.0:ListResponse"
    ],
    "totalResults": 2,
    "startIndex": 1,
    "Resources": [
        {
            "parent": "Operation/Business 2",
            "relativeName": "SOFFID",
            "database": "",
            "bpmEnabled": true,
            "meta": {
                "location": "http://soffid.pat.lab:8080/soffid/webservice/scim2/v1/Application/41",
                "links": {
                    "children": "http://soffid.pat.lab:8080/soffid/webservice/scim2/v1/Application?filter=parent.name+eq+'Operation/Business 2/SOFFID'",
                    "roles": "http://soffid.pat.lab:8080/soffid/webservice/scim2/v1/Role?filter=informationSystemName+eq+'Operation/Business 2/SOFFID'"
                },
                "resourceType": "Application"
            },
            "schemas": [
                "urn:soffid:com.soffid.iam.api.Application"
            ],
            "name": "Operation/Business 2/SOFFID",
            "description": "SOFFID Identity Manager",
            "singleRole": false,
            "attributes": {},
            "id": 41,
            "type": "application"
        },
        {
            "parent": "Operation/Business process",
            "relativeName": "ad",
            "database": "ad",
            "bpmEnabled": true,
            "meta": {
                "location": "http://soffid.pat.lab:8080/soffid/webservice/scim2/v1/Application/391459",
                "links": {
                    "children": "http://soffid.pat.lab:8080/soffid/webservice/scim2/v1/Application?filter=parent.name+eq+'Operation/Business process/ad'",
                    "roles": "http://soffid.pat.lab:8080/soffid/webservice/scim2/v1/Role?filter=informationSystemName+eq+'Operation/Business process/ad'"
                },
                "resourceType": "Application"
            },
            "schemas": [
                "urn:soffid:com.soffid.iam.api.Application"
            ],
            "name": "Operation/Business process/ad",
            "description": "Active Directory",
            "singleRole": false,
            "attributes": {},
            "id": 391459,
            "type": "application"
        }
    ]
}
```

### List by filter

List all application with a filter expression.

<p class="callout info">It is allowed to use pagination and sort the information, for more information visit the [Sorting](https://bookstack.soffid.com/link/116#bkmrk-sorting) and [Pagination](https://bookstack.soffid.com/link/116#bkmrk-pagination) information.</p>

##### Request

```XML
GET https://<your-domain>/soffid/webservice/scim2/v1/Application?filter=description co SOFFID
```

##### Response 200 OK

```JSON
{
    "schemas": [
        "urn:ietf:params:scim:api:messages:2.0:ListResponse"
    ],
    "totalResults": 2,
    "startIndex": 1,
    "Resources": [
        {
            "parent": "Operation/Business 2",
            "relativeName": "SOFFID",
            "database": "",
            "bpmEnabled": true,
            "meta": {
                "location": "http://soffid.pat.lab:8080/soffid/webservice/scim2/v1/Application/41",
                "links": {
                    "children": "http://soffid.pat.lab:8080/soffid/webservice/scim2/v1/Application?filter=parent.name+eq+'Operation/Business 2/SOFFID'",
                    "roles": "http://soffid.pat.lab:8080/soffid/webservice/scim2/v1/Role?filter=informationSystemName+eq+'Operation/Business 2/SOFFID'"
                },
                "resourceType": "Application"
            },
            "schemas": [
                "urn:soffid:com.soffid.iam.api.Application"
            ],
            "name": "Operation/Business 2/SOFFID",
            "description": "SOFFID Identity Manager",
            "singleRole": false,
            "attributes": {},
            "id": 41,
            "type": "application"
        },
        {
            "parent": "Operation/Business 2",
            "relativeName": "iam.soffid.com",
            "database": "iam.soffid.com",
            "bpmEnabled": false,
            "meta": {
                "location": "http://soffid.pat.lab:8080/soffid/webservice/scim2/v1/Application/1836136",
                "links": {
                    "children": "http://soffid.pat.lab:8080/soffid/webservice/scim2/v1/Application?filter=parent.name+eq+'Operation/Business 2/iam.soffid.com'",
                    "roles": "http://soffid.pat.lab:8080/soffid/webservice/scim2/v1/Role?filter=informationSystemName+eq+'Operation/Business 2/iam.soffid.com'"
                },
                "resourceType": "Application"
            },
            "schemas": [
                "urn:soffid:com.soffid.iam.api.Application"
            ],
            "name": "Operation/Business 2/iam.soffid.com",
            "description": "Discovered host iam.soffid.com",
            "singleRole": false,
            "attributes": {},
            "id": 1836136,
            "type": "application"
        }
    ]
}
```

### Query by id

Retrieve an application by its id (primary key).

##### Request

```XML
GET https://<your-domain>/soffid/webservice/scim2/v1/Application/391459
```

##### Response 200 OK

```JSON
{
    "parent": "Operation/Business process",
    "relativeName": "ad",
    "database": "ad",
    "bpmEnabled": true,
    "meta": {
        "location": "http://soffid.pat.lab:8080/soffid/webservice/scim2/v1/Application/391459",
        "links": {
            "children": "http://soffid.pat.lab:8080/soffid/webservice/scim2/v1/Application?filter=parent.name+eq+'Operation/Business process/ad'",
            "roles": "http://soffid.pat.lab:8080/soffid/webservice/scim2/v1/Role?filter=informationSystemName+eq+'Operation/Business process/ad'"
        },
        "resourceType": "Application"
    },
    "schemas": [
        "urn:soffid:com.soffid.iam.api.Application"
    ],
    "name": "Operation/Business process/ad",
    "description": "Active Directory",
    "singleRole": false,
    "attributes": {},
    "id": 391459,
    "type": "application"
}
```

### Create

To create an application (Information System).

##### Request

```XML
POST https://<your-domain>/soffid/webservice/scim2/v1/Application/
```

**JSON**

```JSON
{
    "schemas": [
        "urn:soffid:com.soffid.iam.api.Application"
    ],
    "parent": "Operation/Business 2",
    "relativeName": "appBilling",
    "database": "",
    "bpmEnabled": false,
    "name": "Operation/Business 2/App Billing",
    "description": "Billing application",
    "singleRole": false,
    "attributes": {},
    "type": "application"
}
```

##### Response 201 Created

```JSON
{
    "parent": "Operation/Business 2",
    "relativeName": "App Billing",
    "database": "",
    "bpmEnabled": false,
    "meta": {
        "location": "http://soffid.pat.lab:8080/soffid/webservice/scim2/v1/Application/1976515",
        "resourceType": "Application"
    },
    "schemas": [
        "urn:soffid:com.soffid.iam.api.Application"
    ],
    "name": "Operation/Business 2/App Billing",
    "description": "Billing application",
    "singleRole": false,
    "attributes": {},
    "id": 1976515,
    "type": "application"
}
```

### Update partial

Only attributes with changes will be updated, the other will maintain the same value.

##### Request

```
PATCH https://<your-domain>/soffid/webservice/scim2/v1/Application/1976515
```

**JSON**

```JSON
{
    "schemas": [
        "urn:soffid:com.soffid.iam.api.Application"
    ],
    "Operations": [
        {
            "op": "replace",
            "path": "parent",
            "value": "Operation/Business process"
        },
        {
            "op": "replace",
            "path": "name",
            "value": "Operation/Business process/App Billing"
        },
        {
            "op": "replace",
            "path": "database",
            "value": "DDBBBilling"
        }
    ]
}
```

##### Response 200 OK

```JSON
{
    "parent": "Operation/Business process",
    "relativeName": "App Billing",
    "database": "DDBBBilling",
    "bpmEnabled": false,
    "meta": {
        "location": "http://soffid.pat.lab:8080/soffid/webservice/scim2/v1/Application/1976515",
        "links": {
            "children": "http://soffid.pat.lab:8080/soffid/webservice/scim2/v1/Application?filter=parent.name+eq+'Operation/Business process/App Billing'",
            "roles": "http://soffid.pat.lab:8080/soffid/webservice/scim2/v1/Role?filter=informationSystemName+eq+'Operation/Business process/App Billing'"
        },
        "resourceType": "Application"
    },
    "schemas": [
        "urn:soffid:com.soffid.iam.api.Application"
    ],
    "name": "Operation/Business process/App Billing",
    "description": "Billing application",
    "singleRole": false,
    "attributes": {},
    "id": 1976515,
    "type": "application"
}
```

### Update all

This operation replaces all values in the application.

- Note that the attribute id is required to confirm that the resource "...Application/&lt;id&gt;" is the same that the JSON user.
- Note that all the attributes not included in the request will be cleared in the application and their data will be lost.
- Note that not all the attributes are updatable, for example, tag meta, avoid these tags. For more information visit [Resource data model page](https://bookstack.soffid.com/books/scim/chapter/resource-data-model-schema).

##### Request

```XML
PUT https://<your-domain>/soffid/webservice/scim2/v1/Application/1976515
```

**JSON**

```JSON
{
    "schemas": [
        "urn:soffid:com.soffid.iam.api.Application"
    ],
    "id": 1976515,
    "parent": "Operation/Business 2",
    "relativeName": "appBilling",
    "database": "",
    "bpmEnabled": false,
    "name": "Operation/Business 2/App Billing",
    "description": "Billing application",
    "singleRole": false,
    "attributes": {},
    "type": "application"
}
```

##### Response 200 OK

```JSON
{
    "parent": "Operation/Business 2",
    "relativeName": "App Billing",
    "database": "",
    "bpmEnabled": false,
    "meta": {
        "location": "http://soffid.pat.lab:8080/soffid/webservice/scim2/v1/Application/1976515",
        "links": {
            "children": "http://soffid.pat.lab:8080/soffid/webservice/scim2/v1/Application?filter=parent.name+eq+'Operation/Business 2/App Billing'",
            "roles": "http://soffid.pat.lab:8080/soffid/webservice/scim2/v1/Role?filter=informationSystemName+eq+'Operation/Business 2/App Billing'"
        },
        "resourceType": "Application"
    },
    "schemas": [
        "urn:soffid:com.soffid.iam.api.Application"
    ],
    "name": "Operation/Business 2/App Billing",
    "description": "Billing application",
    "singleRole": false,
    "attributes": {},
    "id": 1976515,
    "type": "application"
}
```

### Delete

<p class="callout warning">Please note that after this delete action, you will need to create again the application to use it in the next examples.</p>

##### Request

```XML
DELETE https://<your-domain>/webservice/scim2/v1/Application/2236428
```

##### Response 204 No Content

```
204 No Content
```

### Error response

<p class="callout info">For more information about error response visit [https://bookstack.soffid.com/link/116#bkmrk-error-response](https://bookstack.soffid.com/link/116#bkmrk-error-response)</p>