---
title: "Changes to Upsert an application's resources and permissions"
method: PUT
path: "/api/v1/applications/{application_id}/structure"
---

# Changes to Upsert an application's resources and permissions

`PUT /api/v1/applications/{application_id}/structure`

> Every recorded change to this operation, newest first.

## Timeline

Changed in 5 of 10 revisions.

- **2026-10-31** `5a1f071e40d8`: 2 breaking, 7 warning, 2 info
- **2026-09-30** `56ece6c3256d`: 2 info
- **2026-09-15** `209e132db90b`: 1 info
- **2026-08-19** `6f2cb0585bbe`: 1 breaking, 1 info
- **2026-07-31** `f01f507d4b4e`: 2 info

## Changes

- **2026-10-31** `5a1f071e40d8`: 2 breaking, 7 warning, 2 info
  - response property `errors/additionalProperties/items/` list-of-types was widened by adding types `object` to media type `application/json` of response `422`
  - removed the required property `message` from the response with the `401` status
  - removed the optional property `errors` from the response with the `401` status
  - removed the optional property `errors` from the response with the `403` status
  - removed the optional property `errors` from the response with the `404` status
  - removed the optional property `errors` from the response with the `409` status
  - added the new `conflict` enum value to the `error` response property for the response status `409`
  - added the new `forbidden` enum value to the `error` response property for the response status `403`
  - added the new `idempotency_key_already_used` enum value to the `error` response property for the response status `409`
  - added the non-success response with the status `429`
  - added the optional property `detail` to the response with the `422` status
- **2026-09-30** `56ece6c3256d`: 2 info
  - the request property `resources/items/permissions/items/title` became optional
  - the request property `resources/items/title` became optional
- **2026-09-15** `209e132db90b`: 1 info
  - added the optional property `contract` to the response with the `200` status
- **2026-08-19** `6f2cb0585bbe`: 1 breaking, 1 info
  - for the `path` request parameter `application_id`, the format changed from no format to `uuid`
  - added the non-success response with the status `400`
- **2026-07-31** `f01f507d4b4e`: 2 info
  - added the optional property `permanent_access_allowed` to the response with the `200` status
  - added the optional property `time_based_access_durations` to the response with the `200` status

---

[Operation](https://skmtc.dev/accessowl/apis/accessowl-api/docs/api/v1/applications/:application_id/structure/put.md) - [API](https://skmtc.dev/accessowl/apis/accessowl-api.md) - [Page](https://skmtc.dev/accessowl/apis/accessowl-api/changes/api/v1/applications/:application_id/structure/put)
