# SCIM VaultFolder examples

## Operations

This page shows the operations that can be performed for the VaultFolder object

### List all

##### Request

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

##### Response 200 OK

```JSON
{
    "schemas": [
        "urn:ietf:params:scim:api:messages:2.0:ListResponse"
    ],
    "totalResults": 4,
    "startIndex": 1,
    "Resources": [
        {
            "grantedRoles": [],
            "accessLevel": "O",
            "managerRoles": [],
            "navigateUsers": [],
            "navigateRoles": [],
            "description": "Accounts that won't be shared",
            "personal": true,
            "ownerGroups": [],
            "ownerRoles": [],
            "meta": {
                "location": "http://soffid.pat.lab:8080/soffid/webservice/scim2/v1/VaultFolder/368461",
                "resourceType": "VaultFolder"
            },
            "schemas": [
                "urn:soffid:com.soffid.iam.am.api.VaultFolder"
            ],
            "name": "Personal accounts",
            "managerUsers": [],
            "navigateGroups": [],
            "id": 368461,
            "grantedGroups": [],
            "managerGroups": [],
            "grantedUsers": [],
            "ownerUsers": [
                "admin"
            ]
        },
        {
            "grantedRoles": [],
            "accessLevel": "O",
            "managerRoles": [],
            "navigateUsers": [
                "test2",
                "admin"
            ],
            "navigateRoles": [],
            "description": "Password vault",
            "personal": false,
            "ownerGroups": [],
            "ownerRoles": [],
            "meta": {
                "location": "http://soffid.pat.lab:8080/soffid/webservice/scim2/v1/VaultFolder/515461",
                "resourceType": "VaultFolder"
            },
            "schemas": [
                "urn:soffid:com.soffid.iam.am.api.VaultFolder"
            ],
            "name": "vault",
            "managerUsers": [],
            "navigateGroups": [],
            "id": 515461,
            "grantedGroups": [],
            "managerGroups": [],
            "grantedUsers": [],
            "ownerUsers": [
                "admin"
            ]
        },
      ............
    ]
}
```

### List by filter

List all VaultFolders 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/VaultFolder/?filter=personal eq true
```

##### Response 200 OK

```JSON
{
    "schemas": [
        "urn:ietf:params:scim:api:messages:2.0:ListResponse"
    ],
    "totalResults": 1,
    "startIndex": 1,
    "Resources": [
        {
            "grantedRoles": [],
            "accessLevel": "O",
            "managerRoles": [],
            "navigateUsers": [],
            "navigateRoles": [],
            "description": "Accounts that won't be shared",
            "personal": true,
            "ownerGroups": [],
            "ownerRoles": [],
            "meta": {
                "location": "http://soffid.pat.lab:8080/soffid/webservice/scim2/v1/VaultFolder/368461",
                "resourceType": "VaultFolder"
            },
            "schemas": [
                "urn:soffid:com.soffid.iam.am.api.VaultFolder"
            ],
            "name": "Personal accounts",
            "managerUsers": [],
            "navigateGroups": [],
            "id": 368461,
            "grantedGroups": [],
            "managerGroups": [],
            "grantedUsers": [],
            "ownerUsers": [
                "admin"
            ]
        }
    ]
}
```

### Query by id

Query a VaultFolder by its id (primary key).

##### Request

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

##### Response 200 OK

```JSON
{
    "grantedRoles": [],
    "accessLevel": "O",
    "managerRoles": [],
    "navigateUsers": [
        "test2",
        "admin"
    ],
    "navigateRoles": [],
    "description": "Password vault",
    "personal": false,
    "ownerGroups": [],
    "ownerRoles": [],
    "meta": {
        "location": "http://soffid.pat.lab:8080/soffid/webservice/scim2/v1/VaultFolder/515461",
        "resourceType": "VaultFolder"
    },
    "schemas": [
        "urn:soffid:com.soffid.iam.am.api.VaultFolder"
    ],
    "name": "vault",
    "managerUsers": [],
    "navigateGroups": [],
    "id": 515461,
    "grantedGroups": [],
    "managerGroups": [],
    "grantedUsers": [],
    "ownerUsers": [
        "admin"
    ]
}
```

### Create

#### Request

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

**JSON**

```JSON
{
    "schemas": [
        "urn:soffid:com.soffid.iam.am.api.VaultFolder"
    ],
    "name": "Folder Billing",
    "description": "Folder Billing",
    "parentFolder": "vault",
    "parentId": 515461,
    "personal": false,
    "accessLevel": "M",
    "ownerUsers": [
        "admin"
    ],
    "navigateUsers": [
        "admin"
    ]
}
```

##### Response 201 Created

```JSON
{
    "grantedRoles": [],
    "accessLevel": "O",
    "managerRoles": [],
    "navigateUsers": [
        "admin"
    ],
    "navigateRoles": [],
    "description": "Folder Billing",
    "personal": false,
    "parentId": 515461,
    "parentFolder": "vault",
    "ownerGroups": [],
    "ownerRoles": [],
    "meta": {
        "location": "http://soffid.pat.lab:8080/soffid/webservice/scim2/v1/VaultFolder/1977703",
        "resourceType": "VaultFolder"
    },
    "schemas": [
        "urn:soffid:com.soffid.iam.am.api.VaultFolder"
    ],
    "name": "Folder Billing",
    "managerUsers": [],
    "navigateGroups": [],
    "id": 1977703,
    "grantedGroups": [],
    "managerGroups": [],
    "grantedUsers": [],
    "ownerUsers": [
        "admin"
    ]
}
```

### 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/VaultFolder/1977703
```

**JSON**

```JSON
{
    "Operations": [
        {
            "op": "replace",
            "path": "description",
            "value": "Vault folder billing"
        },
        {
            "op": "add",
            "path": "navigateUsers",
            "value": [
                "dilbert",
                "asea"
            ]
        }
    ]
}
```

##### Response 200 OK

```JSON
{
    "grantedRoles": [],
    "accessLevel": "O",
    "managerRoles": [],
    "navigateUsers": [
        "asea",
        "dilbert",
        "admin"
    ],
    "navigateRoles": [],
    "description": "Vault folder billing",
    "personal": false,
    "parentId": 515461,
    "parentFolder": "vault",
    "ownerGroups": [],
    "ownerRoles": [],
    "meta": {
        "location": "http://soffid.pat.lab:8080/soffid/webservice/scim2/v1/VaultFolder/1977703",
        "resourceType": "VaultFolder"
    },
    "schemas": [
        "urn:soffid:com.soffid.iam.am.api.VaultFolder"
    ],
    "name": "Folder Billing",
    "managerUsers": [],
    "navigateGroups": [],
    "id": 1977703,
    "grantedGroups": [],
    "managerGroups": [],
    "grantedUsers": [],
    "ownerUsers": [
        "admin"
    ]
}
```

### Update all

This operation replaces all values in the VaultFolder.

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

**JSON**

```JSON
{
    "schemas": [
        "urn:soffid:com.soffid.iam.am.api.VaultFolder"
    ],
    "id": 1977703,
    "name": "Folder Billing",
    "description": "Folder Billing",
    "parentFolder": "vault",
    "parentId": 515461,
    "personal": false,
    "accessLevel": "M",
    "ownerUsers": [
        "admin"
    ]
}
```

##### Response 200 OK

```JSON
{
    "grantedRoles": [],
    "accessLevel": "O",
    "managerRoles": [],
    "navigateUsers": [],
    "navigateRoles": [],
    "description": "Folder Billing",
    "personal": false,
    "parentId": 515461,
    "parentFolder": "vault",
    "ownerGroups": [],
    "ownerRoles": [],
    "meta": {
        "location": "http://soffid.pat.lab:8080/soffid/webservice/scim2/v1/VaultFolder/1977703",
        "resourceType": "VaultFolder"
    },
    "schemas": [
        "urn:soffid:com.soffid.iam.am.api.VaultFolder"
    ],
    "name": "Folder Billing",
    "managerUsers": [],
    "navigateGroups": [],
    "id": 1977703,
    "grantedGroups": [],
    "managerGroups": [],
    "grantedUsers": [],
    "ownerUsers": [
        "admin"
    ]
}
```

### Delete

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

##### Request

```MarkDown
DELETE https://<your-omain>/soffid/webservice/scim2/v1/VaultFolder/1977703
```

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