# SCIM System examples

## Operations

This page shows the operations that can be performed for the Systems object (Agents).

### List all

##### Request

```MarkDown
GET https://<your-domain>/soffid/webservice/scim2/v1/System
```

##### Response 200 OK

```JSON
{
    "schemas": [
        "urn:ietf:params:scim:api:messages:2.0:ListResponse"
    ],
    "totalResults": 16,
    "startIndex": 1,
    "Resources": [
        {
            "accessControl": false,
            "usersDomain": "DEFAULT",
            "fullReconciliation": false,
            "authoritative": false,
            "description": "Soffid system",
            "groups": "",
            "threads": 1,
            "className": "- no class -",
            "userTypes": "I",
            "groupsList": [],
            "readOnly": false,
            "passwordsDomain": "DEFAULT",
            "timeStamp": "2020-04-18 19:32:37",
            "rolebased": true,
            "trusted": false,
            "meta": {
                "location": "http://soffid.pat.lab:8080/soffid/webservice/scim2/v1/System/44",
                "resourceType": "System"
            },
            "schemas": [
                "urn:soffid:com.soffid.iam.iga.api.System"
            ],
            "name": "soffid",
            "id": 44,
            "passwordsDomainId": 27,
            "tenant": "master",
            "generateTasksOnLoad": true
        },
        {
            "accessControl": false,
            "usersDomain": "DEFAULT",
            "fullReconciliation": false,
            "authoritative": false,
            "description": "External SSO accounts",
            "groups": "admingroup,enterprise",
            "threads": 1,
            "className": "com.soffid.iam.sync.sso.agent.SSOAgent",
            "userTypes": "S,I",
            "groupsList": [
                "admingroup",
                "enterprise"
            ],
            "readOnly": false,
            "url": "local",
            "passwordsDomain": "DEFAULT",
            "timeStamp": "2020-09-21 10:17:38",
            "rolebased": false,
            "trusted": false,
            "meta": {
                "location": "http://soffid.pat.lab:8080/soffid/webservice/scim2/v1/System/47",
                "resourceType": "System"
            },
            "schemas": [
                "urn:soffid:com.soffid.iam.iga.api.System"
            ],
            "name": "SSO",
            "id": 47,
            "manualAccountCreation": true,
            "passwordsDomainId": 27,
            "tenant": "master",
            "generateTasksOnLoad": true
        },
      ................
    ]
}
```

### List by filter

List all Systems 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

```MarkDown
GET https://<your-domain>/soffid/webservice/scim2/v1/System?filter=description co 10.129.
```

##### Response 200 OK

```JSON
{
    "schemas": [
        "urn:ietf:params:scim:api:messages:2.0:ListResponse"
    ],
    "totalResults": 2,
    "startIndex": 1,
    "Resources": [
        {
            "accessControl": false,
            "description": "Discovered host 10.129.122.22",
            "className": "com.soffid.iam.sync.agent.SimpleSSHAgent",
            "userTypes": "",
            "passwordsDomain": "DEFAULT",
            "rolebased": false,
            "id": 1885153,
            "manualAccountCreation": true,
            "tenant": "master",
            "generateTasksOnLoad": false,
            "param7": "false",
            "usersDomain": "DEFAULT",
            "param6": "UTF-8",
            "fullReconciliation": true,
            "authoritative": false,
            "sharedDispatcher": true,
            "param0": "soffid",
            "groups": "",
            "threads": 1,
            "groupsList": [],
            "readOnly": false,
            "param3": "10.129.122.22",
            "param4": "true",
            "url": "local",
            "param2": "517y1hF40k4=",
            "timeStamp": "2021-04-23 12:23:15",
            "trusted": false,
            "meta": {
                "location": "http://soffid.pat.lab:8080/soffid/webservice/scim2/v1/System/1885153",
                "resourceType": "System"
            },
            "schemas": [
                "urn:soffid:com.soffid.iam.iga.api.System"
            ],
            "name": "10.129.122.22",
            "passwordsDomainId": 27
        },
        {
            "accessControl": false,
            "description": "Discovered host 10.129.122.25",
            "className": "com.soffid.iam.sync.agent.SimpleWindowsAgent",
            "userTypes": "",
            "passwordsDomain": "DEFAULT",
            "rolebased": false,
            "id": 1890334,
            "manualAccountCreation": true,
            "tenant": "master",
            "generateTasksOnLoad": false,
            "param7": "false",
            "usersDomain": "DEFAULT",
            "fullReconciliation": true,
            "authoritative": false,
            "sharedDispatcher": true,
            "param0": "Administrador",
            "groups": "",
            "threads": 1,
            "groupsList": [],
            "readOnly": false,
            "param3": "10.129.122.25",
            "param4": "true",
            "url": "local",
            "param2": "VFJV1pSRfE7s",
            "timeStamp": "2021-04-23 20:00:34",
            "trusted": false,
            "meta": {
                "location": "http://soffid.pat.lab:8080/soffid/webservice/scim2/v1/System/1890334",
                "resourceType": "System"
            },
            "schemas": [
                "urn:soffid:com.soffid.iam.iga.api.System"
            ],
            "name": "10.129.122.25",
            "passwordsDomainId": 27
        }
    ]
}
```

### Query by id

Query a System by its id (primary key).

##### Request

```MarkDown
GET https://<your-domain>/soffid/webservice/scim2/v1/System/389082
```

##### Response 200 OK

```JSON
{
    "accessControl": true,
    "description": "Active Directory.",
    "className": "com.soffid.iam.sync.agent2.CustomizableActiveDirectoryAgent",
    "userTypes": "I",
    "passwordsDomain": "DEFAULT",
    "rolebased": true,
    "id": 389082,
    "manualAccountCreation": false,
    "tenant": "master",
    "generateTasksOnLoad": true,
    "param7": "true",
    "param8": "true",
    "usersDomain": "DEFAULT",
    "fullReconciliation": false,
    "authoritative": true,
    "sharedDispatcher": false,
    "param0": "ad.bubu.lab",
    "groups": "",
    "threads": 1,
    "groupsList": [],
    "readOnly": false,
    "param3": "C27Nv4vjbIsI",
    "url": "https://soffid.bubu.lab:1760/",
    "param1": "dc=ad,dc=bubu,dc=lab",
    "param2": "ad\\Administrator",
    "timeStamp": "2021-04-07 09:31:59",
    "trusted": true,
    "meta": {
        "location": "http://soffid.pat.lab:8080/soffid/webservice/scim2/v1/System/389082",
        "resourceType": "System"
    },
    "schemas": [
        "urn:soffid:com.soffid.iam.iga.api.System"
    ],
    "name": "ad",
    "passwordsDomainId": 27
}
```

### Create

#### Request

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

**JSON**

```JSON
{
    "schemas": [
        "urn:soffid:com.soffid.iam.iga.api.System"
    ],
    "name": "SQLRRHH",
    "description": "SQL RRHH test",
    "className": "com.soffid.iam.sync.agent.SQLAgent2",
    "userTypes": "E,I",
    "passwordsDomain": "DEFAULT",
    "usersDomain": "DEFAULT"
}
```

##### Response 201 Created

```JSON
{
    "accessControl": false,
    "usersDomain": "DEFAULT",
    "fullReconciliation": false,
    "authoritative": false,
    "description": "SQL RRHH test",
    "groups": "",
    "threads": 1,
    "className": "com.soffid.iam.sync.agent.SQLAgent2",
    "userTypes": "I,E",
    "groupsList": [],
    "readOnly": false,
    "passwordsDomain": "DEFAULT",
    "timeStamp": "2021-05-12 10:58:35",
    "rolebased": false,
    "trusted": false,
    "meta": {
        "location": "http://soffid.pat.lab:8080/soffid/webservice/scim2/v1/System/1977157",
        "resourceType": "System"
    },
    "schemas": [
        "urn:soffid:com.soffid.iam.iga.api.System"
    ],
    "name": "SQLRRHH",
    "id": 1977157,
    "passwordsDomainId": 27,
    "tenant": "master",
    "generateTasksOnLoad": false
}
```

### 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/System/1977157
```

**JSON**

```JSON
{
    "Operations": [
        {
            "op": "replace",
            "path": "param0",
            "value": "user"
        },
        {
            "op": "replace",
            "path": "param1",
            "value": "password"
        },
        {
            "op": "replace",
            "path": "param2",
            "value": "jdbc:mysql://localhost/personal"
        }
    ]
}
```

##### Response 200 OK

```JSON
{
    "accessControl": false,
    "description": "SQL RRHH test",
    "className": "com.soffid.iam.sync.agent.SQLAgent2",
    "userTypes": "I,E",
    "passwordsDomain": "DEFAULT",
    "rolebased": false,
    "id": 1977157,
    "tenant": "master",
    "generateTasksOnLoad": false,
    "usersDomain": "DEFAULT",
    "fullReconciliation": false,
    "authoritative": false,
    "param0": "user",
    "groups": "",
    "threads": 1,
    "groupsList": [],
    "readOnly": false,
    "param1": "password",
    "param2": "jdbc:mysql://localhost/personal",
    "timeStamp": "2021-05-12 10:59:44",
    "trusted": false,
    "meta": {
        "location": "http://soffid.pat.lab:8080/soffid/webservice/scim2/v1/System/1977157",
        "resourceType": "System"
    },
    "schemas": [
        "urn:soffid:com.soffid.iam.iga.api.System"
    ],
    "name": "SQLRRHH",
    "passwordsDomainId": 27
}
```

### Update all

This operation replace all values in the System.

- Note that the attribute id is required to confirm that the resource "...System/&lt;id&gt;" is the same that the JSON System.
- Note that all the attributes not included in the request will be cleared in the System type 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 http://<your-domain>/soffid/webservice/scim2/v1/System/1977157
```

**JSON**

```JSON
{
    "schemas": [
        "urn:soffid:com.soffid.iam.iga.api.System"
    ],
    "id": 1977157,
    "name": "SQLRRHH",
    "description": "SQL RRHH test",
    "className": "com.soffid.iam.sync.agent.SQLAgent2",
    "userTypes": "E,I",
    "passwordsDomain": "DEFAULT",
    "usersDomain": "DEFAULT"
}
```

##### Response 200 OK

```JSON
{
    "accessControl": false,
    "usersDomain": "DEFAULT",
    "fullReconciliation": false,
    "authoritative": false,
    "description": "SQL RRHH test",
    "groups": "",
    "threads": 1,
    "className": "com.soffid.iam.sync.agent.SQLAgent2",
    "userTypes": "I,E",
    "groupsList": [],
    "readOnly": false,
    "passwordsDomain": "DEFAULT",
    "timeStamp": "2021-05-12 11:02:49",
    "rolebased": false,
    "trusted": false,
    "meta": {
        "location": "http://soffid.pat.lab:8080/soffid/webservice/scim2/v1/System/1977157",
        "resourceType": "System"
    },
    "schemas": [
        "urn:soffid:com.soffid.iam.iga.api.System"
    ],
    "name": "SQLRRHH",
    "id": 1977157,
    "passwordsDomainId": 27,
    "tenant": "master",
    "generateTasksOnLoad": false
}
```

### Delete

<p class="callout warning">Please note after this delete, the System has to be created again to use it in the next examples.</p>

##### Request

```MarkDown
DELETE https://<your-omain>/soffid/webservice/scim2/v1/System/1977157
```

##### 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>