# Welcome to AG5

Latest update: August 6th, 2026

This is the AG5 Help Center. It covers how to set up AG5, how each feature works, and what to do when something goes wrong.

### New to AG5?

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th><th data-hidden data-card-cover data-type="image">Cover image</th></tr></thead><tbody><tr><td><strong>What is AG5?</strong></td><td>What the software does and what you can use it for</td><td><a href="https://docs.ag5.com/getting-started-with-ag5/what-is-ag5">https://docs.ag5.com/getting-started-with-ag5/what-is-ag5</a></td><td><a href="/files/DhPLRtEcuIQhH97poKDK">/files/DhPLRtEcuIQhH97poKDK</a></td></tr><tr><td><strong>Getting started with AG5</strong></td><td>The setup articles, in the order to read them</td><td><a href="https://docs.ag5.com/getting-started-with-ag5/getting-started-with-ag5">https://docs.ag5.com/getting-started-with-ag5/getting-started-with-ag5</a></td><td><a href="/files/qXW5XC4zBIfazmatZ4CD">/files/qXW5XC4zBIfazmatZ4CD</a></td></tr><tr><td><strong>Skills matrix basics</strong></td><td>Build your first matrix</td><td><a href="https://docs.ag5.com/skills-matrix/skills-matrix-basics">https://docs.ag5.com/skills-matrix/skills-matrix-basics</a></td><td><a href="/files/YpI4Gl1kMaIqolyu9YGN">/files/YpI4Gl1kMaIqolyu9YGN</a></td></tr></tbody></table>

### Looking for a specific feature?

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th><th data-hidden data-card-cover data-type="image">Cover image</th></tr></thead><tbody><tr><td><strong>What is a skill?</strong></td><td>Skills, requirements, results, rating scales, and approvals</td><td><a href="https://docs.ag5.com/skills/what-is-a-skill">https://docs.ag5.com/skills/what-is-a-skill</a></td><td><a href="/files/ATYOCHv6beW4ajlEmrmn">/files/ATYOCHv6beW4ajlEmrmn</a></td></tr><tr><td><strong>Employee profile</strong></td><td>The employee record, positions, and the portfolio employees see</td><td><a href="https://docs.ag5.com/employees/employee-profile">https://docs.ag5.com/employees/employee-profile</a></td><td><a href="/files/Z6dj8UFV4Pm2d9VpDuu3">/files/Z6dj8UFV4Pm2d9VpDuu3</a></td></tr><tr><td><strong>User accounts</strong></td><td>Who can see and do what</td><td><a href="https://docs.ag5.com/accounts-roles-and-permissions/user-accounts">https://docs.ag5.com/accounts-roles-and-permissions/user-accounts</a></td><td><a href="/files/z0PU1nMlQlc0PIavGml6">/files/z0PU1nMlQlc0PIavGml6</a></td></tr><tr><td><strong>Workflows</strong></td><td>Automated reminders and notifications</td><td><a href="https://docs.ag5.com/automations/workflows">https://docs.ag5.com/automations/workflows</a></td><td><a href="/files/5pzznictHCRKG4NJW83p">/files/5pzznictHCRKG4NJW83p</a></td></tr><tr><td><strong>Insights Dashboard</strong></td><td>Compliance and skill development reporting</td><td><a href="https://docs.ag5.com/insights/insights-dashboard">https://docs.ag5.com/insights/insights-dashboard</a></td><td><a href="/files/Aq6pxezdprn9kq8gOvNF">/files/Aq6pxezdprn9kq8gOvNF</a></td></tr><tr><td><strong>Data Management</strong></td><td>History of changes, exporting data, master data management</td><td><a href="/pages/1J6S93xkBzVKVSp5Z4vr">/pages/1J6S93xkBzVKVSp5Z4vr</a></td><td><a href="/files/VUNmcmrkcQU4gyOILvOP">/files/VUNmcmrkcQU4gyOILvOP</a></td></tr><tr><td></td><td></td><td></td><td></td></tr></tbody></table>

### Something not working?

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th><th data-hidden data-card-cover data-type="image">Cover image</th></tr></thead><tbody><tr><td><strong>Troubleshooting access</strong></td><td>If someone cannot sign in, or cannot see what they expect to see</td><td><a href="https://docs.ag5.com/accounts-roles-and-permissions/troubleshooting-access">https://docs.ag5.com/accounts-roles-and-permissions/troubleshooting-access</a></td><td><a href="https://images.unsplash.com/photo-1555529902-5261145633bf?crop=entropy&#x26;cs=srgb&#x26;fm=jpg&#x26;ixid=M3wxOTcwMjR8MHwxfHNlYXJjaHwxfHxsb2NrfGVufDB8fHx8MTc4NTkyMjk2Nnww&#x26;ixlib=rb-4.1.0&#x26;q=85">https://images.unsplash.com/photo-1555529902-5261145633bf?crop=entropy&#x26;cs=srgb&#x26;fm=jpg&#x26;ixid=M3wxOTcwMjR8MHwxfHNlYXJjaHwxfHxsb2NrfGVufDB8fHx8MTc4NTkyMjk2Nnww&#x26;ixlib=rb-4.1.0&#x26;q=85</a></td></tr><tr><td><strong>Signing into AG5 for the first time</strong></td><td>First-time sign-in steps</td><td><a href="https://docs.ag5.com/accounts-roles-and-permissions/signing-into-ag5-for-the-first-time">https://docs.ag5.com/accounts-roles-and-permissions/signing-into-ag5-for-the-first-time</a></td><td><a href="/files/GBktoVV7FpOIn3wPE6hj">/files/GBktoVV7FpOIn3wPE6hj</a></td></tr><tr><td><strong>Glossary</strong></td><td>If a term in AG5 is unfamiliar</td><td><a href="https://docs.ag5.com/glossary">https://docs.ag5.com/glossary</a></td><td><a href="/files/cFDG4LYPC3i0anYZJtHp">/files/cFDG4LYPC3i0anYZJtHp</a></td></tr></tbody></table>

{% hint style="info" %}
Still stuck? Email **<support@ag5.com>**.
{% endhint %}

### Building an integration?

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th><th data-hidden data-card-cover data-type="image">Cover image</th></tr></thead><tbody><tr><td><strong>Integrations</strong></td><td>Single sign-on, HR systems, and learning management systems</td><td><a href="https://docs.ag5.com/data-management/integrations">https://docs.ag5.com/data-management/integrations</a></td><td><a href="/files/SSA6a72WY1JxR5Mmg97o">/files/SSA6a72WY1JxR5Mmg97o</a></td></tr><tr><td><strong>AG5 Skills Management API</strong></td><td>Endpoints, authentication, and the Power BI guide</td><td><a href="https://docs.ag5.com/ag5-api/version-4-beta/ag5-skills-management-api">https://docs.ag5.com/ag5-api/version-4-beta/ag5-skills-management-api</a></td><td data-object-fit="fill"><a href="/files/4xaH38LTCqdD9ORdU5aO">/files/4xaH38LTCqdD9ORdU5aO</a></td></tr></tbody></table>

### What changed recently?

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th><th data-hidden data-card-cover data-type="image">Cover image</th></tr></thead><tbody><tr><td><strong>Release calendar 2026</strong></td><td>What shipped, release by release</td><td><a href="https://docs.ag5.com/release-notes/2026-updates/release-calendar-2026">https://docs.ag5.com/release-notes/2026-updates/release-calendar-2026</a></td><td><a href="https://images.unsplash.com/photo-1633526543814-9718c8922b7a?crop=entropy&#x26;cs=srgb&#x26;fm=jpg&#x26;ixid=M3wxOTcwMjR8MHwxfHNlYXJjaHwxfHxDYWxlbmRhcnxlbnwwfHx8fDE3ODYwMTkxNzR8MA&#x26;ixlib=rb-4.1.0&#x26;q=85">https://images.unsplash.com/photo-1633526543814-9718c8922b7a?crop=entropy&#x26;cs=srgb&#x26;fm=jpg&#x26;ixid=M3wxOTcwMjR8MHwxfHNlYXJjaHwxfHxDYWxlbmRhcnxlbnwwfHx8fDE3ODYwMTkxNzR8MA&#x26;ixlib=rb-4.1.0&#x26;q=85</a></td></tr><tr><td><strong>Roadmap 2026</strong></td><td>What is planned next</td><td><a href="https://docs.ag5.com/roadmap/roadmap-2026">https://docs.ag5.com/roadmap/roadmap-2026</a></td><td><a href="/files/C6SGvKiswHCOkNQHf4T6">/files/C6SGvKiswHCOkNQHf4T6</a></td></tr></tbody></table>


# What is AG5?

Latest update: August 6th, 2026

AG5 is skills management software. It shows you who is skilled to do what, keeps you audit-ready at any moment, and surfaces skill gaps early enough to close them.

Most organizations track this in spreadsheets that are out of date the moment someone completes a training or a certificate expires, and nobody knows which version is current. AG5 replaces that with one live record of every employee's skills, the requirements attached to each role, and the evidence behind both.

### What you can do with AG5

#### Build and maintain skills matrices

* Create skills matrices without any programming knowledge
* Replace spreadsheet templates that break or fall out of date
* Filter and analyze your skills data by team, location, role, or skill
* Share matrices with colleagues and stakeholders instantly
* Work from one current version instead of managing multiple files

#### Manage skills and compliance

* Set skill requirements per role, team, or position
* Store employee evidence and proof of achievement against the skill itself
* Set a validity period and a warning period per skill, so you are notified before a result expires
* Require sign-off before a skill result counts, using [skill result approvals](https://docs.ag5.com/skills/skill-results/results-approvals)
* Track every change automatically, with timestamps and full history
* Answer auditor questions from current data instead of searching through files

#### Plan staffing and capability development

* Find qualified employees for a shift, task, or project in seconds
* Identify suitable replacements when someone is unavailable
* Spot gaps and compliance levels by employee, skill, team, department, role, manager, and organization
* Track where capability is thin and target training accordingly

### Connect AG5 to your other systems

AG5 integrates with your single sign-on provider, HR system, and learning management system, so employee data stays accurate and training results flow back into AG5 automatically. See [Integrations](https://docs.ag5.com/data-management/integrations).

For anything beyond those, the [AG5 API](https://docs.ag5.com/ag5-api/version-4-beta/ag5-skills-management-api/overview) lets you connect AG5 to a platform of your choice, including BI tools such as Power BI.

### Where to start

New to AG5? Work through these three articles in order:

1. [Skills matrix basics](https://docs.ag5.com/skills-matrix/skills-matrix-basics) - set up your first matrix
2. [Employee profile](https://docs.ag5.com/employees/employee-profile) - add your people and their positions
3. [Skill requirements](https://docs.ag5.com/skills/skill-requirements) - define what each role needs and start tracking compliance


# Getting started with AG5

Latest update: June 29th, 2026

### **1. How to start managing skills in AG5?** <a href="#h_b74c69051b" id="h_b74c69051b"></a>

Our Help Center contains various articles about our software, which are designed to help you understand our features so that you'll be able to fulfill your skills management needs. If you are an existing user of AG5, then we advise you to search for the specific articles relevant to your questions.&#x20;

But if you are a new user and need to set up your AG5 software for the first time, then we advise you to read through the following articles in order, instead of at random.

### **2. Which articles help the onboarding process?**  <a href="#h_93bb6474dc" id="h_93bb6474dc"></a>

The following articles in this order will help you quickly set up AG5 to manage the skills of your employees:

1. [What is a skills matrix?](/skills-matrix/skills-matrix-basics)
2. [How to create an employee?](https://docs.ag5.com/employees/employee-profile)
3. [How to create a skill?](/skills/what-is-a-skill)
4. [How to organize skills?](/skills/skill-libraries)
5. [How to work with employee positions?](/employees/employee-position)
6. [How to create skill requirements?](/skills/skill-requirements)
7. [How to create a skills matrix?](/skills-matrix/skills-matrix-basics#h_45148b8460)
8. [How to add a skill result?](/skills/skill-results)

Once you've finished with the above eight, feel free to peruse the rest of our articles, which are designed to help you understand the details of AG5 and manage your skills as effectively and efficiently as possible.

All of these are in English, so if you usually work with AG5 in another language, you might want to change over to English temporarily in order to follow along with the steps in the article.&#x20;

To change the language of AG5, click on your profile photo in the top right corner and select your current language, then choose the new one:

<img src="/files/L5YcyBUZLNy0u0l9M3AF" alt="" width="563">

### **3. Still have questions?** <a href="#h_5a61807a99" id="h_5a61807a99"></a>

If you have any questions, please feel free to reach out to us at <support@ag5.com>, or by calling [+31 20 463 0942](tel:+31204630942)


# Skills matrix basics

Latest update: June 29th, 2026

### **1. What is a skills matrix?** <a href="#ispasted" id="ispasted"></a>

A (skills) matrix in AG5 is a table with employees on one axis and skills on the other.

Just below is a sample matrix with employees on the horizontal axis and skills on the vertical axis. The intersect shows the status of each skill as it pertains to the employee.

For example, we can see that Noah, Sabrina and Logan all have the "5S Standard" skill, while it's a gap for Sally and Michelle.

<figure><img src="https://cdn.elev.io/file/uploads/D1BCUVNmpfyNXS3qGXZdLFMfdrUiR9tXejv0vEBzhc4/j6AIEW_14qunF29_25WrDwwjJ6JT1TdbZXfBCAQ_juo/Frame%2013-CQU.png" alt=""><figcaption></figcaption></figure>

### **2. What is the purpose of a skill matrix?** <a href="#h_ba9f231322" id="h_ba9f231322"></a>

Skills matrices provide actionable insights - a clear overview of each employee's skill status, and the ability to close any skill gaps with a few clicks.

Matrices can include as many or as few employees and skills as needed. For example, you might create one matrix for an entire department, and have separate matrices for teams and team leaders.

The skills matrix answers the following questions:

* How qualified is my team?
* How qualified are my individual employees?
* Which skills are my employees lacking? (Gap analysis)
* Which skills have a surplus of skilled employees?
* Which skill results have expired?
* Which skill results are about to expire?
* Do employees meet the required skill level?
* Does the team meet the required skill level?
* And more.

### **3. How to create a matrix?** <a href="#h_45148b8460" id="h_45148b8460"></a>

**If you are setting up AG5 for the very first time, we suggest you begin with** [**this article**](/getting-started-with-ag5/what-is-ag5) **first.**

Matrices operate off the skills, employees and organizational structures you've already added to/built in AG5. If you have yet to do those things, please check out these pages first:

* [Create employees](https://docs.ag5.com/employees/employee-profile)
* [Create skills](/skills/what-is-a-skill)
  * [Add those skills to a library](/skills/skill-libraries)
* [Create organizational structures](/employees/organizational-structures)

***

When you're ready, navigate to the Matrices tab.

* **Click on 'New Matrix'** - This button is located to the right of the search bar:<br>

  <figure><img src="/files/Yb8usF9PSfsYfv2almMu" alt=""><figcaption></figcaption></figure>

**1) Select employees** - Employees are **not** selected individually. Instead, employees are added to a matrix by choosing employee groupings (or tags). All employees associated with the chosen groupings will appear on the matrix. The groupings an employee has depends on their positions. \
\
We have two different methods for finding groupings.

* *Flat list* - This is for finding groupings by search:<br>

  <figure><img src="https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/AllEOMVecvR6hx1tSVUnwoBSqkGnga9PDvOQwa6Sq1A/matrixbyflatlist-4qg.gif" alt=""><figcaption></figcaption></figure>
* *Tree list* - This presents all groupings organized exactly how they're laid out in the organizational structures.\
  \
  Choosing a grouping with many sub-groupings will make those sub-groupings appear on the matrix. For more information about organizational structures, [check out this article](/employees/organizational-structures).\ <br>

  <figure><img src="https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/a1JlgyRQHtm9-yJdssLsj6SxKXvzI0y08vL9gyzJnsY/matrixbytreelist-NnA.gif" alt=""><figcaption></figcaption></figure>

**2) Select skills** - Next, select the skills you want to see in the matrix. As above, you can use either the flat list or tree method for choosing categories or groupings. \
\
Similarly to how employees are selected, skills are **not** selected individually. Instead, skills are selected by either choosing a category from the Skills library, or by choosing a grouping from the Organizational structures. <br>

Selection by category (Libraries): This is the most straightforward way of adding skills to a matrix. Simply pick a category (folder) from a library, and all skills from within that category will appear on your matrix.

<figure><img src="https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/iBGlW5bKCdSarDnQ2F7KGvlPRkk8avqgDqJIM9DxN0k/matrixbycategory-FLo.gif" alt=""><figcaption></figcaption></figure>

\
If the category you choose has subcategories, then those subcategories will appear on the matrix as sub-headers. \
\
For example, here we select the top category "Qualifications", which has "1. Hard Skills", "2. Soft Skills", "3. System", etc as subcategories:

<figure><img src="https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/UlL31cFakaTr-iICJrRxOydZDAlGfL5vRPTM-wa4VmA/1722941928697-pS0.png" alt=""><figcaption></figcaption></figure>

The matrix includes those as subheaders:

<figure><img src="https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/F98B11tbL-n_wDFZ9eQSlrYODgXTr8P0adhda58lC6A/1722942201451-EIo.png" alt=""><figcaption></figcaption></figure>

Selection by grouping (Organizational structures): You can also build out the skill axis by choosing groupings with skill requirements. In this case, requirements for that grouping (department, job role, team, etc) will be the skills that appear on the matrix.\
\
If built this way, the skill axis will be categorized by grouping, instead of by category.\
\
As above, you can use either the flat list or tree method for choosing categories or groupings.\ <br>

**3) View and save** - The "View" section allows you to review the employees and skills that have been selected. \
\
This is where a matrix can be given a name and any relevant remarks can be added. \
\
Also, using the "Show only if" function, it's possible to make a matrix more compact by only showing skills or employees when the following criteria are satisfied:\
\
![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/f6Z7XEGH_QdXj-bHSkoTbPmn2dy3MsjQixfhbEuP5jY/1722946948197-FpM.png)

\
To modify any of these choices, click on "Back" to go back a step. Finally, click "Save".<br>

<figure><img src="https://cdn.elev.io/file/uploads/tfNHbase18C9irCYFEYUJIWBYNbJEZKpwfnSxeUHdUg/oexIqc8wrDa1qG7YOL05LAQu9RMVNaJlTYPIQinm5o4/matrix-nus.gif" alt=""><figcaption></figcaption></figure>

\
To edit a matrix after it's been created, click on 'Matrix options' (the icon with the 3 dots in the top right corner of the matrix). This takes you back to the matrix creation menu.<br>

![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/M_gym7cT6IM9y9RgkQLZ21N9vz50pIHjFGye0noJqpg/1722947069581-1us.png)

Display Settings are accessed by clicking on the ![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/QF2Vpedy7CScxoSJUcSNVBBgNCuF2xiWVG7Yoq91_7Y/1722948813516-At8.png) panel icon to the right of the options menu.\
Here, users can invert columns and rows, adjust row and column and header sizes, change the matrix view (gap \[default], required or achieved), and view the legend for the various symbols.

![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/B79kC6KYMvY8-kgwBRJf9DI4GBHGilxuK0QrGs0pVis/displaysettings-I9Q.gif)


# Skills gap analysis

Latest update: June 29th, 2026

### **1. What is a skills gap analysis in AG5?**

&#x20;A skills gap analysis is a method to analyze the skills performance of employees against the skills requirements/goals.&#x20;

### **2. What is the purpose of the gap analysis?**

The purpose is to provide managers actionable insights to improve the skills of employees so that requirements (goals) can be met.&#x20;

### **3. How to measure skill gaps?**

AG5 can measure the skills gaps of your employees. This measurement is based on the comparison of what skills the employees have against the skills that are required for those employees. For this AG5 needs to understand what the skills requirements are for each employee. This can be set with skill requirements in AG5. Read [this article](/skills/skill-requirements) to understand how to set skill requirements as a basis to measure gaps.

### **4. How to analyze skill gaps?**

**Analyze gaps by the matrix**

After creating skill requirements you are able to see the gaps within the matrix itself. Clear gaps per position are always seen within the matrix, as shown by red icons. Also, if you have defined minimum number of employees per skill, you can always see them at the bottom or right side of the matrix. The gaps would look like this:&#x20;

![](/files/b0JkneU8Ei5xtq9AFVxj)

**Analyze gaps by the alert list**

Read in [this article](/employees/alert-list) how you can use the alert list

**Analyze gaps by the alert list for only the matrix employees and skills**

From the matrix you are viewing you can directly go to a filtered alert list where you only see the gaps for the skills and employees of your matrix.&#x20;

Open the matrix options menu (the "..." icon in the top right corner of the matrix) and select "View in alert list":

<div align="center"><img src="/files/G0lAOj3oeob5pbMcejZS" alt=""></div>

This opens the filtered alert list.&#x20;


# What is a skill?

Latest update: June 29th, 2026

### **1. What is a Skill?** <a href="#h_1dbf108c48" id="h_1dbf108c48"></a>

In AG5, a skill is our umbrella term for anything that can be achieved that you want to measure and record for employees.\
\
Skills can range from actual skills to courses, certifications, competencies, degrees, experience, training on the job, physical characteristics, skills, pieces of knowledge, etc.

### **2. What is the purpose of a Skill ?** <a href="#h_a3e5af10b8" id="h_a3e5af10b8"></a>

Skills exist to understand and record employee capabilities, and to determine whether or not an employee is qualified to carry out a certain activity.

Skills can also be applied to positions as [requirements.](/skills/skill-requirements) This means that anyone with a certain position would be required to complete the relevant skills in order to be considered compliant.

Extended to skills matrices, AG5 visualizes any gaps in compliance, making it easy to close those gaps and reach 100% compliance.

### **3. How to create a skill?** <a href="#h_489496acab" id="h_489496acab"></a>

1. Go to the skills page from anywhere in AG5.
2. Click the blue button: <img src="https://cdn.elev.io/file/uploads/tfNHbase18C9irCYFEYUJIWBYNbJEZKpwfnSxeUHdUg/YsbdeBQR8_WIDbikVradwr8cvbGFwZqTZyN9DN8Ge6M/1715869394961-MWA.png" alt="" data-size="line">.
3. Fill in the skills characteristics. The blue text fields with \* are mandatory.
4. Select the blue button: <img src="https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/G5PMiAAZcd1JxoGUsg2UAwRJcLnjHgfXXhZ8IUtntes/1702389275747-SrM.png" alt="" data-size="line">.
5. The skill is created and saved.

### 3. Skill characteristics: <a href="#h_a3b501bbd1" id="h_a3b501bbd1"></a>

Each skill has its own characteristics.\
**Name:** (mandatory)

* The name of the skills.

**Code:** (mandatory)

* If your company uses a coding structure for your skills, you can enter the code here. If no coding structure is known or desired, just copy the name into the code field. Codes can help you organize your skills and make searching for them easier.
* Also, skills will be sorted on the matrix by code in alphanumerical order. Thus, altering the code is how to re-order your matrices.

**Description:** (optional)

* Here you can enter the description of the skills but also add anything at all relevant, for example, a link to work instructions or to other documentation.

**Rating scale**: (mandatory)

* The scale determines how the skill should be scored, for example, with a 'Passed/Failed' or with another self-defined rating scale. [Rating scales](/skills/rating-scales) need to be set up before they can be used.

**Skills type**: (optional)

* This field can help you to sort or recognize the skills in the skill list. Some typical skill types are 'training', 'certificate' or 'skill'. However, meaningful categorization of skills are best done in the library instead of by skill type (see the article on [Skill Libraries](/skills/skill-libraries)).

**Validity Period**: (optional)

* This period defines the default validity of this skill after a result has been added - in other words, when it expires. After a result has expired, the skill will be displayed as missing for the employee.

**Warning period**: (optional)

* This period defines at what point in time a warning will be shown in AG5 that the result is about to expire.

{% hint style="info" %}
The [Alert list](/employees/alert-list) works best when both Validity periods and Warning periods have been established.
{% endhint %}

**Active period**: (optional)

* These fields govern when skills will be considered active in AG5. As long as a skill is active, it will appear throughout the rest of the system (matrix, alert list, employee profile, etc.). If the "Until" field is prior to today's date, then the skills is inactive and will not appear throughout the system. This is useful when the need for specific skills has passed, but retaining records for auditing purposes is still of importance.

**Custom field**: (optional)

* It is possible to have custom fields added to AG5. [Read more about custom fields here.](/skills/custom-fields)

#### 3.5 Skill tabs:

Each skill has 6 relevant tabs:"Employee Status", "Required for", "Attachments", "History", "Versions", and "Extras".

**Employee Status** will show the current status of every employee who has a result, requirement or both.

**Required for** lists which groupings a specific skill is required for.&#x20;

**Attachments** are where you can directly attach files (such as PDFs) to skills, as well as where these direct attachments are stored and accessed.

![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/8Ss3YhgEXRIqUkmfO3EV2jIA-tuIMLHfx92umnsO1vc/1705580896619-bS8.png)

**History** will show you the history of a skill from creation to the current day.

### 4. Skill-specific level descriptions

Each skill uses one rating scale. And each rating scale can be used for different skills. But the contextual meaning of each rating scale level can be different per skills.

To make sure every user has the same understanding of what exactly each level means, you can describe each level within the skill detail page. To do so within a skill page, click on the ![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/V_nWTprgiZWHJzSjcS30yOuRKyLWuufc8U0jr2Gtamc/1702390036414-ywE.png) button just above and on the right of the rating scale:

![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/-o3pEODW4IxBLV81kuM9J_yYT0OFooak4Ap2PeTSZqQ/custom%20rating%20scales-SHo.gif)

Level descriptions can be made visible while adding results in AG5. Example:&#x20;

![](https://cdn.elev.io/file/uploads/tfNHbase18C9irCYFEYUJIWBYNbJEZKpwfnSxeUHdUg/mr9On3bPlslSAu5aKDFmQyYbCbiZ9NwXXs7QBpoj3Rc/Leveldescriptions-Ctk-Vb8.jpg)

When there is no skill-specific description defined within the skill, the general description of the rating scale will be used.

### **5. Next steps** <a href="#h_6e2062c838" id="h_6e2062c838"></a>

Creating skill is in AG5 is one of the first steps in setting up your skills management in AG5, and is important in order for AG5 to understand how skills are organized in your company and for defining requirements for positions.

Therefore, the next articles which are important for completing your AG5 setup are:

1. [How to organize Skills](/skills/skill-libraries)
2. [How to create Skill Requirements](/skills/skill-requirements)


# Skill versions

Latest update: June 29th, 2026

Skill have versions! This allows for the creation of multiple dated versions of a single skill, without having to create a brand new skill.

This helps to control exactly when a new version goes into effect. It also automatically outdates existing results, prompting employees and managers to retrain.

Skill Versions let organizations easily manage evolving skills (like SOPs) by automatically expiring outdated results, and improving control, visibility, and auditability without the need to recreate skills from scratch.

### How it works

The versions tab is on every skill page, and is located below skill levels, to the right of "History":

<figure><img src="/files/DYn9rnwwgtCxJwdFZphz" alt=""><figcaption></figcaption></figure>

As can be seen above, when a skill is created, the version defaults to 1.0.&#x20;

Each skill can have multiple versions, each with:

* A version name (for example: "2.0 - 2026 Update")
* A start date that determines when it becomes active

**However - only one version can be active at a time.**

To create a new version, click on the blue "+ Create new version" button. This will bring up the "Create new skill version" dialogue box:

<figure><img src="/files/yRS0wLNxRMzEvU5ZEONN" alt=""><figcaption></figcaption></figure>

Simply enter the desired version name, any relevant notes to the summary, and the date when you want the new version to begin. This can be today, or some day in the future.

All valid results pointing to the version will be automatically expired when a new version comes to life.

1. This includes all valid results - required and not. Note: Employee may have multiple valid results for a given skill. If not sure about the number visible in the yellow banner, best check the Skill result list
2. Number of expiring results may change compared to what users see in the dialog if the start date is at a later date.
3. Auto-achieved results for the target skill remain valid and unchanged unless a prerequisite (child) skill is revised.

<figure><img src="/files/Gx4j7cfdQLhJ0G40QTmt" alt=""><figcaption></figcaption></figure>

Then finalize by clicking "Create new version". Once the start date comes, the old version will be deactivated, and will be listed as such under the "Versions" panel:

<figure><img src="/files/qmk5KKRYhHOcAgioPwfZ" alt=""><figcaption></figcaption></figure>

It is possible to roll back a new version to a previous one.

<figure><img src="/files/XCjX5RK5reIDEG1gx1qM" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/2YMitdZW85daBIwz5sV8" alt=""><figcaption></figcaption></figure>

### Details, rules and constraints

All plannings, requirements , personal requirements, revocations, exemptions, and prerequisite rules will continue to reference the skill itself. If the skill is included in any workflow, everything will continue to work exactly as before — the workflow will **not** be affected.

This means it does **not** matter which version is active or if a new version is starting — these objects will remain unchanged and continue pointing to the skill.

💬 **Suggestion**: If users want these objects to reference a specific version instead, they must **archive the existing ones** and **create new objects** with the correct active period.

In addition:

* If any skill definition changes are needed for the new version — such as updating the description, adding a new attachment — they need to be done manually, preferably on the start date.
* If some results already exist for a version, rollback isn’t possible until those results are deleted.
* You cannot delete a skill version, you can only rollback to the previous one.

### Permissions

* **Admins, Super users and** **users with edit rights** on skills can create and manage versions.
* Other users with view access to the skill can **view** versions.


# Skill libraries

Latest update: June 30th, 2026

### **1. What is a skill library?** <a href="#h_5417d6dde8" id="h_5417d6dde8"></a>

**Skill Libraries** are where [**skills**](/skills/what-is-a-skill) are organized, labeled and structured into category trees. Think of this as a virtual bookcase.

This tree structure of groups is used within many places in AG5. It allows the user to select or filter by a group of skills.

Your skills library is located within the Skills page:

<figure><img src="/files/dYVMZCuoZwekBHz24K02" alt=""><figcaption></figcaption></figure>

Your library is located within the skills page:

<figure><img src="/files/FYjD7YUVDvv1FqerjZKv" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
**Most importantly**, if your skills do not live in a library, they will **not** be visible in any matrix.
{% endhint %}

### **2. How to create library sub-categories** <a href="#h_9c88230f8e" id="h_9c88230f8e"></a>

In a **library**, [**skills**](/skills/what-is-a-skill) can be categorized based on anything, such as content, type, or use.&#x20;

The way your libraries are structured directly affects how your skills appear on a matrix. When you change something in a library, your matrices are automatically updated.

There is no limit to the number of library categories that can be created. Having separate library categories for skills can sometimes be useful.

**Steps**:

1. Go to the **Skills** page.
2. Select the library: <img src="/files/MS8w2f2MBxbZPNHoPXN5" alt="" data-size="original">.
3. Add a name for your new skills library.
4. Select the<img src="https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/V-BIz99pZ6GBFI6_NxW8tZf61U-DrXlGh_p8Wa78lmY/Screenshot%202023-10-31%20at%2016.40.28-yIw.png" alt="" data-size="line">button.
5. Your library is created.

{% hint style="info" %}
The title of your library is determined by what you choose to name the top category. If you have more than one "top" category, this effectively gives you more than one library.
{% endhint %}

<figure><img src="/files/nxvVviIC8ONJotUiTRzp" alt=""><figcaption></figcaption></figure>

### &#x20;**3. How to structure skills in libraries** <a href="#h_5d36d6b32c" id="h_5d36d6b32c"></a>

1. Open your **library.**
2. Drag the![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/kIsd39mFBfmZaUs7tQOLHuhDoFg9n4He0-_XjlmiowY/New%20category-lCI.png)element from the right side and drop it into the white area of your library.
3. Select the newly created **category.**
4. Change the name of your category.
5. Change the code of the category.
6. Click in the white area to deselect the category.
7. On the right-hand side, select "Add a skill: <img src="/files/fhE0n0YQ9PkPWL6e9uH2" alt="" data-size="line">
8. Search for the skill you want to add to a category.
9. Drag and drop the skill into the correct category.
10. If you wish to delete a skill from a category, click on the skill and then the ![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/6_FjA6QyX9qDM-lmEVsGk07dkcyk6kB6up9x3H7rbwo/1713179869244-MCM.png)symbol.

{% hint style="info" %}
Categories are ordered based on category codes - first numerically and then alphabetically.
{% endhint %}

{% hint style="info" %}
To double check which categories you've placed your skills into, you can see each category they belong to on the skills tab. You'll also see if a skill is missing from a library - when that's the case, no category will be listed.&#x20;
{% endhint %}

<figure><img src="https://cdn.elev.io/file/uploads/tfNHbase18C9irCYFEYUJIWBYNbJEZKpwfnSxeUHdUg/Ltr42o7NZgcyF7gUQNg60SIrFHYWFzZZJCsQoMq0Dl8/Qualificationcategories-9KA-p7g.png" alt=""><figcaption></figcaption></figure>

In this example, "90 Day Review" is missing from the library because no category is listed

### 4. How to delete categories and libraries

Libraries must be completely empty before they can be deleted. This is to reduce the chances of accidental deletion.

{% hint style="info" %}
Deleting skills only removes them from libraries and does not remove the skill entirely from the skills menu.
{% endhint %}

1. Remove all skills by selecting them and then clicking on the trashcan icon that appears on the right.![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/oRg9Y8opBXpmOtxBaB4g_78YrW3OdDiouZBxbTiMXxs/Trashcan-XuI.png)
2. Remove all categories by doing the same.
3. Finally, select the top category and delete.

![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/kCbAK7X-x62IDQPqfKiWBcdEjarPUVMjHuEgSQSnc-I/Delete%20library-nDA.gif)

> If the below menu is missing from the library screen, this means you have selected an item in the tree and the details of that item are displayed. Simply click anywhere in the white area on your screen to deselect that item.

### 5. Some best practices for building libraries

**Each category creates a header on a matrix.**

![](https://cdn.elev.io/file/uploads/tfNHbase18C9irCYFEYUJIWBYNbJEZKpwfnSxeUHdUg/cPFU0BlJpDc0_ZJuyc_pz2u76p3k0gtCyzrswI1qKsA/Screenshot2024-05-16at170241-yCI.png)  See how these categories are nested under "Skills"

![](https://cdn.elev.io/file/uploads/tfNHbase18C9irCYFEYUJIWBYNbJEZKpwfnSxeUHdUg/SjuFbqEhdJggjj1d0b2mOnYYvasKMnhkh951Ysw22bE/Screenshot2024-05-16at170439-Qy4.png)  And how that is mirrored here, on the matrix

&#x20;

![](https://cdn.elev.io/file/uploads/tfNHbase18C9irCYFEYUJIWBYNbJEZKpwfnSxeUHdUg/YkXjd20W9v3sc5SQkLCwLEyf58s5VqT7OdTEdJ7PM5g/May-16-202417-07-08-Ch0.gif)  When a new subcategory is added and 5 skills moved into it...

&#x20;

![](https://cdn.elev.io/file/uploads/tfNHbase18C9irCYFEYUJIWBYNbJEZKpwfnSxeUHdUg/gO3Ex9IbQN_fOMO0Fg22gZ9mBuXEJSZzQK3QVT6jyfo/Screenshot2024-05-16at170810-tcU.png)  It is reflected on the matrix<br>

Categories which contain only a small number of skills will often be too small to read on a matrix, unless clicked or collapsed.

![](https://cdn.elev.io/file/uploads/tfNHbase18C9irCYFEYUJIWBYNbJEZKpwfnSxeUHdUg/xioNy_e8CusirLVQUOyx_s4BvpHS2Vt7MJT6JGff074/1-EiE.gif)  After moving all but 2 skills out of "New category"

&#x20;

![](https://cdn.elev.io/file/uploads/tfNHbase18C9irCYFEYUJIWBYNbJEZKpwfnSxeUHdUg/sb4OkA29IUhpnR-o8nhfsmQam747oq3VrLWvrZIUq_Q/2-09U.gif)  "New category" becomes unreadable unless it's clicked on or collapsed&#x20;

&#x20;

![](https://cdn.elev.io/file/uploads/tfNHbase18C9irCYFEYUJIWBYNbJEZKpwfnSxeUHdUg/6wxs3qwEv7Hazt9ZN6dcJRJFFYfT1owMKSfjCCZjros/Screenshot2024-05-16at171513-z_I.png) \
This pattern continues when adding more subcategories underneath "Soft Skills"

&#x20;&#x20;

![](https://cdn.elev.io/file/uploads/tfNHbase18C9irCYFEYUJIWBYNbJEZKpwfnSxeUHdUg/rfTAniJY5u7S7kKClgkkh7WUQE8r59A_SLFVVXmG_8g/Screenshot2024-05-16at171624-rdA.png) As seen, these subcategories also show up on a matrix

&#x20;

**Skills can live in more than one category.**

It is possible to add skills to more than one category. As shown below, **moving a skill** (in this case, "Test") **from one category to another does not add multiple instances of a skill.**&#x20;

However, if dragged over from the right, a skill can be added to more than one category.&#x20;

While beneficial in certain circumstances, skills living under more than one category will create duplication on a matrix, so bear this in mind.

![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/sCfmDgUirbFChpmMx2dXZvO6l6EDtdKF9uMX_b4p6_Y/duplicate%20quals%20in%20categories-FPk.gif)

### **6. Next steps in your AG5 setup**

Once you have finished building your first **library** with all of your [**skills**](/skills/what-is-a-skill), it's time to use them to add [**requirements**](/skills/skill-requirements) to AG5.

&#x20;


# Global skills library

Latest update: July 2nd, 2026

A global skills library is a valuable measure when you need to implement global, company wide standards.&#x20;

It's particularly useful when you have different sites around the world which all have a degree of autonomy. It permits the creation and management of local skill requirements (skills for that site alone), while enabling global leaders to enforce global standards.

### When do you use the global skills library feature?

Customers use this feature when they recognize the need of managing the skills, requirements, and role definitions centrally. This need can exist if their organization uses multiple AG5 systems across their organization.&#x20;

Example scenario of how this feature is currently used:&#x20;

**Manufacturing**

A manufacturing company has multiple factories worldwide that utilize AG5. To ensure efficient operations and compliance with both local and global skills standards across all of its factories worldwide that utilize AG5, this manufacturing company has implemented our Global Library feature for AG5. This feature enables each factory across the globe to access and apply the specific skills required for its local operations while adhering to global standards, allowing the manufacturer to maintain a high level of skills compliance for all of its manufacturing operations.

### What data can be shared between AG5 systems?

The following can be shared from a Global AG5 system to the local AG5 system

* Skill library (i.e. global library)
  * Including the skills
* Organizational structures (i.e. role structure)
  * Including the skill requirements&#x20;

### How can you turn this feature on?

To turn on the Global Library feature for your AG5 system, please follow these steps:

1. Send an inquiry email to <support@ag5.com> requesting assistance in configuring the feature for your system.
2. In your email, specify the skill library that you want to share from one AG5 system to the other(s).
3. Also, specify the organizational structure that you want to share from one AG5 system to the other(s).

Our support team will then work with you to configure the Global Library feature according to your requirements.

Example 1: Safety Certificate - Eligible to achieve - All completed

An employee must first complete the Safety Fundamentals and Safety Practice training courses to earn a Safety Certificate. By setting these courses as prerequisites, you ensure that individuals have a solid understanding of safety principles before attempting to earn their Safety Certificate.

<img src="https://cdn.elev.io/file/uploads/_huQ39b35a0jqpQRPuwt1yehgwmke6NWJHCPUAsVhiA/wR8BGNdOjV1deAL6n5ErjX2s6306iahLDMJyyPwMxPk/1686648571451-z70.png" alt="" height="239" width="602">

Example 2: Security Certificate - Eligible to achieve - Amount completed

To earn a Security Certificate, an employee must complete at least four out of six available Security Training courses. This prerequisite rule allows flexibility for individuals to choose the courses most relevant to their role, while maintaining a high standard of security knowledge. After an employee completes any four of those courses, you will be able to add a result for the Security Certificate.&#x20;

Example 3: Assembly Area Officer - Auto achieved - All completed&#x20;

After earning both a Safety Certificate and a Security Certificate, this employee will automatically generate a result for the Assembly Area Officer skill. Creating this rule will allow you to easily understand who is qualified to act as an Assembly Area Officer during a specific shift, based on other acquired certificates.&#x20;

<img src="https://cdn.elev.io/file/uploads/_huQ39b35a0jqpQRPuwt1yehgwmke6NWJHCPUAsVhiA/JqTKCv4711heBam-JH1RJqAAxIXk813CoWoIUfZaFD0/1686648571368-pn4.png" alt="" height="217" width="602">


# Skill requirements

Latest update: August 6th, 2026

### What is a skills requirement?

**Requirements** are a set of [**Skills**](/skills/what-is-a-skill) defined in AG5 as required for a specific job role, function, team, or any other type of [**Position**](/employees/employee-position) someone can have.

Once AG5 knows what is required for a position, it's possible to identify skill gaps.

{% hint style="info" %}
Also, in order for the **Alert List**, **Expert Finder** and **Potential Positions** to work, AG5 **must** have defined requirements for positions.
{% endhint %}

### How to create skill requirements via organizational structures <a href="#h_59c36b06cb" id="h_59c36b06cb"></a>

* **Find the correct Organizational structure**
  * In the **Organization** menu, under **Organizational structures**, you will find the structures that hold **Groupings** like departments, job roles, teams, etc (depending on the setup of your company).

<figure><img src="https://cdn.elev.io/file/uploads/D1BCUVNmpfyNXS3qGXZdLFMfdrUiR9tXejv0vEBzhc4/OvuoJb-S9ZXAZ2YQ_hmJSUz5k05uF3z7oE9Gdw5fhMA/1669703843738-vr4.png" alt=""><figcaption></figcaption></figure>

<figure><img src="https://cdn.elev.io/file/uploads/D1BCUVNmpfyNXS3qGXZdLFMfdrUiR9tXejv0vEBzhc4/OvuoJb-S9ZXAZ2YQ_hmJSUz5k05uF3z7oE9Gdw5fhMA/1669703843738-vr4.png" alt=""><figcaption></figcaption></figure>

* **Find the Position**
  * Determine for which [**Position**](/employees/employee-position) you want to set a **requirement** (for example, everyone with a "Production - Jr Spec" job role), and look for that **Grouping** (blue block) in the Organizational structure.

![](https://cdn.elev.io/file/uploads/tfNHbase18C9irCYFEYUJIWBYNbJEZKpwfnSxeUHdUg/8E21J7x-igRdG5PVUPL2ESgpIjJXThex5uiAEuKKQFo/Screenshot2024-05-17at102714-a5A.png)

* **Add a skill Requirement**
  * Click on the **Add a skill requirement** link in the top right of your screen. Search for the skill and drag it into the correct grouping in the tree (for example, "Production - Jr Spec").

<figure><img src="https://cdn.elev.io/file/uploads/tfNHbase18C9irCYFEYUJIWBYNbJEZKpwfnSxeUHdUg/OFwc2_Qhjuvw97ZpWdnu22Z3R3deiDrwpo0DjHmVzNU/req-GNY.gif" alt=""><figcaption></figcaption></figure>

<figure><img src="https://cdn.elev.io/file/uploads/tfNHbase18C9irCYFEYUJIWBYNbJEZKpwfnSxeUHdUg/OFwc2_Qhjuvw97ZpWdnu22Z3R3deiDrwpo0DjHmVzNU/req-GNY.gif" alt=""><figcaption></figcaption></figure>

* **Set the correct level**
  * Click on the newly added **skill requirement** in the **skill tree**.
  * A menu will appear on the **right side** of your screen.
  * In this menu, locate the **description field** that contains the details of the skill requirement you've created.
  * Scroll down to find the **"Required Score"** section.
  * Select the appropriate **required level** for the skill.

{% hint style="info" %}
This is only possible if you have selected a skill with a rating scale which has more levels than "Achieved" or "Failed"
{% endhint %}

<figure><img src="https://cdn.elev.io/file/uploads/tfNHbase18C9irCYFEYUJIWBYNbJEZKpwfnSxeUHdUg/dgetHBGKAXsXhvsg_dc32TXD50KWy4ppL4jzUUsxULQ/May-17-202414-39-33-qCs.gif" alt=""><figcaption></figcaption></figure>

<figure><img src="https://cdn.elev.io/file/uploads/tfNHbase18C9irCYFEYUJIWBYNbJEZKpwfnSxeUHdUg/dgetHBGKAXsXhvsg_dc32TXD50KWy4ppL4jzUUsxULQ/May-17-202414-39-33-qCs.gif" alt=""><figcaption></figcaption></figure>

> If the above requirement menu is not visible, this means that you have selected something other than a requirement (in purple).

### All employees vs number of employees

When looking at the skill requirement menu, you'll see a section where you can choose for this requirement to apply to all employees with the position, **or** to only a specified number.

![](https://cdn.elev.io/file/uploads/tfNHbase18C9irCYFEYUJIWBYNbJEZKpwfnSxeUHdUg/5BKfwS6QUukRiVDCWXqWVUfwmT_6KqEaPsOndww59pk/Screenshot2023-11-13at135846-E9g-sAk.png)

AG5 defaults to 'All Employees,' and as described, this means that **all** positions with the tag require the chosen skill. Using "All Employees" has some benefits:

* If a requirement is not met, a skill gap will appear on a matrix<img src="https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/jxJ_VkLVHMIp3FAupmyNzNYtUjI-knVPVuS2vNOKAGQ/1699889832012-4AM.png" alt="" data-size="line">
* The gap will also appear on the Alert List <img src="https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/jN3ZDyQM2phASVMcJmwylLgbqzCXhkN9PgliVSAwxZM/alert%20list-BYw.png" alt="" data-size="line">

If you choose to specify a number of employees instead, this will manifest on the matrix as a column showing total achieved, total required and total gaps for the specified grouping:

<br>

<figure><img src="https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/9ic59EN_7z5djKpNtrPU7PPNpZzrY_V7Csp5ZxFz1rM/1699890334328-ZBA.png" alt=""><figcaption></figcaption></figure>

This feature can also be activated directly from a matrix, by clicking on a grouping header (not the skill header) and clicking on 'Set minimum number of employees':

![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/C6YKCC13Fw1YbzNs7cLVQRLk2k5F818Iv3VeFuGxo5A/set%20minimum%20number%20of%20emps--PI.gif)

This can be extremely useful. A common use case for using this feature is to avoid overtraining your workforce. However, this feature must be monitored visually, and there are some trade-offs:

* If a requirement is not met, a skill gap will **NOT** appear on a matrix<img src="https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/jxJ_VkLVHMIp3FAupmyNzNYtUjI-knVPVuS2vNOKAGQ/1699889832012-4AM.png" alt="" data-size="line">
* The gap will also **NOT** appear on the Alert List <img src="https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/jN3ZDyQM2phASVMcJmwylLgbqzCXhkN9PgliVSAwxZM/alert%20list-BYw.png" alt="" data-size="line">

### How to create requirements via the 'Skill requirements' page

You can also create skill requirements via the **Skill requirements** page. With this method, it's possible to set a single requirement for a single grouping (tags) **or** a single requirement for a combination of groupings (tags).&#x20;

When building for a combination of groupings, they use an **AND** function, meaning that an employee would need to have all groupings for the requirement to apply.

For this, go to Organization > Skill requirements:

![](https://cdn.elev.io/file/uploads/tfNHbase18C9irCYFEYUJIWBYNbJEZKpwfnSxeUHdUg/7Jlg94HKRI0pPls3zOXbLx1sSc-wJSavKciz8o6h3nA/reqcreation-2qE.gif)

**Option 1: Requirement for a Single Structure**

*Example: Add "First Aid" requirement for "Shift -Blue."*

1\. Open the **Skill Requirements** page

2\. Click the **Create Skill Requirement** button

3\. Select the relevant **Organizational Structure** in the **Groupings** field

4\. Select the required Skill

5\. Save your changes

This requirement will now apply to employees with the "Blue" shift:

![](https://cdn.elev.io/file/uploads/tfNHbase18C9irCYFEYUJIWBYNbJEZKpwfnSxeUHdUg/4EdvCvL0EIWdYcG-J7RSfqS7F0bumU7bkSFKKSctp7U/reqcreation-mqc.gif)

**Option 2: Requirement for a Combination of Multiple Structures**

*Example: Add "First Aid" requirement for the "Logistics - Expert I" and the "Blue" shift.*

1\. Open the **Skill requirements** Page

2\. Click the **Create skill requirement** button

3\. Select the relevant **Organizational structures** in the **Groupings** field (1+)

4\. Select the required **Skill**

5\. Save your changes

This requirement will now apply only to employees who are both "Logistics - Expert I" and who work at the Shift "Blue" .

![](https://cdn.elev.io/file/uploads/tfNHbase18C9irCYFEYUJIWBYNbJEZKpwfnSxeUHdUg/rhcBru1BWK_OnBMxB9qVW4TB1duCVdsfd7sANIdAwiI/multiple-BfU.gif)

#### Using the same requirement with different groupings <a href="#h_71980684f6" id="h_71980684f6"></a>

AG5 allows you to use a skill as a requirement for different groupings at the same time.

For example, this means you could add a level 1 requirement for everyone in a department, and the same requirement but level 2 for a team of specialists within that department:

![](https://cdn.elev.io/file/uploads/tfNHbase18C9irCYFEYUJIWBYNbJEZKpwfnSxeUHdUg/w2mfHg7GKmpn2aPAzDFVr4Bgk5NtVYlUHcIahOJgHTQ/1700661103202-8Ug-GV8.png)

#### Using tags to create combined requirements

It is also possible to add tags to requirements to make them more specific.&#x20;

For example, here we have made "Customer Relations" a requirement for everyone at the Wayne Enterprises organization:

![](https://cdn.elev.io/file/uploads/tfNHbase18C9irCYFEYUJIWBYNbJEZKpwfnSxeUHdUg/-q5wVtPuv7QN_i5RK59CEPOWJBVTrKSTCYPd9PA3hU8/1700661257390-iMg-i1g.png)

On the right and above "Required Score", there is a grey field for adding new tags. Other groupings can be added as tags here to make this requirement more specific.&#x20;

In this example, we're further specifying that everyone at Wayne Enterprises who also has the Logistics - Expert 1 role, must be level 1 at "Customer Relations".&#x20;

Combined tags always use an **AND** function, meaning in order for the requirement to kick in, an employee **must** have all listed tags.&#x20;

![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/vzg0gSKRZpPPAwuhSEg_d5SCSMWHPyUSMMGnCM418DM/combined%20tags-s_M.gif)

#### Creating results

Now it's time to create results! Results can be created for skills with defined requirements, as well as for those without. [You can read more about creating results here](/skills/skill-results).

#### Deleting requirements

There are two ways to delete requirements.

1. Via Organizational structures
   1. Find where the requirements you want to delete are on the organizational structure.&#x20;
   2. Select the requirement and remove by clicking on the the trashcan icon: \
      ![](https://cdn.elev.io/file/uploads/tfNHbase18C9irCYFEYUJIWBYNbJEZKpwfnSxeUHdUg/IJcEDfeqqWQ0Mru5_uo4N9hwXKLfn0kdpcUTjOmfeg8/1713180179422-vAk-AAM.png)
2. &#x20;Via Skill requirements
   1. Navigate to the Skill requirements page (Organization > Skill requirements)
   2. Filter for the grouping you want to remove the requirements from. In the below example, we filter for the Production Department.
   3. Select the requirements you want to remove and Delete Rule by clicking on 'Actions':\
      ![](https://cdn.elev.io/file/uploads/tfNHbase18C9irCYFEYUJIWBYNbJEZKpwfnSxeUHdUg/oGtVjaf0Dzy0eY4G9kqPfvUHS3bmR_qq6osOPQbG2H4/1713180401239-9iQ-Wu4.png)


# Skill planning

Latest update: July 6th, 2026

### 1. What is skill planning?

Skills planning lets you schedule when a skills gap will be closed, ensuring your team is fully qualified for the tasks ahead. This way, you don’t just see missing skills - you know exactly when employees will complete their training or certifications.

### 2. Why is this important?

* **Improved Forecasting**: You’ll know when your team will be ready for future projects.
* **Better Resource Allocation**: Managers can plan staffing based on upcoming skills.
* **Proactive Compliance**: Never miss a certification renewal deadline.

### 3. How to plan for closing a skills gap <a href="#h_94268d84bc" id="h_94268d84bc"></a>

#### **Method one: via the Matrix**

* **Open the Skills Matrix**:\
  Navigate to the skills matrix for your team.
* **Find the skills gap**:\
  Look for skills with a gap (empty circle, alert, or a red icon) next to an employee’s name.
* **Open the planning dialogue:**\
  Click the skill you want to plan for. A pop-up will appear. Select the 3 dots next to "Add a result" and instead, select "Add planning".

{% hint style="info" %}
Any plannings that already exist for this skill or employee are visible in the details pane
{% endhint %}

* **Set a desired score**
* **Set a deadline date**:\
  In the pop-up, choose the date when the employee will complete their training or certification. This could be a future course, on-the-job training, or a certification renewal.
* **Add remarks**\
  If needed, remarks can be left here.
* **Save the planning**:\
  Once the date is set, hit "Save" to record it. The matrix will now show that a plan is in place for that skill.
* **Edit plannings**\
  A planning can be edited by clicking on the result and then the 3 dots.

![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/1LX60rflENO_QXuhzxNs_9YuDrvbk3awBWiKDZDQBNA/plannings-64w.gif)

#### **Method two: Multiple plannings via the Matrix**

* Instead of clicking on an individual skill gap, select the skill itself from the relevant skill matrix axis
* Click on the 3 dots and then "Add multiple plannings"
* Select the desired score.
* Select the deadline date.
* Add any necessary remarks for all employees.
* Click "Next", and then "Save X skill plannings".

![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/rVdi_aAI7RMlFg7ySKOSZxtERFMaapI9HM8gQTSZHJc/Nov-05-202415-45-09-5go.gif)<br>

#### **Method three: Via the Skill planning page**

* Go to the "Organization" page via the menu.
* Scroll down to "Skill plannings".
* Select the *"*&#x43;reate a skill plannin&#x67;*"* button.
* Follow the same steps as above.

![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/fynYxdtA8i2FTeVgDiT_JG8sdqCNwRnmcbIHvGv4bkw/plannings2-AzA.gif)

#### **Method four: Via employee profiles**

1. Go to the *"*&#x45;mployee&#x73;*"* tab.
2. Select an employee to see their profile.
3. Select the three dots next to the skill which needs to be planned.
4. Select *"*&#x41;dd planning".
5. Follow the same steps as above.

![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/ykeI0PloGkPm8LTZun-a9wH3dGtchApnMd2LhuHgeWY/planning3-Ktw.gif)

#### **Method five: On a skill page**

1. Go to the "Skills" page and select the skill in question.
2. Find the employee, and select the three dots next to their name.
3. Select *"*&#x41;dd planning".
4. Follow the same steps as above.

   > Note: creating a planning on a skills page only works if there is a requirement or an expired result. Plannings for skills that aren't required or expired must be done from the matrix or the employee profile.

\
![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/GaDJeCWpLP1f_uCtLQKRFIS9y3SH4gX4CluF78FhgCk/planning4-LUw.gif)

### **4. How to know a skill is planned?**  <a href="#h_c7d1c0bfac" id="h_c7d1c0bfac"></a>

The blue dot at the right top corner of a skill result indicates that there is a work in progress for that skill.

Examples of the blue dot:

![](https://cdn.elev.io/file/uploads/D1BCUVNmpfyNXS3qGXZdLFMfdrUiR9tXejv0vEBzhc4/_JVIrq50r93tVKZ_IzyWeRR6rY1xb35dn6muz88Agho/1665923230141-pVs.png)

Or

![](https://cdn.elev.io/file/uploads/D1BCUVNmpfyNXS3qGXZdLFMfdrUiR9tXejv0vEBzhc4/gIrWdf4Chv78gaYNhG5YmZfNw6dB1ObuamkGU-LLFUU/1665923181397-njc.png)

Be aware, a blue dot can also indicate one of the following:

* The skill is planned.
* The skill result is waiting for approval.
* The skill has an open self-assessment request.

You may need to click on the individual result to understand what the dot signifies. Under the details pane, plannings are shown along with the set deadlines.

![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/vxBE0LgfO6dTZS2oknkvMtKGxMTmzMSkh6wM5xXj6Uk/1728392722248-LG0.png)

### 5. Use cases <a href="#h_17a3eb726f" id="h_17a3eb726f"></a>

*"As an operations manager, I want to plan when my field engineers need to obtain their safety II skill to avoid statutorily fines."*

*"As a sales team manager, I know there is a new product knowledge requirement across the sales team for a new product. A training is planned and I want to ensure I can remove these planned trainings as skill gaps from my overview."*


# Rating scales

Latest update: July 6th, 2026

### 1. What is a rating scale?

A rating scale is a scale that can be used in skills management to define the skill level of an employee for a specific skill.&#x20;

### 2. What is the purpose of a rating scale?

The purpose is to have an accurate understanding of someone's skill level.&#x20;

### 3. How to create and use rating scales?

In AG5 you are able to create multiple rating scales. But, you can only use one rating scale per skill. So it is important to define what rating scale you want to use for your skill.&#x20;

The important attributes of a rating scale level are:&#x20;

* **Name**: This is the name of the level.
* **Description**: Here you can describe the meaning of the level.&#x20;
* **Code**: Here you can use a unique code for this level.

> The level descriptions can be made visible while adding results.&#x20;

![](https://cdn.elev.io/file/uploads/tfNHbase18C9irCYFEYUJIWBYNbJEZKpwfnSxeUHdUg/ozHKS-lU0EqL0555rkcHRRisSsjDSziIJRrI7qzWnhs/RatingScales-a6c-VnY.jpg)

You can create/define a new rating scale on the rating scale page. For this, you go to Organization > Rating scales. See the below video on how to create a new rating scale.&#x20;

![](https://cdn.elev.io/file/uploads/D1BCUVNmpfyNXS3qGXZdLFMfdrUiR9tXejv0vEBzhc4/wiLoocwZMLK4Ke9CWoDUQVXd9ej8sOfqPGlf0tG1X1g/CreateARatingscale-Tbc.gif)

### 4. Skill-specific level descriptions?

Each skill has a certain rating scale. And this rating scale can be used for different skills.  But, the meaning of each rating scale level can be different per skill. And to make sure every user has the same understanding of what exactly each level means you can describe each level within the skill detail page.&#x20;

Read in [this article](/skills/level-descriptions) all about defining skill-specific level descriptions.


# Skill results

Latest update: July 7th, 2026

This article explains what skill results are, who can add them, what the different scores mean, the different methods for adding them, and where to view and track all results.

### 1. What is a skill result? <a href="#h_b661cb5742" id="h_b661cb5742"></a>

A skill result is a score recorded against both a skill and an employee on a specific date. Results can be obtained by an employee after attending a course, taking a test, doing training, or any other form of assessment.

Results exist as records to provide insight into whether or not an employee is qualified for a specific skill.

> Often, results are created when [a skill is required](/skills/skill-requirements) for an employee to be able to do their job. However, it's also possible to record results for skills which are not strictly required.

### **2. Who can add skill results?** <a href="#h_0998f7f87b" id="h_0998f7f87b"></a>

Users who have the correct system role and authorization rights can add results:

| **Example: Business role**                     | **AG5 role** | **AG5 Authorization**                      |
| ---------------------------------------------- | ------------ | ------------------------------------------ |
| Manager                                        | Superuser    | Superuser edit rights                      |
| Employee                                       | Employee     | Portfolio edit rights                      |
| External trainer                               | User         | Matrix edit rights                         |
| A manager from another department (option 1/2) | User         | Matrix edit rights                         |
| A manager from another department (option 2/2) | Superuser    | Superuser edit rights                      |
| Senior employee                                | Employee     | Portfolio edit rights & Matrix edit rights |

Who you want to give the rights to add skill results will depend on your organizational structure. Read in these articles more about [roles and authorizations](/accounts-roles-and-permissions/user-accounts).

### 3. What do the different scores mean?

Results are scored against whichever [rating scale](/skills/rating-scales) is applied to a skill. All rating scales range from 0 (Failed) to an achievement of 1 or more.&#x20;

Broadly speaking, a "Failed" result means that it has been attempted, but not achieved.

Failed results count just the same as Achieved results do towards your results total.

[You can read more about rating scales here.](/skills/rating-scales)

### **4. How to add results?**

There are several ways to add a skill result. You can either add a result for a single employee or add results for multiple employees at the same time. See below for the textual and visual explanations of the different methods of adding results.

**Information required**

1. Date (required)
   * This is the date that this result was verified. Although it defaults to the present date, it can be changed and does not have to be the same date as the day a result is entered into AG5. AG5 separately tracks both the date submitted here, as well as the date of entry.
2. Score (required)
3. Expiration date (optional)
   * If the skill has no default validity period, this field will start empty.
   * If the skill in question has a default validity period, then the expiration date will be automatically calculated according to that.
     * You can override this date if necessary.
4. Remark (optional)
   * There are no character limits for remarks.
5. Attachment (optional)

> It's not currently possible for AG5 to set optional fields as required fields (e.g. remarks, attachments).

#### **Method 1:&#x20;*****Via the matrix for a single employee***

1. Open a matrix.
2. Select a skill of an employee.
3. Select the <img src="https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/fWySQ8X7UTHe-cI5VC8Y_HozhVLL-JfsHLM47BCvYd8/Add%20result-vSU.png" alt="" data-size="line"> button.
4. Verify the date of assessment, which defaults to the current day (AG5 stores both the date of achievement, chosen at the top, and the date of entry).
5. Select the achieved score.
6. Add the expiration date of the achieved skill (optional).
7. Add a remark (optional).
8. Add an attachment (optional).
9. Select the <img src="https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/KHv_T9NQqZrP4TXJwfhd9TnRDkeOdJ2ay4CCOu0mDO8/Save%20Button-3jc.png" alt="" data-size="line"> button.
10. Your skill result has been saved and the matrix is updated.

![](https://cdn.elev.io/file/uploads/tfNHbase18C9irCYFEYUJIWBYNbJEZKpwfnSxeUHdUg/7_dnduyDdKuE7zZyd7uQoF_4ypxxt-_6wyrDXhtXW7Y/result-Woc.gif)

#### **Method 2:&#x20;*****Via the matrix for multiple employees***

1. Open a matrix.
2. Select a skill.
3. Select the <img src="https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/kooQiT6eTlAsiwUcnHiD5y-WfaVNYDSlX6kI-1rfdx8/Add%20multiple%20results-KaQ.png" alt="" data-size="line"> button.
4. Verify the date of assessment, which defaults to the current day (AG5 stores both the date of achievement, chosen at the top, and the date of entry).
5. Add or override the expiration date of the achieved skill (optional).
6. Select the default achieved score.
7. Add a remark to be applied to **all** employees (optional).
8. Add an attachment to be applied to **all** employes (optional).
9. Select the default achieved score applicable for **all** employees.
10. Select the <img src="https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/GBMMUUbkscTiXAd-YigPaQ7KDp-lYrmGyy3DKiLuQ9M/Next%20button-F50.png" alt="" data-size="line"> button.
11. Verify each result for each employee. If you have selected a default score, then you'll only have to change scores for those employees who did not meet the default score.
12. To enable unique remarks or attachments for only *some* of these employees instead of for all, click on ![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/6U0vDVA6L6QLIXGT4ECceLM2ZmSJSmx-GLEhPSYGL9c/Open%20all%20cards-Ruc.png)or the![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/tEdFXj4Wb96UH5Ofhv58REYqeoed4TORd2qMoeLuNm8/Fold%20open-9CI.png)symbol (which appears after first selecting a score), to enable this.
13. Select the<img src="https://cdn.elev.io/file/uploads/tfNHbase18C9irCYFEYUJIWBYNbJEZKpwfnSxeUHdUg/a1qe-JwzpU2MtdpMlGn9DUMP44-Qbx2zJR9JOYZn-9U/Screenshot2024-05-17at151530-kg4.png" alt="" data-size="line"> button (the number will dynamically reflect how many results you are saving).
14. Your skill results have been saved and the matrix is updated.

![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/ZKkvjcTsFsMFlzcSD4t9iUdC42Y41GYKeDSS2xG_ta0/Adding%20multiple%20results%20from%20matrix-6xQ.gif)

#### **Method 3:&#x20;*****Via the employee profile page for a single required result***

1. Select an employee to see their profile.
2. Go to the *"Employees"* page from anywhere in AG5.
3. Find the right skill.
4. Select the![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/WlTjz7wvMg5s4eld53RVFuvM7hn0YUowGoZDc_Aku2I/Add%20results%20\(medal%20symbol\)-CIw.png)symbol next to your chosen skill.
5. Verify the date of assessment, which defaults to the current day (AG5 stores both the date of achievement, chosen at the top, and the date of entry).
6. Select the achieved score.
7. Add or override the expiration date of the achieved skill (optional).
8. Add a remark (optional).
9. Add an attachment (optional).
10. Select the <img src="https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/SaJEIim7BektzcDiWba7xnUlbxHpn7V2GQJPh8A62Zo/Save%20Button-P68.png" alt="" data-size="line"> button.
11. The skill result has been saved.

![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/WlVdoN-WhH3Mgv8wLgSaxV4LWnn25MoeGRjcpw78svE/Single%20result%20emp%20page-Qmc.gif)

#### **Method 4:&#x20;*****Via the employee profile page for multiple results***

#### Because the layout is the same, this method works both for admins, superusers and managers accessing an employee profile, **and** for My Portfolio users who are logged in and have edit rights to be able to add results for themselves.

1. Go to the *"Employees"* page from anywhere in AG5.
2. Select an employee to see their profile.
3. Select the skills you want to add results for via the checkboxes on the left side.
4. Select the <img src="https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/eEGTwvsFCvhJcx0eSoS_SiZF9g8BQPNxKd0Ktw1peDc/Actions%20button-Faw.png" alt="" data-size="line"> button which appears on the right.
5. Select the![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/MMGJXQqsMZKm4NaWBI86J4-obhieE6w6EOe3buH-g4A/Add%20result%20in%20white-6Mo.png)button.
6. Verify the date of assessment, which defaults to the current day (AG5 stores both the date of achievement, chosen at the top, and the date of entry).
7. Select the default achieved score.
8. Add or override the expiration date of the achieved skill (optional).
9. Add a remark to be applied to all employees (optional).
10. Add an attachment to be applied to all employees (optional).
11. Select the <img src="https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/_BGYj_G-LA-aiNn9dXCI-ybVZf_27qj9VpSzqjMOmAM/Next%20button-9pc.png" alt="" data-size="line"> button.
12. Verify each result for each employee. If you have selected a default score, then you'll only have to change scores for those employees who did not meet the default score.
13. To enable unique remarks or attachments for only *some* of these employees instead of for all, click on ![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/6U0vDVA6L6QLIXGT4ECceLM2ZmSJSmx-GLEhPSYGL9c/Open%20all%20cards-Ruc.png)or the![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/tEdFXj4Wb96UH5Ofhv58REYqeoed4TORd2qMoeLuNm8/Fold%20open-9CI.png)symbol (which appears after first selecting a score), to enable this.
14. Select the<img src="https://cdn.elev.io/file/uploads/tfNHbase18C9irCYFEYUJIWBYNbJEZKpwfnSxeUHdUg/-are-yU19jDcjGAqpsa6G0gUtgrtpqz47OiQrSIcVUY/Screenshot2024-05-17at151530-7Kk.png" alt="" data-size="line"> button (the number will dynamically reflect how many results you are saving).
15. Your skill results have been saved.

![](https://cdn.elev.io/file/uploads/tfNHbase18C9irCYFEYUJIWBYNbJEZKpwfnSxeUHdUg/c0K9Mp4Sliopqod7pfSUYs1M_IHo3fdPRjZFlut1jMk/addresultemp-ePQ.gif)

#### **Method 5:&#x20;*****Add multiple results for a single skill to multiple employees***

1. Go to the *"Employees"* page from anywhere in AG5.
2. Filter or search for the employees in question.
3. Select the employees you want to add results for via the checkboxes on the left side.
4. Select the <img src="https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/ENGE_K3Yxj3om_Wsqbq3Q3VULFEypBG1dKjUIrQnj-I/Actions%20button-Wjw.png" alt="" data-size="line">button which appears on the right side of the screen.
5. Select ![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/TDASgsGxvBV2VPaux7uTERav1WfAqlKbzJpeNce_VD0/Add%20result%20in%20white-0fc.png).
6. Search and select the skill in question.
7. Verify the date of assessment, which defaults to the current day (AG5 stores both the date of achievement, chosen at the top, and the date of entry).
8. Add an expiration date to be applied for all employees (optional).
9. Add a remark to be applied to all employees (optional).
10. Add an attachment to be applied to all employees (optional).
11. Select the default achieved score.
12. Select the <img src="https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/l0ioGZmPKc62ew27Lva-JjldgYjKD68y6ulHAvot16k/Next%20button-H84.png" alt="" data-size="line">button.
13. Verify each result for each employee. If you have selected a default score, then you'll only have to change scores for those employees who did not meet the default score.
14. To enable unique remarks or attachments for only *some* of these employees instead of for all, click on ![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/6U0vDVA6L6QLIXGT4ECceLM2ZmSJSmx-GLEhPSYGL9c/Open%20all%20cards-Ruc.png)or the![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/tEdFXj4Wb96UH5Ofhv58REYqeoed4TORd2qMoeLuNm8/Fold%20open-9CI.png)symbol (which appears after first selecting a score), to enable this.
15. Select the<img src="https://cdn.elev.io/file/uploads/tfNHbase18C9irCYFEYUJIWBYNbJEZKpwfnSxeUHdUg/LKK932VcMcaULoJ3NBcqQSB56BxnG4OP8H0dCUbB6OE/Screenshot2024-05-17at151530-kvo.png" alt="" data-size="line">button (the number will dynamically reflect how many results you are saving).
16. Your skill results have been saved.

![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/tH_vZIVXSzbMRY8kk6UMBPPdxC0KSf7qKvw0vSePpi0/Multiple%20results%20from%20emp%20page-aeY.gif)

#### **Method 6:&#x20;*****Via the skills results page***

1. Go to the "*Organization*" page from anywhere in AG5.
2. Go to the "Skill *results*" page from Skills section.
3. Select the <img src="https://cdn.elev.io/file/uploads/tfNHbase18C9irCYFEYUJIWBYNbJEZKpwfnSxeUHdUg/wS3J8VXjpK4Z3J5IAoHnZElI5JYqjrmIV_lGRnq5n3Q/Screenshot2024-05-17at152237-fUo.png" alt="" data-size="line">button.
4. Select the date.
5. Select the employee.
6. Select the skill.
7. Select the score.
8. Select the expiry date (optional).
9. Add a remark (optional).
10. Add an attachment (optional).
11. Select the <img src="https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/etf4A4cPU4oFU4DYp3Zf2uRD79GZTZ7G2DQOopuEfmA/Save%20Button--k4.png" alt="" data-size="line"> button.
12. Your skill result is saved.

![](https://cdn.elev.io/file/uploads/tfNHbase18C9irCYFEYUJIWBYNbJEZKpwfnSxeUHdUg/7aFYlSLf7E6Eowo1Bdf0xEFrlctOWu9QV6j7C7avV0U/skillsresultpage-1rM.gif)

#### **Method 7: Through Self-Assessments**

It's also possible to submit results via a Self-Assessment. [You can read more about those here.](/employees/self-assessments)

#### **Method 8: Auto-achieved by prerequisites**

Results can be automatically achieved through AG5 by [setting up prerequisites, which you can read more about here](/skills/prerequisites). Automatically achieved results are just as valid as manually submitted results.

#### **Method 9: Auto-achieved through LMS integration**

Results can also be automatically submitted by your Learning Management System (LMS), if you choose to integrate it with AG5. Automatically achieved results are just as valid as manually submitted results.

### 5. Where can I see all results?

You are able to view and track all results added from the Skill results page, which is found under Organization. This also includes results which are auto-achieved, in case you have set up [prerequisite rules](/skills/prerequisites).

Filters are available, if you're looking for a specific set of results.

![](https://cdn.elev.io/file/uploads/tfNHbase18C9irCYFEYUJIWBYNbJEZKpwfnSxeUHdUg/IW-CLEYDWzJAeRrH2ma7kzbK8xTNSpFgCSU0DgVMXFY/Screenshot2024-05-17at152552-Rk0.png)

The **total number of results** is visible both in the Skills section and from within the Skill results page.

![](https://cdn.elev.io/file/uploads/tfNHbase18C9irCYFEYUJIWBYNbJEZKpwfnSxeUHdUg/QzUKdpWbwDl8KfzqAiflX0Kb9NWiCJ5UlsNUJ08qcF0/Screenshot2024-05-17at152626-87k.png)

![](https://cdn.elev.io/file/uploads/tfNHbase18C9irCYFEYUJIWBYNbJEZKpwfnSxeUHdUg/fDifYyxQNi7hemSM5_BYhQKaI8g25cn2kGIUjVA9mq8/Screenshot2024-05-17at152712-Gyg.png)

<br>


# Results approvals

Latest update: July 9th, 2026

### **1. What is the result approvals?** <a href="#h_93f5c65ae2" id="h_93f5c65ae2"></a>

The result approval process is the process in which skill results need approval before these results are definitively active and visible throughout the system.

### **2. What is the purpose of the result approvals?** <a href="#h_86dae7f688" id="h_86dae7f688"></a>

The purpose of the result approval process is threefold:

1. To have more control over the data quality
2. So managers can easily track new results for their 'direct (/subordinate) employees' which were added by others. (because the direct manager will have to approve these new results).
3. And last but not least, managers can more easily monitor the quality of his/her employees' performance.

### &#x20;**3. Who approves the skill results?** <a href="#h_7969da1336" id="h_7969da1336"></a>

A new skill result for an employee, should by default be approved by the direct manager.

The direct manager of an employee is set on the employee's detail page. This manager becomes responsible to approve the skill results of his/her employees.

When an employee doesn't have a manager, then the result should be approved by an "admin user".

**Important notes:**&#x20;

* For requested self-assessments, the approver is currently set to the user who created the request, and so, not set to the direct manager. You can read more about this in the self-assessment article.
* It is not mandatory, but we think it is good practice that every employee has a manager assigned, who becomes first responsible for approving the employee's result.
* An Admin user can always approve the results of all employees, even when the direct manager is made first responsible to approve. In the approval list for admin users, they can easily filter approvals that have or have not assigned a specific manager to do the approval.
  * The only exception is that admin users can't approve results that are added when other managers have sent self-assessment requests.&#x20;

### **3.1 Approval by a subject matter expert**

Another option in the result approval process is that results can be approved by subject matter experts. These are users in AG5 who have been defined as the owners of skills.&#x20;

When this feature is enabled then each new result needs to be approved by the user that has been selected as the owner of that skill.&#x20;

### 3.1.1. How to define an owner for a skill?

When the approval by the subject matter expert feature has been enabled for your AG5 then you can define skill owners. When you create a new skill or on the skill detail page, you can select another AG5 user as the owner of the data.&#x20;

Only users that have an account in AG5 can be selected as data owners.&#x20;

### **4. Which skill results need approval?**

With this feature the following results need to be approved:

* Results submitted by employees themselves (Self-assessments)
* These can be requested self-assessments or self-initiated self-assessments.
* Results submitted by others, with 1 exception, see below.

**There is 1 important exception:**&#x20;

The skill results added by a manager for his/her direct subordinate employees, **do not need approval**.

In the example below, the results added by Jacky Williams for Millie Abbott, do not need approval. Because Jacky is set as the direct manager of Millie.

![](https://cdn.elev.io/file/uploads/f3BkjBBjagbyfRgzoCQ3V4Izo060ub26F6WuyO6n_L0/DRTsa-vFF0D-uy1l7jP1v4ZComYGx009SR2L9EHGYEY/image-2C4.png)

### &#x20;**5. How to approve skill results?**

1. In the top navigation bar, on the right, select the control center icon:<img src="https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/fdpbXn5cQXK7XlAHmHl8NE0Dn3yKPsoAQs-dHBUQepw/Control%20Center-6l8.png" alt="" data-size="line"> This icon will have a number next to it if approvals are waiting.
2. Next, select the section "Skill results to approve". In addition to the number next to the control center icon, you'll see it listed here if there are approvals waiting.\
   ![](https://cdn.elev.io/file/uploads/tfNHbase18C9irCYFEYUJIWBYNbJEZKpwfnSxeUHdUg/GuZ8_NjMHu_XKo5o0qZWzB5M8jPsOhTzHpOilx8GTRw/Screenshot2024-05-21at110734-DUg.png)
3. Per skill result; approve, override or reject.
4. Click the blue "Save results" button to submit your approvals, overrides, or rejections.

![](https://cdn.elev.io/file/uploads/tfNHbase18C9irCYFEYUJIWBYNbJEZKpwfnSxeUHdUg/mBA6HI9Yccug19CoDUNaSz-50a5cmZgbrsFH9EofU5E/resultapproval-zGI.gif)Click on this image to enlarge

&#x20;

**Important note:** The requested self-assessments are approved differently. You can read more about this in the [self-assessment article](/employees/self-assessments).

### **6. How to know that a skill result is waiting for approval?**

When a skill result is waiting for approval, it will be **visually indicated** at the top right corner with a **blue dot**. This blue dot is a general indicator that some action is taken and a new skill result is probably upcoming soon.

Examples of the blue dot:

![](https://cdn.elev.io/file/uploads/HGuPjpGnL3SnVQD1vwUIgJ7PD6rsnCvnjH-1oUOTGLw/iCfvuiAztkRo7VP_sMUKx1utMtS-lt9jxdlHgOpxs-A/image-m1Y.png)

A blue dot can indicate one of the following 'actions is taken':

* The skill is planned (some training/e-learning is scheduled)
* The skill result is waiting for approval
* The skill has an open self-assessment request (is waiting for an employee to do the self-assessment).

### **7. Enable this feature**

The results approval process feature of AG5 is an advanced feature that isn't enabled by default. So if you want to use this in your organization please contact our support.

[Contact support](mailto:support@ag5.com)


# Level descriptions

Latest update: July 16th, 2026

### 1. What is a level description?

A textual description of what each level means.\
(levels that are set as achieved result or minimum requirement)<br>

### 2. What is the purpose of a level description?

To make sure every user has the same understanding of what exactly each level means.\
&#x20;In the picture below, you can see the level descriptions that are specifically defined for the skill "Drilling".

![](https://cdn.elev.io/file/uploads/tfNHbase18C9irCYFEYUJIWBYNbJEZKpwfnSxeUHdUg/Mqszrmxglr1gP9rizWpnOk4S7KTWXMq0D08zWathSns/Leveldescriptions-ntc-ml4.jpg)

This is especially important when different users can create new skill results (e.g. when you have many trainers or are using self-assessments). They need to have the same understanding of what each level means. &#x20;

### 3. How to create level descriptions?

You can define general level descriptions within a rating scale,  or specifically within a skill. And these level descriptions can be made visible while adding skill results.

Read in [this article](/skills/rating-scales) how you can define general level descriptions within a rating scale.


# Requirement exemption

Latest update: July 16th, 2026

### 1. **What is a requirement exemption?**

A requirement exemption means that some specific person is excluded from / does not have to fulfill a certain skill requirement. Even though according to their position (e.g. job role XX), it is a requirement, as long as the exemption is active, the requirement is muted for this employee. For all other employees with job role XX, this requirement still exists.

### **2. What is the purpose of a requirement exemption?**

The purpose is to make exceptions possible but still be explicit about why someone is (temporarily) excluded from some requirement rule. With such an exemption, the skill will not be shown as a gap (red) in the skills matrix, alert list, or employee detail page.

### **3. How can I exempt employees?**

You can create 'requirement exemptions' for employees via the matrix, or via the organization tab.&#x20;

**Via the matrix:**&#x20;

![](https://cdn.elev.io/file/uploads/D1BCUVNmpfyNXS3qGXZdLFMfdrUiR9tXejv0vEBzhc4/29L5DW2JKuxerW-RY2Yoe9Z5G0hoLga8n1jolm2feBU/ExemptionViaMatrix-R78.gif)

**Via the organization tab:**

![](https://cdn.elev.io/file/uploads/D1BCUVNmpfyNXS3qGXZdLFMfdrUiR9tXejv0vEBzhc4/Ad2d2H_6BxuPHJWjD_EhU3IqH_iINRUkbYGHrCvdpS8/ExemptionViaOrganizationTab-LMQ.gif)

<br>


# Skill revocation

Latest update: July 16th, 2026

### 1. **What is a revocation?**&#x20;

A revocation in AG5 is the ability to withdraw an employee's skill for a period of time or permanently.&#x20;

### **2. What is the purpose of the revocation?**&#x20;

It provides a more accurate view of the skills of employees because registering skills explicitly as 'revoked' is more correct than e.g. deleting them or setting them to 'failed'. Because if you delete this skill, the arising skill-gap could be solved by planning a new training (as you normally do for missing skills). But when it is revoked, something special is going on, and this should not be neglected.

For example:&#x20;

An employee can’t perform a specific skill (driving a forklift) anymore due to physical limitations (i.e. broken leg). Then the manager can revoke that specific skill for a certain time. During this period the skill will be invalid (seen as not achieved). And when the revocation ends or is deleted then the skill will become valid again.

Example reasons:&#x20;

* Temporary use of medicine
* Regulatory reasons (fines)
* Too many incidents
* Physical limitations
* Pregnancy

### **3. How can you revoke a skill?**&#x20;

You can revoke an employee's skill via the matrix page, the employee profile, and the employee list page.


# Custom fields

Latest update: July 16th, 2026

### 1. What is a custom field?

Custom fields are additional fields that can be added to skills and employees.

### 2. What is the purpose of custom fields?

Custom fields can be used to track information that is not already included in AG5's default fields of the skill or employee page. This includes information such as training budget, training provider, training cost, phone number, second email, or the duration of training.&#x20;

Using custom fields enables you to expand AG5 data with data uniquely relevant to your business.

### 3. How to create a custom field?

Creating custom fields is currently possible through our support team. To add them, please contact <support@ag5.com>. Provide us with the name of the field, the type of the field and on what page you want this field to be visible. It will be possible to create custom fields yourself from AG5 in the future.&#x20;

When sending a request to [support@ag5](mailto:support@ag5.com), you can use the following table as an example:

<br>

| Employee | Phone number            | Text     |
| -------- | ----------------------- | -------- |
| Employee | Performance review date | Date     |
| Skill    | Training duration       | Duration |
| Skill    | Training cost €         | Number   |

### 4. How to use custom fields?

Currently, the custom fields are visible on the employee page or skill page. Also, you can export the data from the skill page or employee page. Soon we will launch the functionality to search and filter based on your custom fields on the skill and employee page.

### **5. Considerations:**&#x20;

* The type "Number" cannot accept decimals at this moment. This will be available in the future.
* Currently, you can only add 4 custom fields within the skill or employee page.

{% hint style="info" %}
Please note that as a new addition to the platform, the custom fields feature is currently undergoing development and refinement. We are dedicated to continuously improving this feature and adding new functionality to enhance the user experience.
{% endhint %}


# Prerequisites

Latest update: July 16th, 2026

This article explains how to create and manage prerequisite rules in AG5, allowing skills to be automatically or manually achieved based on the completion of other required skills. Prerequisites allow you to create skill requirements that depend upon other skills being achieved first.&#x20;

For example, a 'Project Risk Management' certificate might have 3 training courses as real-life requirements in order to achieve it. In AG5, you can create 3 separate skills for these trainings, and link these to the 'Project Risk Management' certificate as prerequisites.

A prerequisite can be achieved automatically as soon as connected skills are achieved - or it can be manually achieved by adding a result. Prerequisite rules can be very specific, as you can indicate the exact level that must be achieved for each skill.

### **Enabling prerequisite rules**

Prerequisite rules are not enabled in AG5 by default. To do so, please send your request to <support@ag5.com> or speak with your onboarding manager.&#x20;

### **Creating prerequisite rules**

To add prerequisite rules, open the skill to which the rule should apply. Within the rating scale, you can set rules for each level of that skill by clicking on the '+ New' button on the right-hand side of the screen.

![](https://cdn.elev.io/file/uploads/7gcbr1LiVY8CeYydm_ADiRjfQh280j1oLlUR1fbmQP8/CUYpskClc9dSbkH51rPiA7kkqEO2q4Ob3PiPvU9WRas/Frame1171276208-0TM.png)

This will open the following dialogue:

![](https://cdn.elev.io/file/uploads/7gcbr1LiVY8CeYydm_ADiRjfQh280j1oLlUR1fbmQP8/NsNQ_YgddCVLik7WYabXKPVacPnJ7aY_LGIXXaxBN54/Screenshot2025-01-25at1509481-sMA.png)

Next, select the prerequisite skills and the required levels of each.

![](https://cdn.elev.io/file/uploads/7gcbr1LiVY8CeYydm_ADiRjfQh280j1oLlUR1fbmQP8/Gvhn2hwv_8tI2-wYacpjBhsWGZc5H-V_0cfxuQDT3yc/9E6EA7B1-A338-45D9-A86D-347258360573_1_206_a-pC4.jpeg)

* After that, select the scope of the prerequisite, which means should employees have to achieve all prerequisite skills, **or** is achieving (X / Total skills) sufficient?
* Then, choose the type of dependency. This determines if the result should be **automatically** **achieved**, OR if manual achievement is always allowed. If the '**Allow with warning**' option is selected, users can still add the result even if the prerequisite skills aren't fulfilled, but they will see a warning.
  * Try and stick with the "auto-achieves" type of dependency. This has the greatest time saving impact.&#x20;
* Note that the active period determines when the prerequisite rule is active. This affects all auto-achieved results.

### **Managing prerequisites**

When this feature is enabled, the following options in the Organization tab will appear:

* **Prerequisite rules.** This will show all prerequisite rules – and their relevant details – in your environment. You can also filter and export from this list, as well as add new prerequisite rules from the “+ Create prerequisite rule” button on the top-right of the screen.

![](https://cdn.elev.io/file/uploads/tfNHbase18C9irCYFEYUJIWBYNbJEZKpwfnSxeUHdUg/5ldWjVvruZbZH7v9ZWO65uHzsW7Sfa6pCeUkTVIv4eU/preqrule-HsU.gif)

The dialogue is the same, except that it is necessary to first select the main skill and its level.

**Skill results** page will enable you to filter out auto-achieved results, allowing easy overview of generated results.&#x20;

> **Important notes:**
>
> * Creating a prerequisite rule will retroactively apply to all existing results. For example, if skills A and B have already been achieved, and afterwards you create a rule stating, “Skill Z is auto achieved when skill A and skill B have been achieved,” the result for skill Z will be automatically created.
> * Changing prerequisite rules will also automatically revoke auto achievements. For instance, if Skill Z was auto achieved because of Skill A and B, and you change the rule to include Skill C as a requirement, then Skill Z will immediately be un-auto achieved for employees, with no record of prior achievement saved.
> * If you want to maintain a record of previous auto achievements, you must archive the first prerequisite ruleset (A+B=Z) and create a new rule for the updated set (A+B+C=Z). This ensures prior achievements are preserved.
> * Archiving a prerequisite is done by editing the rule and entering any date prior to today in the 'To' field under the 'Active period' section.![](https://cdn.elev.io/file/uploads/7gcbr1LiVY8CeYydm_ADiRjfQh280j1oLlUR1fbmQP8/IEWL7sTWaWsxdo2PT1Oi10Cf7sr8XeMp-bDyG_NaXFM/Frame1171276209-RTw.png)
>
>   <br>
> * You can create a prerequisite structure within a single skill so that each level requires the previous one to be achieved first.
> * You can also create prerequisite rules for each level on a rating scale. For example, in a five-level rating scale, a single skill can have five sets of prerequisite rules.

### Using Prerequisites with Workflows

Creating a workflow with the trigger “Required skill is missing or expiring soon” for a skill with prerequisite rules will send emails for all prerequisites needed to achieve this skill. This only works for the “auto achieve all” prerequisite rule.

#### **Examples**

**Example 1**: Safety Certificate - Eligible to achieve - All completed\
\
An employee must first complete the Safety Fundamentals and Safety Practice training courses to earn a Safety Certificate. By setting these courses as prerequisites, you ensure that individuals have a solid understanding of safety principles before attempting to earn their Safety Certificate.

![](https://cdn.elev.io/file/uploads/7gcbr1LiVY8CeYydm_ADiRjfQh280j1oLlUR1fbmQP8/BEL7k1wZ7Fl4jmwfJ48VhqPKOIrZ3uAKHjnkOo7-nKQ/Screenshot2025-01-25at154320-90I.png)

**Example 2**: Security Certificate - Eligible to achieve - Amount completed

To earn a Security Certificate, an employee must complete at least four out of six available Security Training courses. This prerequisite rule allows flexibility for individuals to choose the courses most relevant to their role, while maintaining a high standard of security knowledge. After an employee completes any four of those courses, you will be able to add a result for the Security Certificate.&#x20;

![](https://cdn.elev.io/file/uploads/7gcbr1LiVY8CeYydm_ADiRjfQh280j1oLlUR1fbmQP8/fv5_sYfPjThclenK-e6ZrcZMMp57JWXgO_UPVXtaJVw/Screenshot2025-01-25at154607-7ys.png)

**Example 3**: Assembly Area Officer - Auto achieved - All completed&#x20;

After earning both a Safety Certificate and a Security Certificate, this employee will automatically generate a result for the Assembly Area Officer skill. Creating this rule will allow you to easily understand who is qualified to act as an Assembly Area Officer during a specific shift, based on other acquired certificates.&#x20;

![](https://cdn.elev.io/file/uploads/7gcbr1LiVY8CeYydm_ADiRjfQh280j1oLlUR1fbmQP8/KtcTssfUMsyDs7MMO5E5OnmIfOfQCeZaq5rq28TUx8A/Screenshot2025-01-25at154724-sJ0.png)

Attempting to add a result and override prerequisite rules will show the following prompt:

![](https://cdn.elev.io/file/uploads/7gcbr1LiVY8CeYydm_ADiRjfQh280j1oLlUR1fbmQP8/lHcew1CgZEdZufaW7_Bg1x_XMm9IqxcZHpO0VQlLnbU/Screenshot2025-01-25at154843-NWI.png)

The auto achieved result from these examples will show as:&#x20;

![](https://cdn.elev.io/file/uploads/7gcbr1LiVY8CeYydm_ADiRjfQh280j1oLlUR1fbmQP8/iXSkoFSR01vxhy1q60na8LhJhUpwSjUWLFLSGW1YVHk/Screenshot2025-01-25at154944-8mE.png)

Please let us know if you have questions about how best to make prerequisite rules work for you. Write to your customer success manager or <support@ag5.com>.


# Employee profile

Latest update: August 10th, 2026

Every person you track in AG5 has an employee profile. It is the record of who someone is, what they do in your organization, which skills they need, and which they have. Almost everything in AG5 either starts from a profile or leads back to one.

### The profile and the skills portfolio

There is one record, with two views of it.

The **employee profile** is the full record, opened from the Employees page. Anyone with rights to view employees can see it.

The **skills portfolio** is the employee's own view of their own record. It shows the same personal details, positions, potential positions, skill results and attachments. It leaves out the tabs meant for administrators.

An employee with a portfolio account signs in and lands on My Portfolio. Their menu has two items, My Portfolio and Self assessments, rather than the full navigation.

### Creating an employee

If AG5 is connected to your HR system, employees are created and updated automatically from that system. Do not add them by hand as well, or you will end up with duplicates.

1. Go to the Employees tab, which lists everyone already in AG5.
2. Select Create employee.
3. Enter the employee's details. Last name is the only mandatory field, though an e-mail address is also needed if the person will have their own account.
4. Select Save.

A new employee has no position yet. Until they get one they cannot pick up any skill requirements and will not appear in a matrix, so adding a position is the next step.

### Employee details

Select Edit on a profile to open Edit personal data. It has three tabs: Details, Unavailabilities and Advanced.

#### Details

Title, First name, Last name and Initials. Last name is the only mandatory field.

Employee number, for your own reference, such as a payroll number.

E-mail address. This is required if the person needs a user account, because AG5 uses the address to create it. The address on the employee record and the address on their user account do not have to match. Where they differ, the profile shows the account address in smaller text underneath.

Date of birth.

Contract type, for example permanent, temporary or external.

Contract period, From and To. These are the employee's start and end dates. An end date in the past takes the person out of AG5's shared views. See Ending and pausing employment below.

Manager.

Remark, which is free text.

#### Advanced

Holds the External code, used to match this employee against a record in another system, and any custom fields your organization uses. Custom fields can be filled in as fields or as JSON. Contact AG5 support if you need custom fields set up.

### Unavailabilities

An unavailability records a period when someone is still employed but not working: sickness, a call-out, extended leave, or any other reason.

To add one, select Edit, then the Unavailabilities tab, then Add. Enter a From date, which is required, and optionally a To date and a remark explaining the reason. You can record more than one period. Leaving the To date empty makes it open-ended.

While an unavailability is running, the employee does not appear in matrices, organizational structures, the alert list or expert finder.

Their own profile does not change. Positions, requirements, gaps and results all stay exactly as they were. The point is that someone who is off should not be counted as available capacity, and should not generate alerts about a certificate they are in no position to renew.

Two other things change while the period is running. The Availability field on the profile reads "Unavailable from" the start date "to" the end date, and a crescent moon appears on the employee's photo, both on the profile and in the employee list.

Delete the entry using the bin icon when the person is back, and they reappear everywhere straight away.

To see everyone currently unavailable, go to the Employees page, select Add Filter, then Availability, then Not available.

### Positions and potential positions

Below the details, the profile shows the employee's positions. A position is what someone does in the organization, and it is what connects them to skill requirements.

Expand a position to see which groupings its requirements come from and how many gaps each grouping accounts for. An employee with a single Quality position, for example, may be picking up requirements from Quality, from Production, and from the organization as a whole.

Potential positions are roles the employee is not in yet but that you want to track progress toward.

### Skill results and the other tabs

Skill results lists every skill relevant to this employee, whether required, achieved, both or neither, with the date, expiration date and status of each. The grouping that requires the skill is shown under the skill name.

Attachments holds files stored on the employee record.

Email shows messages AG5 has sent to this employee.

History shows every change made to this record. The Scope filter switches between direct changes only and everything.

Employees see the Skill results and Attachments tabs in their own portfolio. Email and History are for administrators only.

### Access to the skills portfolio

An employee needs a user account with portfolio rights before they can see their portfolio. There are two levels: view only, where they can see their own record but change nothing, and edit, where they can also add their own skill results.

Anyone with wider rights still has their own portfolio. Select your name at the top right and switch between Organisation and My Portfolio.

#### Adding a result from the portfolio

Employees with edit rights can record their own results, including self-assessments and assessments carried out by someone else.

1. Go to My Portfolio.
2. Select the three dots on the right of the skill row.
3. Select Add result.
4. Enter the date and score, and optionally an expiration date, a remark and an attachment.
5. Select Save.

Whether that result counts straight away or waits for sign-off depends on whether result approvals are switched on for your organization.

### Viewing an employee's portfolio

To see what an employee sees, select your name at the top right, then Act as proxy user, then choose their account. The list shows each account's rights, so you can tell a view-only portfolio user from one with edit rights. Select Stop acting as proxy user to return to your own view.

### Ending and pausing employment

AG5 has two ways to take someone out of circulation, and they are not interchangeable.

To record that someone has left, set the To date of their Contract period to their last working day. Once that date has passed the employee becomes inactive, their positions are marked Inactive, and their skill requirements stop applying.

To record that someone is temporarily away, add an unavailability instead. Their contract, positions and requirements all stay exactly as they are.

Either way, the employee disappears from the same four places for as long as the state lasts: matrices, organizational structures, the alert list, and expert finder.

The differences are in what else happens. When a contract has ended, positions are marked Inactive and requirements no longer apply, gaps on the profile are cleared, and the employee only appears on the Employees page under Contract status: Ended. A circle with a line through it appears on their photo.

When someone is unavailable, positions are unchanged and requirements still apply, gaps are still shown on the profile, and the employee is still listed on the Employees page and can be found with the Availability filter. A crescent moon appears on their photo.

Nothing is deleted in either case. The record, its results and its full history are kept, which is what you need for an audit covering a period when the person was still working.


# Employee position

Latest update: July 16th, 2026

This article describes how to edit or change employee positions. A Position is an important concept in AG5. Positions are how an employee's role in the company is defined within AG5, and importantly, how requirements are assigned to an employee.

Positions are made up of grouping tags which define everything about an employee that your organization wishes to track in AG5 (organization, location, job roles, departments, teams, shifts, etc.). There is no limit to the number of grouping tags that can be added to a position.&#x20;

If the grouping tags in an employee's position have assigned requirements, then the position **also** has those requirements, and they automatically apply to the employee.

The position field is located underneath an employee's details. For example, the employee below is tagged with a job role and an org unit:

![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/hqxiQBn4ot03tCsxElGfJaTMGgUccro37hS7JR-VOTI/1721647531023-zfk.png)

Positions can be expanded to show exactly where the requirements come from by clicking on the **^** in the position box:

![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/OV3NS2_z6kOt73lBKDqLK6zlg9I3t2x8wPOAIgBO_e4/expandingposition-v9M.gif)

Requirements for a position are represented by the bars with numbers. Green bars and associated numbers represent achieved requirements, and red ones represent unachieved requirements.&#x20;

In our example, Abbie has completed 2 of his requirements as a Process Lead, has 7 outstanding Process Lead requirements, and one requirement because he's part of the Logistics org unit in Acme Inc:

![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/oiIBlkP_LVVVHRFcfIFS_yS2PMNMQaxUH11zSAbdFIw/1721728987642-FAc.png)

<br>

> Reminder: these requirements can be found under Organization > Organizational structures, or under Organization > Skill requirements.&#x20;

Abbie's requirements as they appear in the organizational structures:

![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/rW5ar5VH_QFp9_u1tuasgr48RzU_8kUc0_8w8M2zKJA/1721728622436-kPI.png)

![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/2sFRfNlTUBgNTWbetdUn6eEctIc1SIAOL7FRvOAVuS4/1721735759849-Kp4.png)

#### Creating new positions

By default, brand new employees don't have positions yet (unless you have an HR integration, which creates positions automatically using your HR data).&#x20;

A position can be created in two different places:

* By clicking "New" on the employee profile:\
  ![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/fc4QRAvlLXrmVU9a_mXBJPpKiQaKfcrhLpkkwy-JdZU/creatingpositionemppage-4b0.gif)
* By clicking on "Create a new position" from an organizational structure:\
  \
  ![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/NuzXGfLEVB0KcmrVWuO5iF0moWG2lnzvZvcsOdgVfak/creatingpositionORGstructures-DoA.gif)

When creating or editing positions, remarks can be added and the position's active period can be defined.

![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/sKJdCQowfc4vQ_b8jUPvYxuwsh8z5zQhmIKX-g0HKas/position-activeperiod-remarks-1vM.png)

#### Editing positions

After it's created, a position can be edited (tags added or removed) in a few places.

**From the employee profile** - Click the 3 dots on the right-hand side of the position and go to "Edit position":

![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/lT5NRugUFfa_iZDkOx80GnMqWkvuEIrgFJYoPqBDVIc/editingpositions-Aqo.gif)

**In an organizational structure** - Drag the employee (in green) from one grouping to another. This will remove the tag from the initial grouping their position is in, and apply the tag from the destination grouping. This is useful for, as an example, moving an employee from one department to another:\
\
![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/-bDIiDsQ90P1B9CrIjPxaMs2CRUx0ycQQynwahR-oNw/movingpositionsorgstructure-ltE.gif)<br>

<br>

Tags can also be added from within the position dialogue box on the right side, after clicking on a specific position (in green). This is useful when you do **not** want the initial grouping tag removed from a position. For example, here we will add Aaron Barnes to the Maintenance org unit without removing him from the Packing org unit:

<br>

![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/0XK03S-a4CNhGP6g9nS5wagLR9uW2Fzji5YN7UugDsI/addtagsorgstructures-O2Q.gif)

<br>

> Be careful! Clicking the trash can icon on a position will delete it entirely.

#### Multiple positions

\
Because a position usually represents a person's entire function at work, in most cases it makes sense for employees to only have one position per person.&#x20;

However, employees **can** have more than one position. Typical use cases include:

* Overlapping periods of position
  * *Example:* Old position ends 31st of August - A new position (with new requirements) starts 1st of August
* Archiving old positions for record keeping
* Secondary positions outside of usual function
  * *Example:* First Responder / CPR
* Temporary assignments
  * 1st Position for regular function
  * 2nd Position for temporary assignment

**How do multiple positions work?**&#x20;

If two or more active positions are held concurrently, requirements from both positions will apply to the employee at the same time.

![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/-_FJcP8R4esPoiDE-ebh1EJ_8_LM9yimKF8_O1IFwGY/1721727901277-Gq4.png)

This is useful when an employee has a secondary position (e.g. First Aid), or a temporary assignment, and both positions' requirements need to be measured together.

If the "Active period" settings are used to indicate start and end dates for a position, then requirements will only apply when the position is active. In other words, the "Active period" settings tell AG5 exactly *when* (From > To) an employee should have a position.

For example, using the "From" field, we can take the same second position from above and set it to only kick in at a future date:

<br>

![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/Lf2M-62OPjNfee2NXAhvb_bGCpyNT3EtYx95kgtqxwM/futureposition-PXs.gif)

&#x20;

When the "From" date is set for the future, the colored bars turn grey and the number of requirements become zero, until the position's "From" date arrives. Then those requirements will reappear.

We could do something similar using the "To" field and set a position to expire at a certain date in the future. Or we could archive the position, by setting the "To" date to some time in the past.

If a second position needs to be created, it's often best to do so from the employee profile:

#### Potential positions

Underneath positions, you'll see another area called "Potential positions":

![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/uov9dfnhSFwM59kUe8sn5BBD2UiBxZY3kvAVPM8Fs_s/potentialpositions1-Zck.svg)

Just like it sounds, this feature helps you or your employees find potential positions, based on the achieved skills of an employee and the requirements for any existing position.

For example, take Abbie Ahmed here. He has 4 achieved skill results:

![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/unECn836NMO7PHirKwhtrETALIXz_fM8RcvCJUx6SxQ/1722502444947-eFg.png)

Based on these results, clicking on the "Browse" button in the Potential positions area shows us positions that Abbie might qualify for:

![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/sJuzdHfhfWUNbDgy_eGbazBSFN3sWQEZ748owaqhyGc/1722502513370-QlE.png)

If a potential position shows a 100% match, then there you go! A fully qualified employee ready to move into that role. If there's less than a 100% match, expanding the potential position shows us the gaps we'd need to close to get to 100%:

![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/3Ul13vU-yGcPFKy5hHS2U7wZ3kDBSLbN8vWwQn702vY/1722502587584-OXA.png)

If desired, potential positions can be pinned to the employee's profile. This is useful for tracking progress, or for discussions with the employee about personal growth and development:

![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/GgRyn0neFu2odAtdXbvzozXFq9w-zv1Ego8TNzie4dM/pinnedposition-v7I.gif)

Combining this feature with the Expert Finder is a great way to plan for the future and put employees in the right positions for maximum impact.


# Organizational structures

Latest update: July 20th, 2026

### 1. **What is an Organizational Structure, and why do I need it?**

The term itself lends a hint! In AG5, an organizational structure is where you organize and establish the framework for managing skills within your organization.

{% hint style="info" %}
Organizational structures in AG5 are not an exact equivalent of an org structure from an HR perspective. It's not necessary to create the entire company hierarchy in AG5. We advise only creating structures that provide value from a skills management perspective. These will be set up during onboarding with the help of your AG5 expert.
{% endhint %}

Organizational structures are made up of **groupings**, [**positions**](/employees/employee-position), and [**requirements**](/skills/skill-requirements).&#x20;

**Groupings** can encompass a wide range of criteria, including job roles, departments, geographical locations (such as countries or factories), or any other pertinent element that your organization requires for tracking skills.

AG5 comes with a set of commonly used grouping types (like team, department, etc). These can be customized for your organization, and brand new groupings can also be added.

The employees you assign to specific groupings in your organizational structure will be one axis of your [matrix](/skills-matrix/skills-matrix-basics). You can also create requirements based on those groupings.

Because employees will be tagged with your various groupings, they can be used throughout AG5 (in the expert finder, alert list, employee list, etc) as a filter option, and can also be used as the basis for reporting.

AG5 comes with several pre-created grouping types. You can create your own grouping types by going to Organization > Customization:&#x20;

<figure><img src="/files/ZZhReZ29RErITzzA8y1s" alt=""><figcaption></figcaption></figure>

From this same menu, it's possible to delete or edit any existing grouping type by clicking on the 3 inline dots:

<figure><img src="/files/xlcBmFGopisyZ2pWTRP2" alt=""><figcaption></figcaption></figure>

## **2. How do I set up my organisation?**

You can find the organizational structure section in the **Organization** tab. To get started, simply click on the **Create organizational structure** blue button: <img src="https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/tGUqanmUBWdHdRqslFKEvoX5zYiXkQV7LkODzyxOT-M/createorgstructure-_IE.png" alt="" data-size="line">

<img src="https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/61eXVxp9ReKhamXxuIVjLnqpUHBvY_mQowIKXEIbfIg/1714657123426-bLE.png" alt="" height="113" width="624">

You should now be looking at a blank organizational structure.

For this example, we will create a structure based on site locations.&#x20;

1. Under 'New Element' on the right side, click and hold on **New grouping** to drag & drop it into our structure:

<figure><img src="https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/K3ZxCwMhzVqcf5krySnIGVCdFOXdzg-7DdRQMKGZR_g/1714658568467-r54.gif" alt=""><figcaption></figcaption></figure>

1. In this example, this top grouping is where we will attach our locations, so we will name it "Locations". Then, we will add our first location, because we might want to add requirements that are location specific, or may want to have a matrix in the future that shows us information based on these locations. To edit a grouping, click on it and then the 'Edit' button in the right hand details pane:\ <br>

   <figure><img src="/files/CAhAxAKeAVlv0Q18XihV" alt=""><figcaption></figcaption></figure>

Below, we can see a more complete structure with different regions. We will add a language requirement to Germany and France. Simply click on the button to add a skill requirement and drag and drop it into the relevant grouping.&#x20;

<img src="https://cdn.elev.io/file/uploads/tfNHbase18C9irCYFEYUJIWBYNbJEZKpwfnSxeUHdUg/XVj_hZydO_AS58N2RkkHNarHsSk1GVNN-XSQs5tG4VU/req-6b0.gif" alt="" height="188" width="600">

In the next clip we will add an employee to our location in France. We click on “Add a position” and then drag & drop the employee to France. This means he now has a requirement for the skill French, because he is part of that specific org structure.&#x20;

<img src="https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/AlAjleAG3V2W3xv-SndzE3xNCQsubQUq7aHcfVYse9s/OS-3-ezgifcom-video-to-gif-converter-p6Y.gif" alt="" height="179" width="600">

For more information about creating positions for employees, see [this article ](/employees/employee-position)working with employee positions.

### 3. Best practices <a href="#ispasted" id="ispasted"></a>

#### **Nested structure?**

We generally recommend keeping the org structure as flat as possible, so it doesn’t get too convoluted and keeps the matrices easy to read. However, it is possible to create a combination and add sub-groupings. For example “Departments & Job roles”, “Locations & Departments,” or whatever works best for you.

#### **Removing employees**

If you want to remove an employee from an org structure, you can simply drag & drop the employee to a different group (for example if they move departments) or click on the employee and remove that specific tag. Do not click on the trash bin, because that would remove all the tags. In our example picture you can click on the X next to France, to remove the employee from the location in France.&#x20;

<img src="https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/NtW2TkeJmb9_D6nwRtkGz75cVhlRv-kmlwyWSWpJ7FA/1714657291272-3K8.png" alt="" height="193" width="246">

### **Duplication**

We strongly advise against any kind of duplication. For example, using a job title grouping like "Intern" across different departments. Instead, we advise making them different, such as "Marketing Intern", "Sales Intern", and "Logistics Intern", for example.

{% hint style="info" %}
We understand that setting up a new organizational structure for the first time or reworking it because of new business processes can seem challenging. If you have questions or want to discuss your goal(s) when setting up a new organizational structure, you can always reach out to <support@ag5.com> or speak with your customer success manager.
{% endhint %}


# Self-assessments

Latest update: July 20th, 2026

### **1. What is a self-assessment?**  <a href="#h_581da7b9dd" id="h_581da7b9dd"></a>

This article explains how the self-assessment feature works: how employees can evaluate their own skills, how managers can request and approve these evaluations, and how to enable this feature.A self-assessment is a process where employees evaluate their own competency levels for specific [skills](/skills/what-is-a-skill). Once completed, the assessment is submitted for approval and the [results](/skills/skill-results) are recorded in AG5.

> Self-assessment is an advanced feature that isn't enabled by default, so if you want to use this in your organization, please [contact support](mailto:support@ag5.com) or your customer success manager.

### **2. Why use self-assessments?**  <a href="#h_c6a839021a" id="h_c6a839021a"></a>

Self-assessments serve several purposes:

* When an employee's skills status is known only to themselves.
* To provide managers with insight into how employees perceive their own skills and competencies.
* For collecting skill certificates and documentation; employees can also upload scanned documents alongside their self-assessment results (15 MB limit per file).

### **3. How to request a self-assessment?** <a href="#h_2af6dfce81" id="h_2af6dfce81"></a>

1. In the top navigation bar, go to "*Employees".*

2. Search & select for the employee(s) for whom you want to request self-assessments.

3. Click on the "*Actions"* button and select "*Request self-assessment".* \ <br>

   <figure><img src="/files/H4MdmPoRszsbcGJb9wzW" alt=""><figcaption></figcaption></figure>

4. This opens the self-assessment window, which consists of 3 steps. The first is "Details". Here, you can name the request and select which skills to include for self-assessment.
   1. If you choose the content type "Skills", you'll be able to individually choose each skill.
   2. If you choose content type "Libraries", you can select entire libraries or categories for self-assessment.
      1. A helpful time-saving feature is to select your entire library and then activate the "*Filter skills that will be requested for the employee to self assess*" toggle. This option allows you to request self-assessment only for skills in your library that:
         1. Are required,
         2. Are required AND have a "warning" or "gap" status,
         3. Have requirements for a minimum number of employees, and
         4. Have not met minimum number of employee requirements.
   3. Once done, click <img src="https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/lV3kdGHmda11BT113wY7o05G2133Eu0xLowcgBlCZpE/1714481523341-B7Q.png" alt="" data-size="line">

      <figure><img src="/files/Mij6ifP12UaaOZt5rzwC" alt=""><figcaption></figcaption></figure>

5. In this step, you can preview the email which the employees will receive when a self-assessment request is created (the content of this email is currently fixed).

   <figure><img src="/files/9tP9H2QeOZkv9zLNq4sg" alt=""><figcaption></figcaption></figure>

6. Click the "*Next"* button to go to the last step: "Overview".

7. In this step, you will see an overview of all the employees to whom you will send the self-assessment request.<br>

   <figure><img src="/files/RVyj0kTG9B3Z8TQUGZob" alt=""><figcaption></figcaption></figure>

8. In the "status" column of the visible rows, you can see whether or not the employee will receive the request. If the user account isn't created yet, no email will be sent and no self-assessment request will be made.

9. When all is as expected, you can click the "*Send"* button.

The request is now created and the email is sent.

### **4. How to complete a self-assessment?**  <a href="#h_be82319d2d" id="h_be82319d2d"></a>

After the self-assessment is sent, the chosen employees will receive an email asking them to complete the self-assessment. This email will include a link to AG5. Upon clicking the link and logging in, they will notice a pending request indicated by a numerical count over the "Self-assessments" top tab.&#x20;

<figure><img src="/files/Cgc8uTl42Ww0wA6MXbAh" alt=""><figcaption></figcaption></figure>

If the employee also has Organization view (able to see matrices), they'll see the number above their picture or their initials in the top right, and can switch to portfolio view to complete the self-assessment.<br>

<figure><img src="/files/eyLKGs3070DYWVK346s3" alt=""><figcaption></figcaption></figure>

1. Once on the "My Portfolio" page, go to "Self-assessments".
2. Choose the self-assessment to complete.
3. Add scores per skill (achieved/failed, or a specific rating).
   1. The default score is "Not applicable", so just leave it at that if a specific skill does not apply.
4. If needed, add a remark or upload a document (e.g. a PDF of a scanned certificate).
   1. To do this, first open the card, as seen in the GIF below
5. Once the self-assessment is complete, click the "Send" button.
   1. If you're not done yet and need to pick up your self-assessment later, click on: "Save & continue later", and AG5 will remember your scores for when you return.
6. Last but not least, the skill results that were just created via these self-assessments are **not active immediately!** They will have **to be approved** first by the user who requested them. This will be explained in the following section.<br>

<figure><img src="/files/n7Y4jQSN1HmabLxdYpSv" alt=""><figcaption></figcaption></figure>

### **5. How to approve self-assessment results?**  <a href="#h_c9868772bc" id="h_c9868772bc"></a>

1. Select the Control Center in the top right corner. <img src="https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/98dKpXZSFtYOyxBnEZQ9V5b84BSTyAGmvct-q6aleWU/ControlCenter-0K8.png" alt="" data-size="line">
2. Select self-assessments and the self-assessment request you want to approve.
3. Select the employee for whom you want to approve the results.
4. Approve, decline or overwrite with another score for each skill.
5. Click on the "Save" button to save the results.
6. The approved results are now active and visible throughout AG5.<br>

<figure><img src="/files/YsweCucMMRRYkxnpaIO6" alt=""><figcaption></figcaption></figure>

\
**What do I do if the self-assessment requester isn't available?**

If the requester of a self-assessment is unable to approve it (e.g., they are on leave or no longer employed), an admin can step in to approve the results.

To do this, go to the Control Center and click "X Skill actions to approve," where X represents the number of pending skill actions. If the number shows 0, don’t worry—that number only reflects actions tied to your user account.

Once there, remove the automatic filter for your admin account. This will reveal all outstanding approvals or self-assessment results, which you can then approve or deny.\ <br>

<figure><img src="/files/mMUbYqJv3XEbTfZ7jjxd" alt=""><figcaption></figcaption></figure>

### **6. Who can send a self-assessment request?**

The following[ user account ](/accounts-roles-and-permissions/user-accounts)types can send a self-assessment request:&#x20;

* Admins
* Super users
* Matrix access users

### **7. Who can approve results?**

In AG5, by default, the approver is always the same person who requested the self-assessment. If the requestor is not available (for instance, they may be on leave or have left the company), admins can [grant approval](/skills/skill-results/results-approvals) instead.&#x20;


# Expert finder

Latest update: July 20th, 2026

### 1. **What is the Expert Finder?** <a href="#h_71110adace" id="h_71110adace"></a>

The Expert Finder is a tool for quickly finding qualified employees. It can be accessed via the Expert Finder icon in the top navigation bar:\
\
![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/wNTJd32jJUkU2fEQh8Onc7kNZU8Xg0YvxenYCSp-CMU/1730468544899-09w.png)

### **2. What is the purpose of the Expert Finder?**

* For any skill or set of skills, find the most qualified employees, based on what they have achieved, what is required of them, or both.
* For any collection of *multiple* skills, find the most qualified employees.
* Identify suitable replacements for employees who are absent.

### **3. How to use the Expert Finder?** <a href="#h_0cc00236aa" id="h_0cc00236aa"></a>

**1. Finding a qualified employee who matches certain skills.**

1. Open the Expert Finder.
2. Select the skill(s). More than one may be selected.
3. This returns a list of experts. If any skills are missing, an employee card can be opened in order to see exactly which gaps exist.

![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/RVmGzMi5r17CrJWn1YrxsA2264JVMT3TnecX49rs6U8/expertfinder-skills-4S8.gif)

**2. How to find a qualified employee who matches the skills of another employee?**

1. Open the Expert Finder.
2. Search and select the employee for whom you need to find a suitable replacement.
3. Open an employee to understand how qualified they are and which skills they are missing.

A list of expert employees will appear, starting with the most qualified potential replacement to the least.&#x20;

![](https://cdn.elev.io/file/uploads/I-VO7eaIgAAsoHSf3zZaQ6bjoB086WcXWthKePOACZg/s127Uy9s7sOezV2cCIaRJngptjRTMrtSN_z1rdG5ayQ/Expert%20finder%20%20person-ueY.gif)

<br>

**3. How to find a qualified employee who matches the skills of a specific job role?**

1. Open the Expert Finder
2. Switch to the Tree list tab in the search dropdown
3. Select the role which has the skills you want to find in another employee
4. Open an employee to understand how qualified they are and which skills they are missing.

You will see in the list below which employees are most qualified for your searched skill criteria. The resulting employees are sorted by the number of achieved skills that are required for your criteria.&#x20;

![](https://cdn.elev.io/file/uploads/I-VO7eaIgAAsoHSf3zZaQ6bjoB086WcXWthKePOACZg/TARBYGZ8gDsKoTjpCcl8d3IESDnVB_hgaaj6i5YBrbk/Expert%20finder%20%20job-2Zo.gif)

### **4. Tips and tricks** <a href="#h_648e19509b" id="h_648e19509b"></a>

1. You can select skills via the search bar by typing your skills
2. You can select skills by choosing a group via the browser section of the search
3. You can select multiple skills in combination with skill groups
4. You can filter results per grouping type you have (job role/team/department etc)
5. You can only see employees you have access to
6. When searching by employee, you can filter results by Required, Achieved, or Compliant skills, allowing you to find experts even when no requirements are defined


# Alert list

Latest update: July 21st, 2026

### **1. What is the alert list?**

The alert list is a list with details of:

* Skill gaps
* Skill **warnings** (soon to be gaps)
* and the skills that are **fine** (no gaps)

### **2. What is the purpose of the alert list?** <a href="#h_fcdd4d4d4e" id="h_fcdd4d4d4e"></a>

The purpose of the alert list is to provide insight into:

**Gap** skills that are:

* Expired
* Revoked and required
* Failed
* Level too low
* Required (not achieved)

**Warnings** of skills that are:

* Expiring soon
* Expiring soon, but not required
* Soon level too low
* Required soon

**Fine** skills that are:

* Valid
* Revoked, not required
* Failed, not required
* Valid, not required
* No score, not required

### **3. How to use the alert list?**  <a href="#h_d3fd4850a9" id="h_d3fd4850a9"></a>

1. Click on the bell icon which is visible on the right side of the top menu<br>
2. Filter by:
   1. Gaps
   2. Warnings
   3. Fine
   4. Period<br>
3. Or filter through the search bar by:&#x20;
   1. Individual skills
   2. Employees
   3. Groupings with positions (Job role/ teams/ departments)
   4. Libraries
   5. Matrix<br>
4. Suppress plannings (See tips and tricks below)<br>
5. Analyze the visible insights

<figure><img src="/files/oRzfBMbUA0KFAO3ISPzE" alt=""><figcaption></figcaption></figure>

### **4. Export the alert list**

On the top right side of the alert list, you can see a blue export button. With this button, you can export your (filtered) alert list to Excel. You can also customize the export by clicking on the "Custom export" via the three dots next to the blue button.

### **5. Tips and tricks** <a href="#h_0ee39b0b0e" id="h_0ee39b0b0e"></a>

When you have planned assessments for specific skills of certain employees, you can ignore these in the alert list. Because the [planned skills](/skills/skill-planning) can be the solution for the gap the skills currently have.

#### **How to suppress planned skills?**

On the right side of the alert list, you can see a filter called "Suppress plannings". With this filter, you can filter the alert list to ignore the skills which are planned for an assessment in AG5.


# Programs

### What is a program

A **program** is a structured way to manage a set of skills an employee must complete within a fixed period of time. Instead of tracking each skill individually, a program lets you monitor progress across the whole collection of skills at once. Compliance here, means having completed the required skills within a defined period

The first program available in AG5 is **Code 95 —** the EU regulation that requires professional drivers to complete 35 hours of approved training every five years. Without it, a driver's licence to drive commercially is at risk.

<br>


# Code 95

### 1. What is a program

A program is a structured way to **manage a set of skills** an employee must complete within a fixed **period of time.** Instead of tracking each skill individually, a program lets you monitor progress across the whole collection of skills at once. Compliance here, means having completed the required skills within a defined period

The first program available in AG5 is **Code 95** - the EU regulation that requires professional drivers to complete 35 hours of approved training every five years. Without it, a driver's licence to drive commercially is at risk.

With AG5, you can define the Code 95 program, assign skills and employees into it and track everyone's progress in real time - not just how many hours someone has completed, but whether they're on track to finish in time.

For Code 95, the total hours and cycle length are fixed and cannot be changed.

**Who is this feature for?**&#x20;

Code 95 regulation applies to professional drivers of trucks and buses - for example, in freight, logistics, or transport. If your organisation doesn't employ this type of driver, Code 95 tracking may not be relevant for you.

### 2. How do I create a program?

> Programs are an **add-on feature**. If you don't see it in your AG5 environment, contact your AG5 representative to have it enabled.

Setting up a program has three parts: configuring the program details and categories, then adding participants and assigning skills - it's these last two that make the program actually trackable.

**To create a program:**

1. Go to **Programs** in the top navigation and click Create program.
2. Fill in the program details:&#x20;
   1. a name and code, an optional start and end date, and a description. The core rules for Code 95 - 35 hours over a 5-year cycle - come pre-configured and cannot be changed,
3. Add the **program’s categories.**&#x20;
   1. For each category, fill in a name and a code, and optionally a minimum number of hours that must be completed in that category. Click Add category to add another category.
4. Click **Save** when you're done. &#x20;

{% columns %}
{% column %}

<figure><img src="/files/YYviueBALkiYD9fpOlUb" alt=""><figcaption></figcaption></figure>
{% endcolumn %}

{% column %}

<figure><img src="/files/wze8zEuD18wPTmXdppuu" alt=""><figcaption></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

{% hint style="info" %}
About categories: for the Code 95 program, the category breakdown can vary by country - for example, Belgium might use three categories where the Netherlands uses two, depending on national requirements.
{% endhint %}

Once the program is created, you'll see its definition at the top of the page. In this section you can optionally add program prerequisites.

#### Program prerequisites

Some programs require an employee to hold a specific qualification for the entire duration of their cycle. For Code 95, this is typically a driving licence or driver card.

**To add prerequisites to the program:**

1. Open the program and go to the Prerequisites section.
2. Click Edit prerequisite and select the required skill.&#x20;
3. Click **Save**.

<figure><img src="/files/CV1emKvQtmnBYt63MudS" alt=""><figcaption></figcaption></figure>

If a required skill is missing, expiring soon, or has already expired, the employee's progress will be flagged as needing attention -  see [Understanding statuses.](#understanding-statuses)

### Participants

When the program is created, you need to add participants - employees who have to comply with it.

**To add a participant:**

1. Open the program and go to the Participants tab.
2. Click **Add participant.**
3. Search for the employee by name and set the start date of their cycle. For Code 95, this date can't be more than five years in the past. Click Add participant to add another employee.
4. Click **Save**.

<figure><img src="/files/KKdCkdSCfH78ciPr4jSK" alt=""><figcaption></figcaption></figure>

You can end a participation or delete a participant at any time by clicking on the tree dots - ending a participation keeps all historical cycle data on record in the program, it simply stops further tracking for that employee.

<figure><img src="/files/ylnPNp7vV87rvxlzFKpT" alt=""><figcaption></figcaption></figure>

### Skill assignments

Every program needs skills that are required within it. A skill assignment links a specific skill that already exists in AG5 to a program. It defines which skills count toward the program, which category they belong to, and **how many training hours** each one brings.

**To add skills to the program:**

1. Open the program and go to the Skill assignment tab.
2. Click **Assign skills.**
3. Search for the skill by name, assign it to a category, and set how many hours it contributes to the program. Click Assign skills to add another skill.
4. Click **Save**.

<figure><img src="/files/DIKruKBDmAcOnaNUUTYZ" alt=""><figcaption></figcaption></figure>

Both an employee and a skill can be added to more than one program - each program tracks its own, independent cycle.<br>

### 3. How do I track the progress in a program

When both skills and employees are added to the program, you can start tracking progress toward the required 35 hours within 5 years.

The **Progress** tab is your main operational view. It shows one row per employee currently being tracked in the program. All results added for the program's skills - no matter where they're entered, whether on the employee's profile or within a matrix - count toward the program and automatically update the employee's progress bar and 35-hour requirement.

The  progress table is **sorted by urgency** using color-coded statuses, so the people who need your attention most appear at the top.

<figure><img src="/files/ozDDVxavMo14TGf5uovF" alt=""><figcaption></figcaption></figure>

**What each column shows:**

* Employee
* Total hours - number of training hours completed
* Progress bar - shows the percentage of the 35 hours completed against how much of the 5-year cycle has already passed, color-coded by status. Hover over the bar for a tooltip explaining what the color means.
* Year of cycle
* Training Left - training hours left
* Time Left - time left until the cycle deadline date
* Current Status

#### Understanding statuses

The Progress overview uses a lot of statuses and colors at first glance. Here's an explanation of all of them.

Each status is calculated based on the training pace, the training that was done, and the time left in the cycle.&#x20;

{% hint style="info" %}
For a 5-year, 35-hour cycle, the **expected pace is 7 hours per year.**
{% endhint %}

<table data-header-hidden="false" data-header-sticky data-search="false"><thead><tr><th width="171.921875">Status</th><th>What it means</th><th>What to do</th></tr></thead><tbody><tr><td><strong>On Track</strong></td><td>The employee is progressing at a pace that will reach 35 hours by the deadline.</td><td>No action needed.</td></tr><tr><td><strong>On Track Soon</strong></td><td>The employee is slightly behind pace, but has training already planned that will close the gap.</td><td>Monitor. If the planned training falls through, status drops to Behind.</td></tr><tr><td><mark style="color:$warning;"><strong>Behind</strong></mark></td><td>Behind pace with no planned training to close the gap; deadline is more than a year away.</td><td>Review the category breakdown and schedule additional training.</td></tr><tr><td><mark style="color:$danger;"><strong>At Risk</strong></mark></td><td>Same as Behind, but the deadline is within the next twelve months.</td><td>Treat as urgent - confirm remaining hours and book training dates.</td></tr><tr><td><mark style="color:$danger;"><strong>Overdue</strong></mark></td><td>The deadline has passed and the required hours weren't completed.</td><td>Add unregistered training, or start a new cycle.</td></tr><tr><td><mark style="color:green;"><strong>Completed</strong></mark></td><td>All required hours were completed before the deadline.</td><td>Ready to renew whenever a new cycle should start.</td></tr><tr><td><strong>Not Started Yet</strong></td><td>The cycle's start date is in the future.</td><td>No action needed.</td></tr></tbody></table>

There are also a couple of **sub-statuses** that can appear in addition to the main status above:

<table data-header-hidden="false" data-header-sticky><thead><tr><th width="174.1328125">Status</th><th>What it means</th><th>What to do</th></tr></thead><tbody><tr><td><strong>Prerequisites Not Met/ Expired/ Expiring soon</strong></td><td>The employee's required skill isn't currently valid - it was either never achieved, has expired, or is expiring soon.</td><td>Open the sidebar to see which skill is missing or expired, and work with the employee to renew it.</td></tr><tr><td><strong>Renewal required</strong></td><td>Shows up once a cycle has ended - whether it finished as Complete or Overdue - meaning the employee's 5-year cycle deadline has passed and a new cycle can now be started.</td><td>Open the sidebar to start a new cycle.</td></tr></tbody></table>

#### Sorting, filtering, and searching

You can filter, sort, and search the progress table to focus on the employees who need attention.

The list is sorted by most-urgent, requiring action first, by default. You can override this default and sort by any column instead - for example, by time left or training hours.

<figure><img src="/files/jMMQnKdZgcF96y4MLVK5" alt=""><figcaption></figcaption></figure>

**The following filters are available:**

* Status - select one or more specific statuses
* Requires attention - find employees with invalid or expiring prerequisites, or whose hours are complete but haven't yet been renewed
* Year of cycle
* Employee
* Manager
* Grouping (for example, job role, department, or location)

### 4. How can I see an employee's details?

To learn more about an individual employee's progress, you have two options:

* Open the sidebar from the progress table.
* Go to the employee page and click on the Code 95 tab (this tab is only visible for employees assigned to the program).

#### What you see in the sidebar

<figure><img src="/files/XpjXdph0nuWeAFAmmPAP" alt=""><figcaption></figcaption></figure>

**Opening an employee's row shows a sidebar with:**

* Employee details - the employee's positions
* Cycle detail - the cycle's start and end date. You can edit the cycle from here, and add a remark or attachments.
* Prerequisite status - the prerequisite skills, their expiration date (when one exists), and the current status of each skill
* Total progress - number of hours completed
* Progress by category - training hours done per category, against each category's minimum (when one exists)

**Understanding cycles**

A **cycle** is an employee's personal time window for completing a program. For Code 95, every cycle lasts five years and has:

* Start date - the first day training counts
* Deadline - the last day to finish. This is calculated automatically as the start date plus the program's duration, so it isn't shown as a separate field.

An employee can only have one open cycle per program at a time. Once a cycle ends, a new one can be started.

Starting a new cycle is a manual action. It can only be done once a previous cycle has reached its deadline and has ended.

{% columns %}
{% column %}

<figure><img src="/files/N1sJLsdrP5oUuDuutKuk" alt=""><figcaption></figcaption></figure>
{% endcolumn %}

{% column %}

<figure><img src="/files/XIfzKcCpkeXiXS2h8Ovm" alt=""><figcaption></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

When a cycle has been completed successfully, or its deadline has passed without the required hours being met, **you can start a new cycle:**

1. Go to the Progress tab.
2. Select the employee and open the sidebar.
3. Click Start new cycle.

A new cycle can only start after the previous one has ended. Its deadline is **calculated automatically** from the new start date.

#### The Code 95 tab (employee page)

The employee's profile page has its own Code 95 tab, showing that **individual's cycle details** and every training they've completed, grouped by category by default.

<figure><img src="/files/1OGbVx0U48IVzq5Q6OVq" alt=""><figcaption></figcaption></figure>

Only completed ("achieved") trainings are shown by default - remove the Achieved filter to see trainings that are still potentially relevant but not yet done, and add them manually if needed.

Questions? Ask your solution engineer or AG5 customer support.

<br>


# User accounts

Latest update: July 21st, 2026

This article describes the types of user accounts in AG5, as well as how to create them.

### Why different account types? <a href="#h_e379bd0013" id="h_e379bd0013"></a>

AG5 consists of different sections (pages, tabs etc):

* **Matrices -** for skills management.
* **Employees** - list with all employees and the option to see their detailed data.
* **Skills** - list with all of your Skills and details.
* **Organization** - access to all kinds of source data: Libraries, Organizational Structures, Skills data, Grouping data, User Accounts, Integrations etc.
* **Expert finder** - search for employees that match criteria.
* **Alert list** - query your data and get insight into the status of specific groups of employees and/or skills.
* **My Portfolio page** - where employees can view their own data ([see article](/employees/employee-profile)).

You probably don’t want all AG5 users to access all your data. To manage this, you can create different types of user accounts under *Organization > Account management & History*. You can also provide additional access rights by sharing specific matrices on the *Matrices* page.

First, we will describe the three basic account types.

#### **Admin**  <a href="#h_0e0e6acaf5" id="h_0e0e6acaf5"></a>

An Admin has access to all sections and data in AG5. An Admin can edit all data.

![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/EYLwCW5JAXksbXQ9rpospn-n5cVkNUo6A5cszlzfIac/1712312038398-x2E.png)

#### **Super User**

Super Users have access to almost all features, sections and data in the system, *except* for:

* Creating/editing user accounts
* Configuring integrations
* Sharing matrices
* Issuing approvals for others.&#x20;

Super Users can have either "Can view" access OR "Can edit" access.

![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/Rk5s0PNrti8FjZ8cAfIJoJnHugVpN6xN7iPmDM9g_1o/1712312135656-4p4.png)

#### **My Portfolio User**

A My Portfolio user needs to be an employee in the system, and they only have access to their own data via the My Portfolio page.&#x20;

My Portfolio users can also have either "Can view" access OR "Can edit" access.&#x20;

"Can edit" access means they can add results for themselves.

My Portfolio "Can edit" users are not able to change their positions.

![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/On0gkpSHgvQsI6WDHu_uWte4bi6RABv4BdLl9t0Jn_Q/1712312199639-aX8.png)

#### Custom Users

A Custom User can access up to 8 different areas in AG5:&#x20;

* Matrices
* Employees
* Skills
* Organization
  * Libraries
  * Organizational structures
* Skill actions
  * Results, plannings, revocations, exemptions and personal requirements
* Groupings
* My Portfolio (must be an employee in AG5)
* Portfolios of employees one manages

In each of them, users may have "Can view" or "Can edit" access. Moreover, users may also gain access to creating, editing and sharing matrices (provided that the user already has "Can edit" access to Skill events).&#x20;

**Skill actions**

When the Skill actions area is set to "Can view", that means that the user can see skills results, plannings, revocations, exemptions and personal requirements. "Can edit" access allows users to add, edit or delete the above elements for other users.&#x20;

In order to gain access to the Skill actions area, users must first be granted access (at least "Can view" access) to the following areas: Employees, Skills and Groupings.

**Portfolios you manage**

The *Portfolios You Manage* setting defines what a user can see and do in the portfolios of employees they manage. When enabled, the user automatically gains access to the portfolios of all employees for whom they are assigned as manager.

When set to *Can view,* the user can:

* Access all employees for whom they are listed as the manager.
* View all related employee data, including **basic information**, **positions**, and **skills**.
* See only the skills that are **achieved or required** by these employees in the general **Skills overview** list.
* Access **all skills** in the repository when adding new skill results, performing other skill actions, or creating self-assessment requests.

When set to *Can edit, in* addition to the viewing permissions:

* The user can **edit** the employee’s **position** and **skills data**.
* Basic employee data such as **name**, **birthdate**, or **contract details** cannot be edited.

<figure><img src="/files/ZWsa2hpc8Qh85h8hDWrz" alt=""><figcaption></figcaption></figure>

In order to create or share matrices, users must have can-edit access to Skill Events.

![](https://cdn.elev.io/file/uploads/tfNHbase18C9irCYFEYUJIWBYNbJEZKpwfnSxeUHdUg/P25U99z-cwwt706uRKobiZQ5voI8F726A5INxD89A0Y/Screenshot2024-05-21at135147-Etk.png)

Users will automatically gain access to Organizational Structures if they have access to the Skills, Grouping and Employees areas.&#x20;

Users will have access to all matrices if they have access to the Skills, Grouping, Employees and Skill Event areas.

The "Creating matrices" option allows the user to create matrices and also to edit ones that were created by someone else.

### Creating User Accounts

{% hint style="info" %}
If your organization has SSO enabled, new user accounts are created automatically once someone accesses AG5 for the first time.&#x20;

Typically, the automatically created account will be a My Portfolio user with either view or edit access.&#x20;

Administrators only need to edit these user accounts if granting higher than default access.
{% endhint %}

If you do NOT have SSO enabled and need to create user accounts manually, head to *Organization* > *Account management & History* > ***User accounts***.

![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/YshjpDdEJG-hFXWflBqwkGmQTyodbn29Zn-ElLH9vmw/1729852187952-9r4.png)

Click:<img src="https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/gpFYL1tSVELnb1e9oKwXiQAkll14O6BcP8vQPuCme60/1729852443582-rFs.png" alt="" data-size="line">, choose the employee for whom you want to create a user account, and choose their account type.

<figure><img src="/files/SoFz17OlrnZ6SDfDfx83" alt=""><figcaption></figcaption></figure>

It is not required that there be an employee profile possible to create a user account. This is often the case for administrators. In these instances, enter the email address manually.

<figure><img src="/files/jCnSexxt9oHAhPoDEImB" alt=""><figcaption></figcaption></figure>

### Sharing matrix rights

After granting users initial access rights as described above, you can extend their rights by granting them matrix access.

***Matrix access (Initial rights + matrices granted)***

By sharing a matrix on the Matrixes page with a user, this user will gain access to the employees and skills that are shown in that matrix.&#x20;

This is particularly useful when a user hasn't already been granted access to **all** employees and skills.

To share a matrix click on the 'people' icon on a matrix tile:

<p align="center"><img src="https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/chvMtJ74pKve-WUCbCA07UQL-uTQ2AUDHWyfU4vqYnI/1712312691412-mpI.png" alt=""></p>

For example, by sharing this matrix with a user, they will gain access to the 48 employees and the 12 skills contained within

Then, select the user's role as Viewer or Editor and click save. Users can have matrix access removed by clicking on the trashcan icon:

<p align="center"><br> <img src="https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/urE9z_WIk5J717c6sVEgP8Axj7idrgO5jo6kfSyEot8/1712312869624-AIw.png" alt=""></p>

Users with matrix access will see:

* **Matrices** - with only shared matrices visible.
* **Employees** - list with only the employees in the matrix and the option to see their detailed data.
* **Skills** - limited to the skills in the matrix.
* **Expert finder -** tool for quickly finding qualified employees; limited to employees in shared matrix.
* **Alert list** - for querying data and getting insight into any skill gaps for the employees and the skils in the matrix.

Note: this is an extended right. It's a right that is added to one of the basic account types. If the user already has "Can view"/"Can edit" access employees because of their Super User or Admin access, sharing the matrix does not accomplish anything.

As mentioned above, this right is usually combined with the My Portfolio access.

### Examples

Curious about why certain types of employees would be granted certain types of user accounts?

The next article has several examples of user accounts. Check it out!


# User account examples

Latest update: July 21st, 2026

This page is a list of scenarios with potential access requirements, and which settings are required in AG5 in order to achieve those requirements.

If you're interested in learning more about these types of user accounts, [check out that article here](/accounts-roles-and-permissions/user-accounts).

The screenshots displayed in this article come from the Organization > Account management & History > User accounts section.&#x20;

**Scenario 1:&#x20;*****User should have access to everything***

The Admin role should be selected:

<div data-with-frame="true"><figure><img src="https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/VLTNjiVyyFJuPvsvvYQkxj5LA5GDPH9A4YDKTeEHBqc/1712319948559-GpY.png" alt=""><figcaption></figcaption></figure></div>

***

***Scenario 2: The employee should be able to see their own skills.***

The following My Portfolio setting is required:

<div data-with-frame="true"><figure><img src="https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/4Ou2-85bRo-I_BHjNHK2dHyRLXGTYbxGrh8t_mwU9oY/Screenshot2024-04-05at142701-4gA.png" alt=""><figcaption></figcaption></figure></div>

***

**Scenario 3:&#x20;*****The employee should be able to see and change their own skills.***

The following My Portfolio setting is required:

<div data-with-frame="true"><figure><img src="https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/FNaHTWDQrXcxX3m8VBltbpgKtQpC128aMpwVg4lnqcw/Screenshot2024-04-05at142939-OmM.png" alt=""><figcaption></figcaption></figure></div>

***

**Scenario 4:&#x20;*****User should be able to view all employees, skills, requirements, matrices, plannings, revocations, etc. but not user accounts.***

The following Super User setting is required:

<div data-with-frame="true"><figure><img src="https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/tNSiCBYg2UEF9JLVafPChxq4MNTA-60Hp-zy4jcUnO4/Screenshot2024-04-05at143153-GLQ.png" alt=""><figcaption></figcaption></figure></div>

***

**Scenario 5:&#x20;*****User should be able to edit all employees, skills, requirements, matrices, plannings, revocations, etc. but not user accounts.***

The following Super User setting is required:

<div data-with-frame="true"><img src="https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/EXYkiwzQ1P0OhhH9LpB5NdidxDRTA20U0qtjVONcZl4/Screenshot2024-04-05at143328-i_E.png" alt=""></div>

**Scenario 6:&#x20;*****The user should be able to set results on their own My Portfolio page and create skills and requirements.***

The following settings are required for the user account:

<div data-with-frame="true"><img src="https://cdn.elev.io/file/uploads/tfNHbase18C9irCYFEYUJIWBYNbJEZKpwfnSxeUHdUg/MtC3w2YeOhNex_X3hqDwcGsu6FzlipNBhBefXJOeDk4/Screenshot2024-05-21at134326-vlc.png" alt="" height="240" width="602"></div>

**Scenario 7:&#x20;*****User should be able to see their own My Portfolio page, all other AG5 sections, AND be able to create skills and requirements.***

The following settings are required for the user account:

<div data-with-frame="true"><figure><img src="https://cdn.elev.io/file/uploads/tfNHbase18C9irCYFEYUJIWBYNbJEZKpwfnSxeUHdUg/tC_wzg4hP7rZYGRpmjEusrS8nHrFATyh7nEuAOehoKw/Screenshot2024-05-21at134045-pJU.png" alt=""><figcaption></figcaption></figure></div>

<br>

**Scenario 8:&#x20;*****The user should be able to see their own My Portfolio page and manage a specific group of employees.***

The following settings are required for the user account:

<div data-with-frame="true"><figure><img src="https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/NlT2e7YsaBNrQfalJszKoIjTmokLfBCG-xoPIxyxelk/1712320712176-0DI.png" alt=""><figcaption></figcaption></figure></div>

On the Matrices page, share as Editor the matrix that should be managed.

<div data-with-frame="true"><figure><img src="/files/6xd9QjFcW8I7JsvFhbwR" alt="" width="563"><figcaption></figcaption></figure></div>

Now the user will have access to shared matrices, the alert list and all employees & skills (also known as qualifications) contained in the matrix.

**Scenario 9:&#x20;*****The user should be able to create matrices & share them but should not change groupings or skills.***

The following settings are required for the user account:

<div data-with-frame="true"><img src="https://cdn.elev.io/file/uploads/tfNHbase18C9irCYFEYUJIWBYNbJEZKpwfnSxeUHdUg/dB5DpUunARCA86Vb9BATsbN5rfe7yp_EkbxygQnOENs/Screenshot2024-05-21at134718-Cww.png" alt=""></div>

**Scenario 10:&#x20;*****The user should be able to manage skills and groupings but should not change employee information.***

The following settings are required for the user account:

<div data-with-frame="true"><img src="https://cdn.elev.io/file/uploads/tfNHbase18C9irCYFEYUJIWBYNbJEZKpwfnSxeUHdUg/PbDeh1WJ-aKrzAMw7ECwFFBm9bFuy8O4UIeAaXONKxk/Screenshot2024-05-21at135011-At0.png" alt=""></div>

**Scenario 11:&#x20;*****The user should be able to add new results, plannings, etc., and see their Portfolio but should not be able to change employee information and skills.***

The following settings are required for the user account:

<div data-with-frame="true"><img src="https://cdn.elev.io/file/uploads/tfNHbase18C9irCYFEYUJIWBYNbJEZKpwfnSxeUHdUg/ZV_H1GdMjSgPcJMonQUuu0EkgX3oXKjpTtH7d1tYTqw/Screenshot2024-05-21at135147-Lu4.png" alt="" height="243" width="602"></div>

**Scenario 12:&#x20;*****Certain users should not be able to export data.***

Reach out to <support@ag5.com> for activating a feature which allows you to restrict exports

***

If you have any questions about how best to configure a certain user account, or if you would like to activate the above feature for restricting exports, please reach out to <support@ag5.com> or your customer success manager.


# Troubleshooting access&#x20;

Latest update: July 9th, 2026

Having trouble logging into your AG5 account? Don't worry, we're here to help you troubleshoot! Whether you're logging in with an email and password or using Single Sign-On (SSO), we've got you covered. Below are some common issues and solutions to get you back on track.

### **Logging in with Email and Password:**

1. Check for typos: Double-check the email address you're using to log in. Typos happen more often than you think, so ensure there are no misspellings or extra characters.
2. Verify email domain: Make sure you're using the correct email domain (e.g., ".com" instead of ".de"). Sometimes a simple domain mistake can prevent you from logging in.
3. Confirm user account: Reach out to your organization's AG5 administrator to ensure that a user account has been created for the email address you're trying to log in with. If not, they can assist in setting up your account.
4. Reset password: If you're still having trouble, try resetting your password. You can do this by [navigating here](https://matrix.ag5.com/auth/login), entering your email address and selecting the "Request new password" option on the login page. Follow the instructions provided to receive an email from AG5 to reset your password and regain access to your account.
   1. Sometimes the password reset email ends up in your spam folder. If you don't see it right away, give that a look.
5. Contact support: If none of the above solutions work, don't hesitate to reach out to our support team at <support@ag5.com>. Be sure to include the error message you're receiving and the email address you're using for clarification.

### **Troubleshooting Single Sign-On (SSO):**

#### 1. **Not Authenticated**

**What it means:**\
The user tried to log in using their organization’s identity provider, but the login attempt was unsuccessful. The identity provider failed to authenticate the user and redirected them back to AG5.

**Possible causes**

* Your login credentials may be incorrect
* Your account may not be correctly set up in your organization’s identity provider

**What to do next**

1. Check your credentials and try logging in again
2. If the issue persists, please contact your organization’s AG5 admin for assistance
   1. The most common issue with SSO login is not being added to the correct user group by your IT department. Ensure that your IT team has assigned you to the appropriate user group within your company's SSO settings.

Example screenshot:

<figure><img src="/files/nZ9yQIIwtqFvAOEOrcun" alt=""><figcaption></figcaption></figure>

#### 2. **Not Authorized**

> We couldn't grant you access to AG5 because your email domain (ag5.io) is not authorized by your organization.

**Possible causes**

* You may be using an email that is not linked to your organization’s AG5 account
* Your organization may not have authorized your domain for access

**What to do next**

1. Check that you're using the correct email address associated with your organization’s AG5 account
2. If the issue persists, contact your organization’s AG5 administrator to verify your email domain and permissions

Example screenshot:

<figure><img src="/files/2Wk46t15uEFvUmYvRgCM" alt=""><figcaption></figcaption></figure>

#### 3. **No User Account**

**What it means:**\
We couldn't find an AG5 account linked to your login details.

**Possible causes**

* Your account has not been created in AG5 yet
* You might be using the wrong login credentials

**What to do next**

1. Verify that you are using the correct email address associated with your organization
2. If you need access, contact your organization’s AG5 administrator to create an account for you

Example screenshot:

<figure><img src="/files/32NK3MzR0ev54pXWH1XL" alt=""><figcaption></figcaption></figure>

#### 4. **Something Went Wrong**

**What it means:**\
We encountered an issue while trying to log you in.

**Possible causes**

* There may be a temporary issue with the login service
* Your login request may not have been processed correctly

**What to do next**

1. Try logging in again after a few minutes
2. If the issue persists, please contact [AG5 Support ](mailto:support@ag5.com)and include the reference details below to help us resolve the issue quickly

Examples screenshot:

<figure><img src="/files/CaTTrpeAIKsOgNImTLYs" alt=""><figcaption></figcaption></figure>

**Auto logout / session timeout**

If users report being logged out unexpectedly, your organization may have auto logout enabled. AG5 can automatically log users out after a period of inactivity. This is set per organization, so it applies to your whole AG5 environment.

There are three options:

* **Inactivity timeout:** users are logged out automatically after a set period of inactivity. The duration is configurable to your preference, for example one hour.
* **Browser close:** users are logged out when the browser is closed entirely, meaning the full browser window and not just a single tab.
* **Combined:** both the inactivity timeout and browser close options are active at the same time.

This feature is available in AG5 today. To enable it or change the configuration, contact AG5 support.

Remember, regardless of the login method, we're happy to support you every step of the way. If you encounter any difficulties, don't hesitate to reach out to us at <support@ag5.com>, or at +31 20 4630942.


# Signing into AG5 for the first time

Latest update: July 21st, 2026

You've just been told that you have an AG5 account. That's great! Welcome to the platform.&#x20;

What now though? How do you sign in?

> **Signing in with SSO**\
> \
> If your organization has [SSO (Single sign-on)](/data-management/integrations) enabled, then the steps below are not necessary, as you'll be able to log into AG5 without creating a password. \
> \
> Instead, simply click on AG5 in your organization's app library or go to <https://matrix.ag5.com/>. There, after entering your email address, you'll see the option to sign in using SSO.\
> \ <img src="https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/1HOs52lxviLIkrYNWf5uEANTa8y5HR2KtxnCIbnQVok/1730129978282-SjI.png" alt="" data-size="original">

**Signing in without SSO**

If your organization does NOT have SSO enabled, follow these steps to create your password:

1. Navigate to your AG5: <https://matrix.ag5.com/>
2. After clicking on that link, you'll arrive at this screen. Enter your email address and click "Next":\
   \
   ![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/jlJ9LTpbAmwIxwo1RMk0nO9bBNkyv8SvQqEa3FTjHe8/1729850340878-Ag4.png)\ <br>
3. Then, click on "Request new password".\
   \
   ![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/OEVpN6bW8-9ueLPIDyVVR5giUM7KS8KW6UBxOuvW8fo/1729850485746-Qjc.png)\ <br>
4. And then click "Submit".\
   \
   ![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/gR1K5mN1yFrG1iL9wwLkADLJyiAJhE9JiwEqyAxgD7g/1729850530670-pwE.png)\ <br>
5. After this point, you'll receive an automated email from AG5 allowing you to set up your new password (Check your spam folder if it doesn't appear in your inbox).
6. Finally, go back to AG5 and sign in with your email address and the password you just created.
7. You're all set! Write to us at <support@ag5.com> if you have questions.


# Proxy user

Latest update: July 21st, 2026

### 1. What is a proxy user feature?  <a href="#ispasted" id="ispasted"></a>

The **proxy user** feature allows admin users to view and interact with the system as if they were another user.

### **2. What is the purpose of proxy user?** <a href="#ispasted" id="ispasted"></a>

* Understanding the system from another user’s perspective
* Training other users
* Troubleshooting for other users&#x20;

### **3. How to use the proxy user feature?**

1. **Open the account dropdown menu**
   * Click on your profile icon in the top-right corner of the screen.
   * In the dropdown menu, select **Act as proxy user**.\
     \
     ![](https://cdn.elev.io/file/uploads/7gcbr1LiVY8CeYydm_ADiRjfQh280j1oLlUR1fbmQP8/mZfKeqkFwWoZk0UFA5nXVEXNXuZP547WHUPmVuQpFw0/1737553147863-jQA.png)
2. **Choose the target user**
   * A list of users will appear in a new popup window.
   * Use the search bar to find the user you want to act as.
   * Click on the user’s name from the list to select them.\
     ![](https://cdn.elev.io/file/uploads/7gcbr1LiVY8CeYydm_ADiRjfQh280j1oLlUR1fbmQP8/Qob1bCpCszd1OtwLdRoKEG4bWI9FHNkrvC9kOQ2c0Ik/1737553182894-GIM.png)
3. **Interact with the system as the selected user**
   * Once you’ve selected a user, the system will switch to their perspective.
   * You can now view and interact with the platform as if you were logged in as this user.\
     ![](https://cdn.elev.io/file/uploads/7gcbr1LiVY8CeYydm_ADiRjfQh280j1oLlUR1fbmQP8/8bOA0EpHGtHwaJb1ynClHdFCbhxLOE3Zy6gmNZNZvYA/1737553018892-p_Y.png)
4. **Stop acting as a proxy user**
   * To return to your own account, open the profile dropdown menu again.
   * Select **Stop acting as a proxy user** to end the session.

> **Important Notes**
>
> * This feature is only available to admin users.
> * Any actions performed while acting as a proxy user are logged for accountability and assigned to the admin user who is acting as the proxy, not to the user being proxied.
> * You will retain your admin privileges while viewing another user’s account but must switch back to your account to make administrative changes.

The Proxy User feature is a powerful tool for assisting your team and ensuring a smooth user experience. If you encounter any issues, feel free to reach out to our support team!


# Skills app

Latest update: July 21st, 2026

Great for allowing managers and employees to add results and electronic signatures from the floor, our Skills App provides an intuitive interface for managing and viewing skill development and results.&#x20;

It is available for iOS phones in the App Store, and for Android phones in the Google Play Store.

<div data-with-frame="true"><figure><img src="/files/FvGZrJtrhVFyiv3giKqj" alt="" width="188"><figcaption></figcaption></figure></div>

### What's possible in the app?

The AG5 Skills app has 5 separate tabs:

* Home
* Add result
* Employees
* My portfolio
* Settings

### Home tab

When you first open the app, you'll be taken to the home screen. Here (if you have an employee profile of your own), you'll see your Skills overview, a visual overview of the number of your achievements, as well as the number of skills still required for your position.

<div data-with-frame="true"><figure><img src="https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/lKAoemlKVu_x40tqzHRzDE_QsmJoL2qA7ZqRAgYUEv0/APP-Skills-overview-9u0.svg" alt=""><figcaption></figcaption></figure></div>

Below that is a shortcut for adding results. Pressing this blue button will take you to the "Add result" tab.

<figure><img src="https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/B8GOoeTB319TTWPCvYQlD2IuMFol1NMPOobtXd4C7Pw/APP-Home-Add-result-pA4.svg" alt=""><figcaption></figcaption></figure>

Further down you'll find your "My results" section, which contains all results against your employee profile added over the last 3 months. This section is only present if your user account is linked to an employee profile.

<div data-with-frame="true"><figure><img src="https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/2STwUMrf4h__6tBSR0qqviIrUjDBx7dwOTy9ezQPKHU/APP-Home-My-results-0Jk.svg" alt=""><figcaption></figcaption></figure></div>

Finally, the "Results added by me" section shows all results added by your user account over the last 3 months. By default, the app shows the 3 most recent results. Tapping "See more results" will show all results from the last 3 months.

<div data-with-frame="true"><figure><img src="https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/L3D1BokKRKJ2eOXD4pt2anj8DYn80-W-8GK8HTfs1aw/APP-Home-Results-added-by-me-nmE.svg" alt=""><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/rlS2GPDh0Oz7s_0TSM6Ch8ZhZ-gkNEyOQG-ezLeXMHc/IMG_1506-ZBU.PNG" alt="" width="375"><figcaption></figcaption></figure></div>

Tapping on any individual result takes you to its details page, where you can view and download attachments and eSignatures.

<div data-with-frame="true"><figure><img src="/files/PMMnlkMuI5EAlK9yA9Fx" alt="" width="375"><figcaption></figcaption></figure></div>

### Add result tab

This tab is where you add results for yourself or others (assuming your user account has the correct edit rights).

First, a date is chosen for the beginning of the result validity. After tapping "Next", choose the employee for the result by tapping their name. Only one employee can be chosen at a time here. For adding results to multiple employees at once, use the Employees tab instead.

<div data-with-frame="true"><figure><img src="/files/iZRKDTuxP1O4OVnMyKjz" alt="" width="375"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/d3fi1yElka1agi21Z0Uv" alt="" width="375"><figcaption></figcaption></figure></div>

Next, search for and tap the skill, then choose a score. This page is also where you can add remarks or take a picture of any relevant documentation or certification. There are no limits to the number of pictures that can be uploaded. Tapping the info icon lets you view the rating level descriptions (if filled out by your organization).

<div data-with-frame="true"><figure><img src="/files/skmPG93JcU4dKxsRYRyA" alt="" width="375"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/rWVRkm9Km48bDm3nK0pJ" alt="" width="375"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/nEMppKmzaYs3uwEzmLJX" alt=""><figcaption></figcaption></figure></div>

Finally, you'll reach the Summary page. This is where eSignatures are added before submitting. Multiple signatories are supported. You can collect signatures from the employee, manager, trainer, or anyone else involved in the assessment. Before signing, each signatory must check a declaration checkbox confirming their acknowledgment; this declaration and the signer's details are included in the generated eSignature file. Once all signatures are added, tap "Submit" to save the result.

<div data-with-frame="true"><figure><img src="/files/LDwqkR0B8H5AYU3U6AIy" alt="" width="375"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/Usmhl0EmB5NTEliWCdkW" alt="" width="375"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/os88OuW3G6NMa2ihFg0q" alt="" width="375"><figcaption></figcaption></figure></div>

### Employees tab

The Employees tab lets you browse your team and take action directly from the floor.

<div data-with-frame="true"><figure><img src="/files/7YIgiCVhWjoNGzif9xwj" alt="" width="375"><figcaption></figcaption></figure></div>

#### Adding results for multiple employees at once

Save time by adding results for your entire team, or selected employees, in a single action. Simply choose a skill, assign a score, and add remarks, attachments, and signatures for everyone at once. Individual entries can still be adjusted before submitting.

How to use it:

1. Go to the Employees tab using the icon in the bottom navigation bar.
2. Tap the blue multi-select button.
3. Select up to 25 employees and tap Actions, then Add results.
4. Choose a skill, set a shared score, and add remarks, attachments, and signatures.
5. Continue to the next step to review and adjust details per individual.
6. Tap the arrow next to an employee's name to modify their score, attachments, or signatures.
7. Review everything on the summary page and confirm. Shared signatures will be applied separately to each selected employee.

<div data-with-frame="true"><figure><img src="/files/Pvcpz75oMcTUZFJyf6Us" alt="" width="371"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/Y07KqeReE9y3iKs3zX31" alt="" width="375"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/SiPkUXhV5dDakQ7LGepI" alt="" width="375"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/1HE49NfXUHBRQvZKDeQP" alt="" width="375"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/219cgY04H9LJBFIgWk0K" alt="" width="375"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/O4oGC1hLykM3mEMMefWj" alt="" width="375"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/JWsAo3CawfcHXcs5cgMK" alt="" width="375"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/4rfEbsiOf76LEt0WJ82F" alt="" width="375"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/un4r5DbG25HcJaUgp0Vi" alt="" width="375"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/eGwo2H3eptZBgVfc4yfD" alt="" width="375"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/8b38KpsjrNVWs6mJgkBM" alt="" width="375"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/N1Ru6q7kXQriyrZYi1rW" alt="" width="375"><figcaption></figcaption></figure></div>

#### Employee details and position overview

You can also tap into any employee's profile to view their details and position directly in the app. Whether you're on the shop floor or away from your laptop, this lets you verify information and understand role context on the spot. This looks the same as the below My Portfolio tab, except for other employees, not yourself.

### My portfolio tab

This tab allows users who have an employee profile to view all of their valid and required skills. Tapping on each skill provides its details and result history. For employees with many requirements, the search, sort, and filter functions make it easy to find any skill.

<div data-with-frame="true"><figure><img src="/files/uZJ19fhsgABYh60SGW2k" alt="" width="375"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/TxpOeUTKvlypmaICrHSU" alt="" width="375"><figcaption></figcaption></figure></div>

#### Viewing plannings

A blue dot next to a skill indicates that a planning has been created for a skill gap. Tapping the skill takes you to the details page where the planning deadline is visible. Expanding the planning by tapping on it provides further details.

<div data-with-frame="true"><figure><img src="/files/Gvs4wwsDajefRORp8iz5" alt="" width="375"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/h3LqV52xi25RNxfTYtsQ" alt="" width="375"><figcaption></figcaption></figure></div>

#### Viewing skill attachments

Skill attachments are visible and available for download under each skill's accordion section in your portfolio, giving you quick access to relevant documents directly within the app.

<div data-with-frame="true"><figure><img src="/files/U7Bj2aKLOKJnOuZek79v" alt="" width="375"><figcaption></figcaption></figure></div>

#### Viewing prerequisite rules

After tapping into a skill detail page, you can see when a skill has prerequisite assignments. Expanding the "Skill prerequisites" section shows the rules in full. The app also shows a clear warning when a result's prerequisites have not yet been met, helping you take the right actions at the right time.

<div data-with-frame="true"><figure><img src="/files/DF9V7QwmxRaxvhmwDGPT" alt="" width="375"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/aqBuAmgielaD63tv05Af" alt="" width="375"><figcaption></figcaption></figure></div>

### Settings tab

The Settings tab allows users to:

* Choose active repository (if more than one is available for your user account)
* Choose language
* Contact support
* Log out

<div data-with-frame="true"><figure><img src="/files/NKstrhaGlNsgsTDDiOft" alt="" width="375"><figcaption></figcaption></figure></div>

Questions or feedback? Please let us know at <support@ag5.com>.


# Workflows

Latest update: July 21st, 2026

This page explains how to set up workflows in AG5. A workflow is a function within AG5 which allows admins to automatically notify their users (like employees, managers, etc.) about some of the changes in the system, such as when:

* Skills are missing or expiring soon
* New plannings have been made
* Master data changes have been made
* Skill actions resolved or waiting for approval
* Self assessments unsubmitted

Essentially, workflows are email notifications with a condition - what should happen when (such as when there's a missing skill requirement, for example).

In order to create a workflow in AG5, navigate to "Organization" and then down to "Workflows".<br>

<figure><img src="/files/hHpcRNrtZIdkWOrrw5ot" alt=""><figcaption></figcaption></figure>

1. Click "**Create workflow configuration"**.
2. Name your workflow and click "Create".<br>
   1. We recommend leaving 'AG5' and '<noreply@ag5.com>' as the sender name and sender email address respectively. Any email address entered here will receive reply emails. Of course, feel free to replace those if so desired.
   2. The 'Required approval' box should be checked if you want to be able to grant approval before the workflow triggers. If you check this box, add the email address that should get this approval email in the 'Email verification' field.
      1. If you don't want to approve every workflow triggered, ignore these.
3. **Add a trigger to the workflow.**

   A trigger is an instance where a workflow action (sending an email) is *triggered.* Basically, you're telling AG5 when you want an email sent, and in what context.\
   \
   Only **one** trigger can be added per workflow. Multiple workflows need to be created for multiple triggers.

   1. Scroll down to "Triggers" and click on "Add trigger”. Possible options include: 
      1. Required skill is missing
      2. Required/non-required skill is expiring soon
      3. Required skill is missing or expiring soon
      4. New planning
      5. Master data change request reviewed
      6. Master data change request waiting for approval
      7. Skill action resolved
      8. Skill action waiting for approval
      9. Self-assessment not submitted
   2. After choosing the necessary trigger, you need to choose which skill(s) will be used for the email notifications - there can be one skill or many. Click save when you're done. It's also possible to come back later and edit the trigger to add more skills.\ <br>

      <figure><img src="/files/cV9hXkZDzsfUkaXcxYfD" alt=""><figcaption></figcaption></figure>

   <br>
4. **Add an action to the workflow.**

   The action is the actual email alert. More than one action can be set up for a workflow. For example, you might set up one email alert for the employees themselves, as well as a second one for their direct manager, and a third for the training department.

   1. Move down the page and click on "**New action**". For action type, select "**Send email**" (the "API action" option is only used for integrations).
   2. At this point, you will want to consider who will get the email notification, and what kind of email you would like your users to receive.\
      \
      **IMPORTANT:** Employee user accounts must be attached to employee profiles containing email addresses in order to be recipients.
      1. First, choose the recipient of the email, which can either be the employee, their manager, or a specified email address (e.g. a training coordinator).
      2. Next, the subject and the body of the email must be created. When clicking in either field, both the subject and the body of the email can be personalized with the templates presented in this pop-up window, which auto populate text based on the skill and employee:\
         \
         ![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/Ze-kbzEcLMJ8OF_3t8LeYUB6hnsZP2kdhVI0k1hfu4g/Screenshot2024-09-30at114311-YWo.png)<br>
         1. Bear in mind, for those template fields to appear, the necessary information must be present in the system first.
      3. Finally, choose *when* the email should be sent (availability of employees can be changed in the employee portfolio).
         1. Always Run
         2. If employee is available
         3. If employee is not available
5. **Save the workflow action**

   &#x20;

   <figure><img src="/files/6aHjw9nkPGTbiuwuxiMQ" alt=""><figcaption></figcaption></figure>

   <br>
6. **Activate the workflow**
   1. Scroll up, click on the 3 dots next to "Edit" and select "Activate workflow". The workflow is now fully functional and ready to be used after the message on top changes from Inactive to Active.
      1. Deactivation of a workflow is done in the same way.<br>

![](/files/GigpsdFo0yhczyFT2D0h)

\
An email will be sent to designated recipients each time the workflow's trigger is activated.&#x20;

> It's important to note that this will be a **separate** email for each instance the trigger fires. For example, let's say that a manager (who is set as a recipient) has 10 folks whose results will expire. That manager will then get 10 separate emails instead of a summary email.
>
> Please keep this in mind in order to avoid unintentionally spamming your recipients with notifications.&#x20;

All sent emails can be seen in the Organization > Sent Emails menu.

Questions? Ask your customer success manager or [AG5 customer support](mailto:support@ag5.com).


# Workflow Reminders

Latest update: July 22nd, 2026

## What is a workflow reminder?

Workflow reminders **automatically send follow-up emails** when a trigger condition remains unresolved after a set time. This helps ensure timely action and **reduces the need for manual follow-ups**, especially when original workflow emails are missed or ignored.

This is especially useful when employees or managers haven't yet acted on the original workflow email.

***

### Supported Triggers

Reminders can currently be configured for the following workflow triggers:

* **Skill action waiting for approval**
* **Required / non-required skill is expiring soon**
* **Required skill is missing**
* **Required skill is missing or expiring soon**

> ⚠️ Reminders will only work for trigger actions that are activated **after the reminder is configured.** Existing open tasks won’t receive reminders retroactively.
>
> ⚠️ If the workflow requires approval, **every reminder email will also require approval.**

***

### How to Configure a Reminder

1. Go to **Organization > Workflow Configurations**
2. Open or create a workflow
3. In **Reminders** section, click on **Set reminder**
4. A new modal will appear with the following options:

{% stepper %}
{% step %}

#### 📅 Frequency

Choose how often reminder emails should be sent.

* **Every X** days/months/years&#x20;
  {% endstep %}

{% step %}

#### ⏹ End Condition

Choose when the reminders should stop:

* After a specific **number of occurrences**
* Never (until the action is completed)&#x20;
  {% endstep %}

{% step %}

#### ✉️ Actions with reminders

Select which actions should get a reminder
{% endstep %}
{% endstepper %}

***

### Example: “Skill Action Waiting for Approval” Reminder

Let’s say you’ve configured a workflow for **"Skill Action Waiting for Approval":**

* You set a reminder to send **every 5 days**
* You leave the **end condition** set to "Never"
* You select the action: **Email notification to: Approver**

<figure><img src="/files/5wWsrt2tar2aYNLcXdnB" alt=""><figcaption></figcaption></figure>

**The result?** If a skill update isn’t approved, AG5 will send a reminder email to the approver every 5 days **until the action is completed**.

***

### Resetting a reminder

If you need to reset a reminder (e.g. to start a new schedule or update the configuration), follow these steps:

1. Click **Edit reminder**
2. Change the frequency to **Never**
3. Click **Save**
4. Reopen the reminder settings and configure it again with the new values

This ensures that the previous reminder settings are cleared and replaced with the updated configuration.


# Insights Dashboard

Latest update: July 29th, 2026

The Insights Dashboard gives you data-driven visibility into your organization's skills compliance, gaps, and development progress. It is available to Admins, Super Users, and Team Managers.

For calculation details, see [Insights metrics explained](/insights/insights-dashboard/insights-metrics-explained).

{% hint style="info" %}
The Insights Dashboard is currently available in English only.
{% endhint %}

***

### What's included in the Insights Dashboard?

The Insights Dashboard consists of several pages, each focused on a different dimension of your skills data. Together, they allow you to move from identifying gaps to actively resolving them.

#### Overall Insights

<figure><img src="/files/f3DnA9kK2Z15zwuenCyo" alt=""><figcaption></figcaption></figure>

The main Overview page shows organization-wide skills compliance metrics. It includes a **data table** displaying the actual numbers behind each chart, giving you full transparency to validate or export data for deeper analysis.

<figure><img src="/files/kOBcxdNCA1B1M9haLo39" alt=""><figcaption></figcaption></figure>

Use the **time filter** to track how compliance has changed over a selected period. Note that the period filter uses month-based selection only - the first day of the selected month is used as the reference date (except when the current month is selected in the "Until" field, which will show today's date).

A **collapsible sidebar** is available to give you more screen space when working with data-heavy pages.

<figure><img src="/files/OzsOADPTqAlyjJuEG4yq" alt=""><figcaption></figcaption></figure>

#### Compliance charts

The following charts were previously available on the Overview page. As of May 2026, skill- and employee-related charts have moved to their own dedicated pages (see Skills Insights and Employees Insights below). The Overview page now focuses on organization-wide summary metrics.

* **Compliant results per Skill** - Quickly assess and compare compliant results across all skills
* **Compliant results per Employee** - See compliance levels per individual employee
* **Gaps per Skill** - Identify which skills have the most outstanding gaps across your workforce
* **Gaps per Employee** - Identify which employees have the most gaps

{% hint style="info" %}
"Gaps" refers to missing or non-compliant required skills. This terminology replaced the earlier term "Problems" as of March 2026 (English only).
{% endhint %}

All entity names in the charts are **clickable** - click on any employee or skill name to jump directly to their detail page and take immediate action.

Please note that users only see the skills or employees they already have access to. For example, a manager of two teams will only see data for those teams when no filters are applied. Use the matrix filter to narrow results to a specific team.

Skills compliance reflects how well your workforce meets **required** skills. If your organization primarily tracks achieved skills without defining skill requirements, these charts will not show meaningful data.

<figure><img src="/files/WjkhXIIvXzoUswqFcKs8" alt=""><figcaption></figcaption></figure>

#### Grouping Insights pages

Each grouping type **with requirements** in your [organizational structures](/employees/organizational-structures) - such as **job roles, teams, locations, or shifts** - has its own dedicated Insights page. These pages are available to users with access to all organization data, and can be accessed via the sidebar beneath the Overall compliance page.

On each page you can:

* Use **filters** to focus on specific groupings and compare them with each other
* Use the **time filter** to see how compliance has progressed over a period
* View the **full organizational structure path** of a team, shift, or grouping - either in the data table or by hovering over the name in charts and lists. This ensures data is always interpreted within the correct operational context.

This makes it easy to see which teams or roles are excelling, which need support, and where to focus improvement efforts.

### Skills Insights and Employees Insights

As of May 2026, skill-related and employee-related charts have moved off the Overall compliance page and into two dedicated pages: Skills and Employees. These pages give you a clearer, more focused view of your compliance data.

Each page includes:

* Charts for the relevant dimension (skills or employees)
* A searchable and exportable data table with all underlying data
* Dedicated filters to drill into the specific slice you need

<figure><img src="/files/E3MQm7aJTraBQcW7VEm4" alt=""><figcaption></figcaption></figure>

#### Skill Development Insights

The **Skill Development Insights** overall page provides visibility into the entire skill development process - helping you shift from identifying gaps to actively resolving them. This is also available via the sidebar.

It lets you track each step of the process:

* [Planning training](/skills/skill-planning)
* [Requesting self-assessments](/employees/self-assessments)
* [Monitoring approvals](/skills/skill-results/results-approvals)
* [Recording results](/skills/skill-results)

**Key benefits:**

* Quickly identify where results are stuck in the process and pinpoint bottlenecks (e.g., waiting for self-assessments or approvals)
* Clearly see where training is already planned and where it is delayed
* Identify where immediate action is needed by specific teams or managers using the matrix filter

<figure><img src="/files/GHGpCxKhxscAU7eo0JBO" alt=""><figcaption></figcaption></figure>

***

### Access and permissions

The Insights Dashboard is available to **Admins**, **Super Users**, and **Team Managers**. See [User accounts](/accounts-roles-and-permissions/user-accounts) for access setup and role details.

Grouping Insights pages (for job roles, teams, locations, etc.) are available to users with access to **all organization data**.

Each user sees only the data they have access to based on their role and permissions. If you believe you should have access to a page or chart that is not visible to you, contact your AG5 administrator.

***

### Frequently asked questions

**Why do my compliance charts show no data?** Skills compliance is based on *required* skills. If your organization has not defined skill requirements, compliance charts will not display data. Check [Skill requirements](/skills/skill-requirements) to set up the required skills behind these charts.

**Why can I see some teams but not others in the Grouping pages?** You only see data for teams and employees within your access scope. Team managers see the teams they manage. If you need access to additional data, ask your AG5 administrator to adjust your permissions.

**Can I export the data from Insights?** Yes. The data table on the Overview page can be used to validate figures, and data can be exported using AG5's standard export tools. For advanced reporting, see [Exporting data](/data-management/exporting-data) or [Advanced analytics (API)](/data-management/advanced-analytics-api).

***

### Related articles

* [Insights metrics explained](/insights/insights-dashboard/insights-metrics-explained)
* [Skill requirements](/skills/skill-requirements)
* [Organizational structures](/employees/organizational-structures)
* [Skill planning](/skills/skill-planning)
* [Self-assessments](/employees/self-assessments)
* [Results approvals](/skills/skill-results/results-approvals)
* [Exporting data](/data-management/exporting-data)
* [Advanced analytics (API)](/data-management/advanced-analytics-api)
* [User accounts](/accounts-roles-and-permissions/user-accounts)


# Insights metrics explained

Latest update: July 29th, 2026

This article explains how each metric, card, and chart in the Insights Dashboard is calculated and what it means. It covers the **Overall Insights** page as well as the **Grouping Insights** pages (for job roles, teams, locations, etc.).

{% hint style="info" %}
Skills compliance is based on *required* skills only. If your organization has not defined skill requirements, most Insights charts will not display meaningful data.
{% endhint %}

***

### The three summary cards

At the top of the Overall Insights page, three summary cards give you a quick view of the state of your workforce's skills compliance.

<figure><img src="/files/W7SaJRWI4AzzyKl922d6" alt=""><figcaption></figcaption></figure>

#### Card: Compliance

<figure><img src="/files/6V3fUCuma810xNrynocc" alt=""><figcaption></figcaption></figure>

The **compliance percentage** is calculated by dividing the number of compliant skills by the total number of required skills across the selected scope (an individual, a matrix, or the entire workforce).

> **Compliance % = Compliant Skills ÷ Total Required Skills**

**Key points:**

* **Only required skills are included.** Achieved skills that are not required are excluded from the calculation.
* **Partial achievements are not counted.** If a skill requires Level 4 but only Level 2 is achieved, it is treated as unmet.
* **Soon-to-expire skills are included.** A skill that is valid at the moment of calculation counts as compliant, even if it is close to expiring. Note: in other parts of AG5 these are shown in orange as a warning, but in Insights they count as green (compliant).
* **Results are counted based on their issue date.** If a result is added after the fact but carries an earlier issue date (e.g., added on 1 July with an issue date of 15 June), it counts toward June compliance. This ensures the metric reflects when the qualification became valid, not when it was entered.
* **Active employees and skills during the selected period are included.** By default, the period covers the last 12 months, so all currently active employees and skills are included. When a matrix filter is applied, only employees and skills currently active in that matrix are shown.

**Example:**

|                                   | John    | Millie        |
| --------------------------------- | ------- | ------------- |
| Required skills                   | 6       | 40            |
| Compliant skills                  | 3       | 36            |
| Achieved but not required         | —       | 21 (excluded) |
| Achieved but below required level | —       | 5 (excluded)  |
| **Compliance %**                  | **50%** | **90%**       |

**Workforce-wide compliance** is calculated by summing all compliant skills across all individuals, then dividing by the total required skills across all individuals - not by averaging individual percentages.

> **Example:** (3 + 36) ÷ (6 + 40) = 39 ÷ 46 = **85%** *(Not: (50% + 90%) ÷ 2 = 70%)*

This approach gives a more accurate picture of actual workforce compliance.

{% hint style="info" %}
**Note:** "Minimum number of employees required" rules are not yet included in compliance calculations and will be addressed in a future release.

**Note:** If an employee needs the same skill for multiple reasons (e.g., for a job role and for a shift), that skill is counted only once in compliance calculations.
{% endhint %}

***

#### Card: Gaps

<figure><img src="/files/k7gLkD42JE8JQHA2iHUG" alt=""><figcaption></figcaption></figure>

The **gaps** count represents the total number of required skills that remain unmet across the selected scope.

> **Example:** If the workforce has 46 required skills and 39 are compliant, the gap count is **7**.

Note that gaps count individual unmet requirements, not unique skills. If 10 employees are each missing the same required skill, that counts as 10 gaps, not 1.

{% hint style="info" %}
As of March 2026, "gaps" replaces the earlier term "problems" throughout the Insights Dashboard (English only). The calculation is identical.
{% endhint %}

***

#### Card: Compliant results

<figure><img src="/files/QSBqf52tEzkx7A37gyql" alt=""><figcaption></figcaption></figure>

**Compliant results** are skill results that are both achieved and required for the employee's position, and fully meet the required level.

The following are **excluded** from this count:

* Expired skill results
* Skill results that do not meet the required level (e.g., Level 3 achieved when Level 4 is required)

***

### Trend indicators

Each of the three summary cards displays a trend indicator - a colored arrow showing how the metric has changed over the selected time period (from the first to the last day of the period).

| Indicator                                 | Meaning                                                                           |
| ----------------------------------------- | --------------------------------------------------------------------------------- |
| Green <mark style="color:green;">▲</mark> | Increase in a positive metric (e.g., higher compliance or more compliant results) |
| Green <mark style="color:green;">▼</mark> | Decrease in gaps - a positive trend                                               |
| Red <mark style="color:red;">▲</mark>     | Increase in gaps - requires attention                                             |
| Red <mark style="color:red;">▼</mark>     | Decrease in compliance or compliant results - requires attention                  |

By default, the time period is set to the last 12 months. You can change this using the time period filter at the top of the page.

**Note on the period filter:** The filter uses month-based selection only, using the first day of the selected month as the reference date. The only exception is when selecting the current month in the "Until" field, which will use today's date. Day-level selection is not supported, as data is aggregated monthly.

***

### Charts on the Overall Insights page

#### Chart: Alert list (compliance and gaps over time)

This chart shows the absolute number of **gaps** (red) and **compliant results** (green) over time - by default, the last 12 months. It gives you a clear picture of how your workforce's compliance has evolved.

Skills that are expiring soon appear in green in this chart, because from a compliance perspective they are still valid. In other parts of AG5, these are shown in orange as a warning.

<figure><img src="/files/U3DhcI6P3juIwqOPtCfM" alt=""><figcaption></figcaption></figure>

***

#### Chart: Compliance

This chart shows the **compliance percentage** over time, using the same calculation method as the compliance card. Each data point represents the compliance for that month, so you can see the trend across the selected period.

<figure><img src="/files/i5uoSvNNOdXX1evrb2eg" alt=""><figcaption></figcaption></figure>

***

#### Chart: Compliant results per skill

This chart displays the **top 10 skills** with the highest (or lowest) number of compliant results in the current dataset. Use the toggle arrow to switch between highest and lowest.

Clicking on a skill name takes you directly to that skill's detail page.

<figure><img src="/files/Xqaw5Jg1wB5RtEn8sQR2" alt=""><figcaption></figcaption></figure>

***

#### Chart: Gaps per skill

This chart displays the **top 10 skills** with the highest (or lowest) number of gaps - i.e., where required skills are most frequently unmet. Use the toggle arrow to switch between highest and lowest. This is useful for identifying where skills shortages are most critical across your workforce.

Clicking on a skill name takes you directly to that skill's detail page.

<figure><img src="/files/nYzPMCiUSvm6rceMS4KO" alt=""><figcaption></figcaption></figure>

***

#### Chart: Compliant results per employee

This chart displays the **top 10 employees** with the highest (or lowest) number of compliant results. Use the toggle arrow to switch between highest and lowest.

Clicking on an employee name takes you directly to their employee profile.

<figure><img src="/files/jR1Yuxxc1KyvCljD0DDa" alt=""><figcaption></figcaption></figure>

***

#### Chart: Gaps per employee

This chart displays the **top 10 employees** with the highest (or lowest) number of gaps. Use the toggle arrow to switch between highest and lowest. This highlights which employees require the most attention in terms of skills development.

Clicking on an employee name takes you directly to their employee profile.

<figure><img src="/files/ARq41eeH31YQLdSG3nUm" alt=""><figcaption></figcaption></figure>

***

### Grouping Insights pages (teams, job roles, locations, etc.)

Each grouping type in your organization has its own dedicated Insights page. The metrics shown on these pages use the same compliance and gap calculations described above, but scoped to each grouping.

**How to read grouping data:**

* Use the **filters** to focus on specific groupings or compare them side by side.
* Use the **time filter** to see how compliance has changed over a period for each grouping.
* **Hover over** a team or grouping name in any chart, list, or filter to see its full **organizational structure path** - showing exactly where it sits in your hierarchy. This is also visible in the data table.

This context is important when your organization has multiple groups with similar names, or when a team belongs to a larger department or location.

<figure><img src="/files/ETugBswCSgs4DUpdCYTk" alt=""><figcaption></figcaption></figure>

***

### Skill Development Insights page

The Skill Development Insights page tracks the process of closing gaps - from planning training through to recording a compliant result. It shows how many skill requirements are at each stage of the development pipeline.

The stages tracked are:

1. **Gap identified** - a required skill is missing or non-compliant
2. **Training planned** - a planning has been created for the employee
3. **Self-assessment requested** - a self-assessment request has been sent
4. **Awaiting approval** - a result has been submitted and is pending approval
5. **Result recorded** - a compliant result has been added

Use the matrix filter to scope this view to specific teams or managers.

<figure><img src="/files/lpXqiJFKBDFwOy2OR9Nh" alt=""><figcaption></figcaption></figure>

***

### Related articles

* [Insights Dashboard](https://docs.ag5.com/insights/insights-dashboard)
* [Skill requirements](https://docs.ag5.com/skills/skill-requirements)
* [Exporting data](https://docs.ag5.com/data-management/exporting-data)


# Master Data Management

Latest update: August 4th, 2026

### 1. What is master data management (MDM) in AG5?

In AG5 you can centrally create, edit, and delete your organizational master data. Additionally, you can control the quality of your master data with an approval process. This approval process allows you to collaborate and centrally maintain the master data while controlling the quality of your master data.&#x20;

Master data such as:&#x20;

* Skills
* Skill requirements
* Organization items such as Department & Job Roles

> With the master data approvals feature activated for your organization, any change in the master data will go through the approval process. For any change first, a so-called ‘Change request’ will be created. Only after approving the change request, the data will become visible and active in the system.

### 2. What is the purpose of master data management?&#x20;

The purpose is to ensure a higher quality of your organizational master data within your skills management across your whole organization.&#x20;

For example, large organizations experience consistency problems within their skills master data. And inconsistencies can lead to differences within the skills management across an organization.

### 3. Managing master data

**Who can change master data?**

The master data can be changed by users who already have the right to these changes. The only difference is that with this feature activated the master data changes need to be approved.

Users with the following rights are able to change master data:&#x20;

* Admin users
* Superuser edit rights
* Skill edit rights
* Grouping edit rights

When a change is made the user will see a message that the change needs approval.&#x20;

<figure><img src="https://cdn.elev.io/file/uploads/tfNHbase18C9irCYFEYUJIWBYNbJEZKpwfnSxeUHdUg/shF685tU6Dg9bh5FDF-loOhAPGx_exttNgO-sW4Hccg/111-B001-3Y4.png" alt=""><figcaption></figcaption></figure>

As long as the Change request is waiting for approval, it will be listed in the specific ‘change requests list’. Below you can see an example list. The purpose of this list is to see and understand the open changes to avoid duplicated change requests.&#x20;

![](https://cdn.elev.io/file/uploads/tfNHbase18C9irCYFEYUJIWBYNbJEZKpwfnSxeUHdUg/ImbYStMpD1lURQ14dzvLIS3gzootscc_mIsibtEOkj8/Screenshot2024-05-21at114040-ch4.png)

> In this list, you cannot approve the change requests, for that you have to go to the Control center (see below).

![](https://cdn.elev.io/file/uploads/tfNHbase18C9irCYFEYUJIWBYNbJEZKpwfnSxeUHdUg/fC3dc3Nzk69hZK2MPJEmv8h1dMyOKNvm90pgcyQyRXY/image%20\(12\)-_2E.png)

**Who can approve change requests?**

Approvals can be done by the admin or by the manager of the user who changed the master data.\
Additional policy settings can be added to allow admin users to make changes to the master data without an approval process.&#x20;

### 4. How to manage the master data?

As an admin, you can configure AG5 to the needs of the organization (the first setup). When any of the master data is changed in a later change then this needs to be approved by the admin or manager before it is visible and active.&#x20;

There are 3 types of changes:

* Newly created item (e.g. a skill)&#x20;
* Edited existing item&#x20;
* Deleted item

#### How to approve master data?

When master data is changed, this change will first be listed in the ‘Change requests’ with the status ‘waiting for approval’. After it is approved, it will become active and visible within the system.&#x20;

Below you can see in the Control center that there are change requests waiting for approval.&#x20;

![](https://cdn.elev.io/file/uploads/tfNHbase18C9irCYFEYUJIWBYNbJEZKpwfnSxeUHdUg/tCiOace05e5OULfwtV0HrRbM69nTLCeItSymBODyEYw/image%20\(16\)-gpI.png)

Below you can see the approval list and when selecting a change request you can see the details of the requested change.\
Approve or reject the changes, and click 'save' to confirm your choices.&#x20;

![](https://cdn.elev.io/file/uploads/tfNHbase18C9irCYFEYUJIWBYNbJEZKpwfnSxeUHdUg/UYi55RS5Fevtsz6M5lGAyo820QCe9PsOtTUJ-kGjBYU/image%20\(17\)-Tc8.png)

<br>


# History of changes

Latest update: August 4th, 2026

### Overall history:

In the Organization tab, under Account management & History, AG5 users with admin permissions can find a full list of changes made in their AG5 environment.&#x20;

The list offers the ability to look at all previous changes, helping you find a cause should your data appear incorrect or incomplete. We advise new users in AG5 to keep an eye on this list until all AG5 users are familiar and comfortable with our software.&#x20;

The Overall History shows the time-stamped change that was made, along with the user who enacted the change. Hyperlinks will take you to the relevant page (e.g. clicking on **David Beek - Type of proof: Security Certificate** will take you to David’s **Security Certificate** result details page).

![](https://cdn.elev.io/file/uploads/_huQ39b35a0jqpQRPuwt1yehgwmke6NWJHCPUAsVhiA/UNrJwsk4yct7YMbHW7REcDoZGtjUf3h_YN9PVy4jvGA/Group%20148069-L-k.png)

You can also filter this list based on date, user that has created the change, and the action made to easily find the information you are looking for.&#x20;

### Specific history:

Throughout AG5, on pages such as skill, employee, or grouping, you can find a tab that will show a list of related changes.

![](https://cdn.elev.io/file/uploads/_huQ39b35a0jqpQRPuwt1yehgwmke6NWJHCPUAsVhiA/MxXpu7zVGItrg_OxZEgn78QgGklw-hmtzLl8j7MQL9I/Group%20148071-VZM.png)

This makes it easy to find specific changes relating to one item, as they are always found in the same place within the aforementioned pages.&#x20;

> The semantics of the history pages are continuously improved. Through the course of time, you will see more accurate information about the system changes users made.&#x20;


# Exporting data

Latest update: August 4th, 2026

It's possible to freely export your data from AG5 in many places, which can be useful for building your own reports.

Data is exported in the .xlsx Excel format unless your report has over 100K items, in which case it will be in the .csv format.&#x20;

> Admin, super user or matrix access user accounts are required in order to be able to initiate exports.

Exports are possible from any page that has the 'Export' icon:

![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/JAB2vX2HsGM9XGIOxXWiEfoSPBS17Y0g7kGyzWU9XDw/1723624242478-E-w.png)

The 'Export' icon is dynamic, and will only appear in the top right corner of the following pages once data is present:

* Employees, skills, skill results, skill plannings, skill revocations, skill exemptions, skill requirements, personal requirements, prerequisite rules, the alert list, self assessment requests, skill result approvals, positions, groupings.

Clicking 'Export' will export predefined fields.&#x20;

You may also conduct a **custom export** by clicking the 3 dots next to 'Export'. This allows for the individual selection of data fields. Take this example from the Alert list:\ <br>

![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/QDC9XnTZYIkQ6lXVqbwOLW1Nyv2XZIC0MsVhCrqLigk/customexport-qq8.gif)

Exports from the alert list will generally download immediately, but it may end up taking longer if there is a lot of data.

When this is the case, you can find your export in the "Export history" once it is complete (*Organization* > *Account management & History* > *Export history*). All exports from the alert list also live here for a time.\ <br>

![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/2BusymgB2npg0JhWnSWNGjIHb_Y4o0-ZdH07u-xkqfM/exporthistory-wk8.gif)\ <br>

> Did your export not contain all the fields you were looking for? Try it again with the custom export, and make sure to check the required fields.

Questions? Please contact your customer success manager or <support@ag5.com>.


# Advanced analytics (API)

Latest update: August 4th, 2026

> **Please note that this API is deprecated and no longer available for new connections. Please see our page on our new** [**AG5 API.**](/ag5-api)

The Advanced Analytics API is an AG5 service that enables your data from AG5 to be used in Data Analytics or Data Visualization tools. The provided data comes from the AG5 DataLake, is derived from the data stored in the AG5 system, and selected with the purpose of delivering additional insights. The benefit of this solution is that it allows you to utilize the skills insights in your other analyses.&#x20;

The Advanced Analytics API can be used to acquire the following information:

* Grouping Compliance - Analyze compliance on an aggregate level in your organization.
* Employee - Skill Compliance - A daily export of the full Alert list to analyze your data on an Employee - Skill level and use your custom filters and aggregations.&#x20;
* Statistics - Daily stored basic statistics about your AG5 data.
* Entities - Detailed information about Skills, Groupings, reference data and more.
* Events - Entity Event data and SIEM Event data.

For more detailed information, see our [dedicated section](https://help.ag5.com/en/categories/33-advanced-analytics-api) in this knowledge base about the Advanced Analytics API.&#x20;

> The Advanced Analytics API requires knowledge of tools used for data preparation and data visualization. The Advanced Analytics API exposes your data stored in AG5 and we offer guidelines, but we do not offer consultancy on using different external data tools.


# Introduction - Advanced Analytics API

### Description <a href="#ispasted" id="ispasted"></a>

The Advanced Analytics API is an AG5 service that provides data to be used in Data Analytics or Data Visualization tools. The provided data comes from the AG5 DataLake, is derived from the data stored in the AG5 system, and selected with the purpose of delivering additional insights. &#x20;

### Elements

The key elements of AG5 Advanced Analytics are:

1. Data stored on Google Cloud Platform
   1. Compliance Computations
   2. Statistics
   3. Entities
   4. Events
2. Access methods
   1. REST API
   2. Google Cloud Service account
3. Data preparation (not provided by AG5)
4. Visualization (not provided by AG5)

All these elements will be detailed in the following articles.&#x20;

### Frequency

The Advanced Analytics data is calculated or refreshed at least daily.&#x20;

### Data Volumes <a href="#ispasted" id="ispasted"></a>

The Advanced Analytics can be connected to Visualization tools like Power BI.  However, these tools can be limited. In general the use of the Advanced Analytics API requires the data to be loaded into your own Data Warehouse or Data Lake via an ETL Pipeline, only small datasets with less than 1000 records (skills, employees, alerts) will probably not need an intermediate storage.

![](https://cdn.elev.io/file/uploads/BHkali-dQml-80XLBc9NJd4BopkPy00p-Or0M0yCck8/cpBGYRMNL7TcJ6fAxlbCx9KOX-7ric4qsOGPMhOXtnU/1727699218600-6K4.png)

<br>

### Security

Data security is crucial for any organization, and the Advanced Analytics data is bound to the same strict data protection methods as all other AG5 data.&#x20;

The data is securely stored in Google BigQuery (hosted in Europe).  When providing a customer with access to Advanced Analytics data, AG5 will carefully inform about which data elements will be exposed.&#x20;

It is the customer’s responsibility to to set up data governance around the use of the provided data within their organization.


# Data - Advanced Analytics API

In this article, we will give a  general explanation of the different data elements available through the Advanced Analytics API.

### Compliance Computations

Compliance computations are the core of the Advanced Analytics data. They will allow you to analyze the compliance on an aggregate or detailed level in your organization. The compliance score is a percentage indicating how many of the required qualifications / skills are compliant. For example if 6 qualifications are required, but for only 2 of them people have actually demonstrated that they are skilled enough, the compliance score is 30%.&#x20;

Advanced Analytics daily calculates and stores compliance on two levels :

* For each AG5 grouping (role, department etc).&#x20;
* For every Employee-Qualification combination&#x20;

For more details on the different types of compliance calculations, please refer to the article about compliance calculations.&#x20;

Note: the compliance calculations are stored in the DataLake as Events (see below)

### Statistics

Advanced Analytics stores some basic statistics about your AG5 data. For example the number of Results (Achievements) and number of Employees. These statistics are produced every day and therefore can show you trends over time.&#x20;

Note: the statistics calculations are stored in the DataLake as Events (see below)

### Entities

The Advanced Analytics Entity data contains detailed information about for example: Qualifications, Groupings, and reference data. This data serves mostly to support the analysis of the Compliance Calculations.

### Events

There are three types of Event data available: Computation Event data, Entity Event data and SIEM Event data

The Computation Event data are the Compliance Calculations and Statistics as mentioned above.

Entity Event data contains all the changes in the Entities (create, update, delete). If, for performance reasons, Advanced Analytics users do not want to load all the entities every day, they can use these events to update the entities in their local storage.

SIEM (Security Information and Event Management) Event data contains a multitude of security related events. Like Login, Token renewal, Password reset, SSO, Application Errors etc.. For more info about SIEM events, please contact AG5 (<support@ag5.com>).

### **Data Relationships**

The data has relationships which are modeled in the diagrams below.

Entity relationships:

<img src="https://cdn.elev.io/file/uploads/BHkali-dQml-80XLBc9NJd4BopkPy00p-Or0M0yCck8/BghWL4hONjQ3j_B09h2bQYKPjt82pIPBqnxY36G1mY4/1712583150651-BGI.png" alt="" height="500" width="603">

GroupingCompliance (Event) and Grouping (Entity) relationship:![](https://cdn.elev.io/file/uploads/BHkali-dQml-80XLBc9NJd4BopkPy00p-Or0M0yCck8/4UlMtf0SmolkJWlHUM4foxuOCNvITyGn_XWCC2L0JRE/1712583150521-n5w.png)

EmploymentQualificationCompliance (Event) and Employment, Position and Qualification (Entities) relationship.![](https://cdn.elev.io/file/uploads/BHkali-dQml-80XLBc9NJd4BopkPy00p-Or0M0yCck8/btpGcnUylmTLKMPF0hPTsFDr9lQBY0Hdd8KlvGbCHhw/1712583150677-IbI.png)

For examples on how to use these relationships to create KPIs or Dashboards, see the [article](https://help.ag5.com/articles/95-example-kpis-and-dashboards-advanced-analytics-api) about Example KPIs and Dashboards.


# Connection and Configuration - Advanced Analytics API

We propose a REST API connection to the Advanced Analytics Data.

### REST API

The API is documented here: [OpenAPI](https://petstore.swagger.io/?url=https%3A%2F%2Fapi-datalake.ag5.io%2Fopenapi.json#/). Organizations will need an API token to get access to their data. This token can be requested via your Customer Success Manager. The API operations require bearer authentication (also called token authentication) which is an [HTTP authentication scheme](https://developer.mozilla.org/en-US/docs/Web/HTTP/Authentication) that involves security tokens called bearer tokens.&#x20;

Some of the parameters used in the API are explained here:

| Parameter          | Description                                                                                                                                                                                                               |
| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| organization\_name | <p>Can be retrieved from the url of your AG5 environment. </p><p><https://matrix.ag5.com/><strong>myorganization</strong>/main</p>                                                                                        |
| repository\_name   | <p>Can be retrieved from the url of your AG5 environment. </p><p><https://matrix.ag5.com/myorganization/><strong>main</strong></p>                                                                                        |
| page\_token        | Used for pagination. Is returned in the response header (key = x-ag5-pagetoken)                                                                                                                                           |
| page\_size         | Maximum number of records to return.                                                                                                                                                                                      |
| reference\_time    | For most events, this is treated as a ‘since’ and returns all records **after** this reference time. For EmploymentQualificationCompliance, only the events stored on the Day (Date) of the reference\_time are returned. |

The request header:

| Key             | Value                        |
| --------------- | ---------------------------- |
| Authorization   | Bearer \<the provided token> |
| Accept          | (optional) ‘text/csv’        |
| Accept-Encoding | (optional) ‘gzip’            |

The responses can be retrieved in JSON or CSV format. JSON is default, CSV can be obtained by including the Accept header.&#x20;

The API is again split up into Entities and Events. Note: the compliance calculations and the repository statistics can both be accessed via the Events endpoints.&#x20;

For Entities, we advise you to start with the request to retrieve the entity-types:

```
/organizations/{organization_name}/repositories/{repository_name}/ entity-types. 
```

These entity types are required as a parameter in many of the other requests. Don’t forget to use the full name in your request:

```
seaspray.v<number>.<EntityType> 
```

For Events, we advise you to start with the request to retrieve the event-types.

```
/organizations/{organization_name}/repositories/{repository_name}/ event-types. 
```

Each event has both a type and a subject. But only for SIEM events a type can have multiple subjects. To illustrate this, the Compliance event has only one type:&#x20;

```
seaspray.v1.GroupingCompliance
```

and one subject:&#x20;

```
compliance_computation
```

Therefore the events can be retrieved by only referring to the event\_type.&#x20;

The SIEM events have one type but can have different subjects. For Siem events it is therefore advised to use both the event\_type and event\_subject to retrieve the events.&#x20;

**reference\_time**

By default, the events that were created after 00:00 am today (European standard time) are returned. The parameter reference\_time can be used to specify the time in milliseconds since Jan 1, 1970 (Epoch or Unix timestamp) of the oldest event returned. &#x20;

*GroupingCompliance* calculations are performed during the night. This could be before or after midnight. This may mean that a request without reference\_time will return no events (because the last compliance calculation was done before 00:00 am today). Therefore we advise to use the reference\_time parameter and make sure you retrieve the events of the last 24 hours. &#x20;

For almost all Events, the events **after** the reference\_time are returned, except for *EmploymentQualificationCompliance* events, for which only the events of one day (the date of the reference\_time) are returned.

**page\_token**

The returned entities and events are usually split into different pages based on the page\_size. The page\_token, to request the next page is returned in the response header.&#x20;

> Note, this response header is not visible in the [OpenAPI](https://petstore.swagger.io/?url=https%3A%2F%2Fapi-datalake.ag5.io%2Fopenapi.json#/) - try it out functionality. If you use
>
> ```
> CURL --verbose 
> ```
>
> to call the endpoint in a terminal for example, the header will be visible.&#x20;

### <br>


# Compliance calculations - Advanced Analytics API

The compliance score is calculated by dividing the number of compliant qualifications by the number of required qualifications.&#x20;

A qualification is compliant when an employee needs to achieve that qualification on a certain level and the employee has achieved the qualification on that level or higher.&#x20;

### **Compliance per Grouping**

AG5 Advanced Analytics (version April 2023) introduced the compliance per **grouping**.

A grouping can be a role, a department etc. All groupings in an AG5 repository (environment) can be found under Organization > Groupings.&#x20;

Generally the Compliance grouping score is calculated by following these steps:

1. Determine the number of required calculations per position in that grouping
2. Do this for all the positions in that grouping: the sum is the total number of required qualifications.
3. Determine the number of compliant qualifications per position in the grouping (has the employee achieved the required qualification at the required level)
4. Do this for all the positions in that grouping: the sum is the total number of required qualifications.
5. Divide the number of compliant qualifications by the number of required qualifications.

Note: An employee can have one or more positions. Therefore, requirements apply to positions, not to employees. However, a result / achievement is recorded per employee.&#x20;

**Types of Grouping Compliance**

For each grouping, in the GroupingCompliance event, 4 types of compliance scores are calculated. They differ in scope of the required qualifications.

***Positional grouping compliance***

Tracks the compliance of the positions in a grouping by taking ALL requirements attached to each position into account, including the personal requirements.&#x20;

Example:

The positional compliance for a team is calculated based on all requirements for the people in that team. This will include the requirements specific for that team, but also the requirements for any other tag in their position (for example, their role or that they are part of another team as well).

![](https://lh7-us.googleusercontent.com/_K2GZu6WgvY651WOW-BG1sHZXjro4o0_xI6vfH2ptJupmgnxi7SPpW128Ki3Zy9v_64fQuqUu94XDRwSjnKOV0OXSBt3TBRVKb5VKUwYjIWabHEtX1gQlMY7JiZyyJ4jHNCTf0BwxLi52Jk5mT0HJkA)<br>

For each position, all requirements (for all their position tags and the personal requirements) are counted.&#x20;

***Isolated and contextual grouping compliance***

Only tracks the requirements specific to this grouping. It checks for each position in that grouping how they score on the requirements defined for that grouping.&#x20;

The isolated compliance uses the requirements with one tag (qualification is required for positions with that tag) and the inherited requirements (requirements defined on a parent grouping). If the grouping is tagged with another grouping, the requirements for the tagged grouping are also counted in the isolated compliance. The contextual compliance looks, in addition to the aforementioned requirements, also at the requirements with multiple tags (the qualification is required for positions with all tags defined in the requirement rule) .&#x20;

Example:

Four qualifications are required for positions with Role A. One other qualification is only required for positions with Role A and Role B. The Isolated compliance is calculated based on the four first qualifications. The contextual compliance is calculated for all five qualifications.

<br>

<img src="https://cdn.elev.io/file/uploads/BHkali-dQml-80XLBc9NJd4BopkPy00p-Or0M0yCck8/TPHTIff_4Ft1KHSyYJfGXSs7Kb3HrLP9pg4r7_67t1g/1712645686858-Lx4.png" alt="" height="363" width="489">

The isolated compliance will not take Machine lines know-how into account. The contextual compliance will. This requirement applies to David Jonker since he is both Production - Jr Spec and Logistics - Jr Spec

***Count rule grouping compliance***

Tracks the compliance defined by the ‘count rules’ which apply to this grouping. It checks for each rule whether the minimal required number of employees who satisfy the score is achieved.&#x20;

Example:

The organization has defined for a Team that at least 4 positions should know Qualification X on level 2. The calculation counts how many employees in the team have achieved Qualification X on level 2. If it is more than 4, the team is compliant with that rule. The same calculation applies to all other count rules that are defined for the team.&#x20;

<img src="https://cdn.elev.io/file/uploads/BHkali-dQml-80XLBc9NJd4BopkPy00p-Or0M0yCck8/T5B2vwhUZyJQs1wMR7cnhCefltsTNkfc37xB4DNR4zU/1712645686887-WZg.png" alt="" height="684" width="432">

***Partial compliance***

For each type of calculation described before, both the score and the partial score are available. The score looks at full compliance as described above. The partial score also takes into account if the required level is not fully achieved, but partially.

Example&#x20;

When a qualification is required on level 4, but only achieved on level 3, the partial compliance score counts a 75% compliance for that qualification for that employee.&#x20;

### Compliance for Employee-Qualification combination (Alert list)

In December 2023, we introduced the Employee-Qualification compliance. This compliance is known as the Alert list within the AG5 product itself. Everyday the following information is stored in the DataLake (and retrievable through the Advanced Analytics API):

| Field              | Explanation                                                                                                                                                                                                             |
| ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| reference\_date    | date of export                                                                                                                                                                                                          |
| employment\_id     | reference to the Employment entity table                                                                                                                                                                                |
| qualification\_id  | reference to the Qualification entity table                                                                                                                                                                             |
| required\_level    | level on which the qualification is required for this employee. If the required qualification does not have levels, the required level will be 1.                                                                       |
| achieved\_level    | level on which the qualification is achieved for this employee (which level was recorded in the result). If the achieved qualification does not have levels, the achieved\_level (if there is a valid result) will be 1 |
| achieved\_date     | date of the last result                                                                                                                                                                                                 |
| expiration\_date   | expiration date of the last result                                                                                                                                                                                      |
| compliance\_status | a string with the status (see list below)\*                                                                                                                                                                             |
| compliance\_score  | a number between 0 and 1 to show the compliance percentage\*\* 0 meaning: not compliant and 1 meaning: compliant.                                                                                                       |

\* compliance\_status: expired, revokedRequired, failed, levelTooLow, required, expiresSoon, expiresSoonNotRequired, levelTooLowSoon, requiredSoon, allFine, revokedNotRequired, failedNotRequired, fineNotRequired. Please note that we have excluded the NoScoreNotRequired status. This status is present in the Alert list but has no meaning when looking at compliance. The events with a planning are included. (Suppress plannings = false)

\*\* compliance\_score: default, the compliance\_score is the achieved\_level divided by the required\_level, with a maximum score of 1. If the qualification is not required but it is achieved, the compliance\_score is 1. If the qualification is not required and it is not achieved, the compliance\_score is 0.

> Important Note: The compliance\_status and the compliance\_score can be used to calculate an average compliance\_score. We have included examples in the following [article](https://help.ag5.com/articles/95-example-kpis-and-dashboards-advanced-analytics-api) . Remember that the events with ‘levelTooLow’ will have a score between 0 and 1. If you don’t want the calculated average score to include this ‘***partial compliance***’, you must count them as a 0 instead of their actual score.


# Example KPIs and Dashboards - Advanced Analytics API

This article gives some example KPIs and dashboards that can be calculated /created with the Advanced Analytics API.&#x20;

### KPIs

**Number of results**

Meaning:  How many results are added into the system in total (is also used to calculate the AG5 subscription fee)

Method: Sum the total amount of records in the Achievement table

Application: As a Scorecard (one number) or as aTime series chart (evolution over time)

**Repository compliance**

Meaning: How compliant is the whole workforce in the repository.

Method: There are many different ways to calculate this average, but we suggest to use EmploymentQualificationCompliance where you calculate the Average compliance\_score for the records with one of the following values in compliance\_status:&#x20;

```
'allFine', 'expiresSoon', 'levelTooLowSoon', 'expired', 'revokedRequired', 'failed', 'levelTooLow', 'required'
```

> Please note that we do not include the statuses where the Qualification is not required. Also see the important note about ‘partial compliance’ at the end of the [article](https://help.ag5.com/articles/93-compliance-calculations-advanced-analytics-api) about compliance calculations. And finally, be aware that this calculation does not include the count-rules.

Application: As a Scorecard (one number) or as a Time series chart (evolution over time)

**Number of accounts**

Meaning: How many people have access to AG5? Which could be an indicator for the progress in the roll-out of the AG5 application.

Method: The RepositoryStatistics Event stores the field accounts\_count every day&#x20;

Application: As a Scorecard (one number) or as a Time series chart (evolution over time)

***

### Dashboards

**Alert list as chart(s)**

Meaning:  The Alert list in the AG5 product shows the status of the Employee-Qualification Compliance in three colors: Green (Fine), Orange (Warning), Red (Problem). These statuses and their colors can be represented as a chart which will give a visual representation of the compliance status of the repository.&#x20;

Method:&#x20;

The EmploymentQualificationCompliance Events table stores the Alert list data for each date.

* Group the Compliance events of a date by their ‘Color’&#x20;

<br>

| compliance\_status                                                                       | color  |
| ---------------------------------------------------------------------------------------- | ------ |
| <p>'allFine', 'revokedNotRequired', </p><p>'failedNotRequired', 'validNotRequired' </p>  | Green  |
| <p>'expired', 'revokedRequired', </p><p>'failed', 'levelTooLow', 'required'</p>          | Red    |
| <p>'expiresSoon', ‘expiresSoonNotRequired’, </p><p>'levelTooLowSoon', 'requiredSoon'</p> | Orange |

* Display the count per color

> Note: you can decide to exclude the scores for the qualifications that are ‘NotRequired’, but this depends on your Skills Management Strategy.

Application:&#x20;

As a Pie chart (for a specific date) or as a Time series chart (evolution over time)

#### ![](https://cdn.elev.io/file/uploads/BHkali-dQml-80XLBc9NJd4BopkPy00p-Or0M0yCck8/y4wHgP7_SQ3ch8awtAwnAbJHgQQjeOIeuwKl9E3WczQ/1712647553361-wPw.png)![](https://cdn.elev.io/file/uploads/BHkali-dQml-80XLBc9NJd4BopkPy00p-Or0M0yCck8/txoqs-0ExLBwdew5JFsX-PHbAdQpDevL8LuZKfrAV5E/1712647553339-xdo.png)

***

<br>

**Compare compliance between departments**

Meaning: See how departments compare in their compliance score and which departments can learn from each other.&#x20;

Method:

The GroupingCompliance Event has different compliance score calculations (see the [article](https://help.ag5.com/articles/93-compliance-calculations-advanced-analytics-api) about compliance calculations).&#x20;

To compare some specific departments:&#x20;

* First find their id in the Grouping Entity table.
* Then filter the GroupingCompliance Events on those grouping\_ids
* Display the preferred compliance\_score (Isolated compliance, Contextual compliance, Positional compliance or Count rule compliance)

To compare all departments:

* First find the id for ‘Department’ in the GroupingType Entity table.
* Then filter the GroupingCompliance Events on the  grouping\_ids with that grouping\_type\_id
* Display the preferred compliance\_score (Isolated compliance, Contextual compliance, Positional compliance or Count rule compliance)

> Note: you will need to filter out the GroupingCompliance Events where the num\_required is zero in order to keep the groupings with no requirements from influencing the average.

Application:&#x20;

As a Pie chart or Bar chart (both for a specific date) or as a Time series chart (evolution over time)

<img src="https://cdn.elev.io/file/uploads/BHkali-dQml-80XLBc9NJd4BopkPy00p-Or0M0yCck8/CkUMcpcudt-7g4Ua7MqnSVABOuQl2v41CFkv1TAJD8E/1712647553386-E2o.png" alt="" height="219" width="428">

<img src="https://cdn.elev.io/file/uploads/BHkali-dQml-80XLBc9NJd4BopkPy00p-Or0M0yCck8/zYE-7sIqQNvckx5DmhPKCSWtbOlq0JxFuuTwge8k8ts/1712647553319-FWg.png" alt="" height="190" width="376.14543948896244">

***

<br>

**Compare compliance between locations**

Meaning:&#x20;

Compare locations on their compliance scores and identify which locations can learn from each other.&#x20;

Method:

The GroupingCompliance Event has different compliance score calculations (see the [article](https://help.ag5.com/articles/93-compliance-calculations-advanced-analytics-api) about Compliance Calculations). In this example, we assume that every location consists of multiple sub-groupings (departments, teams etc).&#x20;

To compare some specific locations:&#x20;

* First find their id in the Grouping Entity table.
* Create a hierarchy by using the parent\_id in the Grouping Entity table.
* Collect the ids of the subgroupings for each location from the Grouping Entity table.
* Compute the average of the preferred compliance\_score in the  GroupingCompliance Events table for the subgrouping’s grouping\_ids
* Display the aggregated compliance\_score (Isolated compliance, Contextual compliance, Positional compliance or Count rule compliance).

> Note: you will need to filter out the GroupingCompliance Events where the num\_required is zero to keep the groupings with no requirements from influencing the average.

Alternative way Use the EmploymentQualificationCompliance Events

* If necessary, transform the Position Entity table, so that the grouping\_ids column is unpivoted. This means that if a position has multiple tagged groupings, a row is created for each grouping\_id with the general Position fields (like employment\_id).&#x20;
* Join the EmployeeQualificationCompliance Events table with the Employment Entity table which in its turn is joined with the Position Entity table.
* Filter the EmployeeQualificationCompliance Events with the Position grouping\_ids that correspond with the needed Locations (a hierarchy like in the previous example might be needed) and aggregate (average) the complance\_score

> Note: you will need to filter out the EmploymentQualificationCompliance events where the required\_score is zero in order to keep the situations where a qualification is not required for the employee from influencing the average.

Application:&#x20;

As a Pie chart or Bar chart (both for a specific date) or as a Time series chart (evolution over time). (for pictures, see previous example)

***

<br>

**Show the qualifications with the biggest gap**

Meaning:&#x20;

Get the top 10 qualifications with the biggest gap (lowest compliance). For this the Qualification Compliance needs to be calculated

Method:

* Join the EmployeeQualificationCompliance Events table with the Qualifications Entity table.
* Calculate the average compliance\_score for all Events on a certain date for each Qualification : The Qualification Compliance.
* Make sure you filter out the events where the required\_level is zero before calculating the average
* Sort the average compliance\_scores from lowest to highest. Or calculate the Gap as (1 - compliance\_score) and sort from highest to lowest. Display the top 10.

Application:&#x20;

As a Bar chart or table.

<img src="https://cdn.elev.io/file/uploads/BHkali-dQml-80XLBc9NJd4BopkPy00p-Or0M0yCck8/ocq8c9Uq7tF348kqdzi1bihbzpoJNIaM5ag3KZOPqxo/1712647553188-D-8.png" alt="" height="182" width="328">

<br>

<img src="https://cdn.elev.io/file/uploads/BHkali-dQml-80XLBc9NJd4BopkPy00p-Or0M0yCck8/EQLFv-D12W9rzSlsnUtqDKbm6zPe3N_4sUjJytLjPY4/1712647553301-RgQ.png" alt="" height="160" width="293">

***

<br>

**Show the best performing Employees**

Meaning:&#x20;

Get a top 10 of Employees with the biggest gap (highest compliance). For this the Employee Compliance needs to be calculated

Method:

* Join the EmployeeQualificationCompliance Events table with the Qualifications Entity table.
* Calculate the average compliance\_score for all Events on a certain date for each Employment: The Employee Compliance.&#x20;
* Make sure you filter out the events where the required\_level is zero before calculating the average
* Sort the average compliance\_scores from highest to lowest. Display the top 10.

Application:&#x20;

As a Bar chart or table. (for pictures, see previous example)

<br>


# Data preparation and Visualization - Advanced Analytics API

Users of AG5 Advanced Analytics API are free to use any tool available to analyze the data.&#x20;

Data preparation tools should provide the following functionalities: &#x20;

* Extract and Process JSON data (or for some cases: CSV format)
* Create Parent-Child hierarchies (to aggregate data)
* Detect and change data types
* And more...

Data visualization tools would usually provide the following functionality:

* Create relationships between tables (the data is based on a relational database model)
* Different visualizations and filters
* Option to drill down into hierarchical data.
* And more...

In this article we go into a bit more detail about the use of Microsoft Power BI (in combination with Power Query). We also list some other tools. AG5 Advanced analytics does not include consultancy on the use of these different tools. We do, of course, help you to understand the data structure.

### Power Query and Power BI

Connecting to the Data source

**REST API**

> Note: it is possible to connect the API to Power BI directly. However, because of the large number of records, and the inability of Power BI to deal with pagination (see below), we recommend to ingest the API data into your local data storage first.

The direct connection method can be useful for small volumes of data, or for exploration and is described below:

* Choose the option 'Web' followed by 'Advanced' ![](https://cdn.elev.io/file/uploads/BHkali-dQml-80XLBc9NJd4BopkPy00p-Or0M0yCck8/IrFy4x9p6yY69Yr11fmZ74t3K2kd5FtoE4ceZRokEEg/1712645082674-m1c.png)
* Add the url with the correct parts (parameters) (see [OpenAPI](https://petstore.swagger.io/?url=https%3A%2F%2Fapi-datalake.ag5.io%2Fopenapi.json#/))
* Add the following to the request header:
  * Authorization: Bearer \<The provided token>
  * Accept: text/csv (optional).
* The Entity requests work with pagination. The response header returns info for the pagination. Since Power BI does not give access to the response headers, we advise to use the ‘Accept: text/csv’ request header. The csv option gives the full data set, without pagination.
* After adding the correct URL parts and Header parameters, in the next Window, select ‘Anonymous’ as authentication method to access the Web Content.

**Data preparation with Power Query**

Depending on the connection method, you will need to do some data preparation. Some common actions to take:

* Fields that contain JSON data will need to be parsed and then expanded.
* Date fields are usually records with day, month, year and will need to be expanded and then merged to create a valid date type field.&#x20;
* Fields that contain a time period will need to be expanded.&#x20;
* Some fields (like in the Grouping table: ui\_name\_json) contain localized data (a different name for each language). These are stored in JSON so they need to be parsed and expanded.&#x20;
* Create parent-child hierarchies (for example for grouping and parent grouping). The following [article ](https://www.daxpatterns.com/parent-child-hierarchies/)details the creation of these hierarchies.

**\`Other tools**

Other tools you can use for data preparation and or visualization are:

* Tableau Prep and Tableau
* Google Looker Studio: Visualizations only
* Alteryx Trifacta
* Microsoft Excel (with Power Query): Data preparation only


# Terminology - Advanced Analytics API

There are some differences in the terminology used in the API and the AG5 User Interface. The table below provides the mapping.&#x20;

| Advanced Analytics                   | AG5 User Interface        |
| ------------------------------------ | ------------------------- |
| Achievement                          | Result                    |
| Employment                           | Employee                  |
| Measurement System                   | Rating Scale              |
| Measurement Value                    | Level in Rating scale     |
| Qualification                        | Skill                     |
| QualificationGrouping                | Category (in the Library) |
| allFine (compliance\_status)         | Valid                     |
| fineNotRequired (compliance\_status) | Valid not required        |

<br>


# Localization

Latest update: August 4th, 2026

The localization feature enables you to translate your skills and groupings into different languages. Once enabled, AG5 users in your environment will be shown translated information based on their selected language preference.&#x20;

To do so, email us at <support@ag5.com>, specifying the languages you would like included in your AG5. When specifying your languages, it is necessary to also specify your base language. The base language serves as the foundation for the system's skill management.&#x20;

The following information can be localized in languages already supported by AG5:

* Skill name
* Skill description&#x20;
* Grouping name
* Grouping description
* Rating scale level names

After the localization feature is enabled, you will see a new icon next to all translatable fields when editing skills, groupings and rating scales.

![](https://cdn.elev.io/file/uploads/tfNHbase18C9irCYFEYUJIWBYNbJEZKpwfnSxeUHdUg/5KGqljFgQsEBjqOM4vPwbq4IopR9MLRF7-8vhFQP-nA/local-qho.png)

Clicking on the icon will open a dialog you can use to specify translations per enabled language.

<img src="https://cdn.elev.io/file/uploads/_huQ39b35a0jqpQRPuwt1yehgwmke6NWJHCPUAsVhiA/-JAiGE2sfA3NA_ErmhhiMIuTAk_01aytsUW8q3Z3FUE/1687767525483-5qQ.png" alt="" height="340" width="598">

Skill translations can also be used for searching in the skill overview page.&#x20;

Above you can see that English is the base language and French, Dutch, German the additional languages.&#x20;

> Important note: The system does not have the functionality to automatically translate your content. The content needs to be manually translated by the user.


# Integrations

Latest update: August 4th, 2026

Integrations allow you to connect your existing software applications to your AG5 system and exchange information. This streamlines your workflow, reduces workload, and minimizes the risk of manual errors.

![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/CzZUsPwEIZzAIr0tLFGU3BfPML7p9ETg8OiwS6KYXUc/1714485776209-CQs.png)

#### Which software applications can be integrated with AG5?

AG5 often is and can be integrated with your Single sign-on identity provider (SSO), your Human Resource Management System (HRMS) and your Learning Management System (LMS). Integration with planning software is also possible.

#### Single sign-on (SSO) integration   <a href="#ispasted" id="ispasted"></a>

![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/PHEehXwRWtFryWHM-p1Xdi7Y8F-_vYIGWhHALR_LZk4/1714486027881-awc.png)

<br>

Single Sign-On (SSO) is an authentication and authorization method that enables users to access AG5 using their own identity provider, eliminating the need for multiple usernames and passwords. This simplifies login for employees, reducing security risks. AG5's SSO Integrations adhere to the SAML2 standard.

#### Human resource integration (HRMS/HRIS)  ![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/Agju44ObTPDeg3oTkfEU6ca0iQzFcznzGpa3VtOLVvg/1714485802140-Z2Q.png) <a href="#ispasted" id="ispasted"></a>

<br>

Integrating your HRMS or Human Resource Management System (also known as a Human Resources Information System or HRIS) with AG5 automates the synchronization of employee data.

The primary purpose of doing so is to ensure the accuracy of HR data within AG5, thereby eliminating the need for manual management of such data. This integration offers the advantage that when defining your organization's training requirements in AG5, you no longer have to manually handle:

* Employee turnover
* Employee absences
* Employee job and position changes

This provides managers and training experts with the reassurance that their HR data is always up to date.

Furthermore, AG5 offers the capability to maintain not only standard HR roles and structures but also operational roles and structures, ensuring the accuracy and completeness of your training requirements model.

This integration is typically configured through an API connection or sFTP upload.

What HRMS data can be synchronized with AG5?

* Basic employee information (first name, last name)
* Job information (HR role, contract type, contract dates, leave dates, manager)
* Organizational structure (department, function, legal structure, etc.)

#### Learning management system (LMS) integration <a href="#ispasted" id="ispasted"></a>

<br>

![](https://cdn.elev.io/file/uploads/qkYqiBYxwTDWm05HcTy6vL9-Bt6vpySUOK3cwcx7jPo/wEACNq_LlBYjgCgc_Pv5eccYqMSdewNOxagfOamE-uM/1714485913051-HMs.png)

The primary purpose of integrating an Learning Management System, or LMS, with AG5 is to ensure seamless access to organizational training, courses, and e-learning materials while defining training requirements. By centralizing these needs in AG5, alongside other operational structures managed by departments like operations, it streamlines the organization's training process.

AG5 then serves as the central hub for all training requirements, enhancing assignment capabilities. When training requirements align with HR and operational structures in AG5, employees are automatically assigned relevant training in the LMS, ensuring accurate allocation.

Data synchronized from the LMS to AG5 includes the following skills data:

* Training items
* E-learning
* Curricula
* Competencies

You can also configure the LMS integration to assign required training in your LMS. The assignment data that will be exchanged is:&#x20;

* Employee info
* Required training info

Additionally, the LMS integration can be configured to assign required training and exchange assignment data, including employee and training information.

Upon completion of training in the LMS, the following achieved training data can be synced back to AG5 through the same integration:

* Training item results
* E-learning completions
* Curricula status
* Competency achievements

LMS integrations with AG5 utilize an API or the LTI standard.

#### Integrating with a planning tool or another software application?

In addition to the common integrations mentioned above, AG5 can also integrate with other software, like planning tools.&#x20;

For example, for some organizations, incorporating employees' skills into work planning is crucial, especially as it concerns quality, health, environment, or regulatory requirements.

To streamline planning and minimize time and effort wastage, they integrate AG5 with their planning systems.&#x20;

This ensures access to employees' up-to-date skills data in their planning software, reducing human error when assessing employee skill sets during the planning process.

What planning data can be synchronized with AG5?&#x20;

* Employee information
* Skill information

#### Would you like to start integrating?

Feel free to contact us to discuss your integration needs beyond SSO, HR, and LMS integrations.

Do you want to integrate your existing software applications with AG5? Contact your Customer Success Manager or reach out to our support department. We'll discuss your objectives and customize any integration to meet your needs.

[Contact support](mailto:support@ag5.com)


# Glossary

Latest update: August 5th, 2026

**Employee**

An employee is a person whose skills you manage in AG5. This is usually someone who works for your organization, but it can also be an external person, such as a temporary worker, identified by their contract type.

**Grouping**

Groupings and grouping types are what make AG5 so flexible (and, admittedly, a little more complex). A grouping is a named group of employees and/or skill requirements: anything you want to assign requirements to, or report on, as a unit.

Groupings work as tags on a position. When you tag a position with a grouping, everyone in that position picks up the requirements that grouping carries.

Every grouping has a **grouping type**, which says what kind of group it is. The grouping is the specific group; the grouping type is its category. For example, "Team Leader" and "Operator" are two separate groupings that share the type Job role. "Packing" is a grouping of the type Department, and "Paper4" is a grouping of the type Production line.

Common grouping types are: Job role, Location, Org Unit, Team, Production line, Department, Project, Activity, and Task. Admin users can add or rename these to fit your organization's needs.

A position can be tagged with one or more groupings (see also Position).

**Position**

A position describes what an employee does in the organization: their job or responsibility.

An employee's position (or positions) is what lets AG5 work out two things: which skill requirements apply to that employee, and which skills matrices they belong in.

This runs on the same flexible system as groupings: a position is tagged with one or more groupings, and every grouping has a grouping type. Through those tags, the position inherits the requirements each grouping carries.

For example, John's position is tagged with two groupings: "Operator 1," a grouping of the type Job role, and "Packaging," a grouping of the type Department. So John picks up whatever requirements are attached to the Operator 1 and Packaging groupings.

**Potential Position**

A potential position is a position an employee is not officially assigned to yet, but that you want to track progress toward. It lets you see which skills they would still need before they could take it on.

These requirements show only on the employee's detail page, not anywhere else in AG5 (for example, not in the Alert list or a matrix).

**Personal Requirement**

A personal requirement is a requirement that only applies to one employee, as opposed to a Skill requirement which applies to all employees with a certain tag in their position.&#x20;

For example: only a handful of employees in your team/organization need to have a specific skill. They don't have a shared role or team or department to which we can link this requirement. Therefore, the requirement will be created as a personal requirement.&#x20;

Warning: it's always preferable to use a regular skill requirement where you link a requirement to a grouping (a tag in a position) instead of using a personal requirement where you link a skill to a specific employee. Personal requirements require a lot of maintenance and when the employee leaves the company, you will need to recreate the requirement.&#x20;

**Skill exemption**

A skill exemption excuses a specific employee from a skill requirement that would otherwise apply to them through their position. The requirement no longer counts for that person, so it will not show up as a gap for them.

For example: the requirement can be all Team leaders need to have skill *Leadership 101*. John is a Team leader, but for some reason, he's not required to have skill *Leadership 101*. In that case you will give John a skill exemption.&#x20;

**(Skill) Planning**

A planning is a lightweight record that an employee is expected to achieve a specific skill by a given deadline. It links an employee, a skill, and a deadline date.

It signals that no further action is needed for now: the skill is on track to be achieved before the deadline.

A planning is not always a scheduled training with a fixed time, room, and trainer. It can also mark that you are waiting on something like an official certification document. Either way, it shows the skill is in progress and a positive result is expected before the deadline.

Plannings can be paired with email alerts (see [Workflows](/automations/workflows)).

**Skill**

A skill is anything an employee can hold or be qualified in, and anything you want to track the current status of. It is whatever you measure to see the gap between the level someone needs and the level they have.

"Skill" is a deliberately broad term. It can cover certifications, on-the-job training, access passes for parts of a building or platform, physical requirements, workshops, courses, accreditations, sign-offs on conduct, soft skills, hard skills, and more.

Skills attach to employees as achievements (results), and to groupings such as job roles or departments as requirements.

**(Skill) Result**

A skill result records the score an employee achieved for a skill on a specific date. It is created whenever an employee is assessed, for example through an exam, an assessment, or training on the job.

**(Skill) Requirement**

A skill requirement sets which skill, and at what minimum level, someone needs in order to be qualified for a position.

It ties together three things: a skill, a minimum score for that skill, and one or more groupings (for example a job role and/or a department).

Example:

*A*ll employees with a position tagged with grouping *Jobrole: Team Leader* need to have skill *Leadership ABC* with minimum score *level 3 (Advanced)*.

**Rating scale**

Each skill has a specific rating scale that defines how the skill will be scored. For example: a certification is usually rated with a nominal scale (achieved, not achieved), but a training on the job can be rated with e.g. a 3 level scale (Basic, Advanced, Expert)

**Skills matrix**

A skills matrix is a grid that shows employees against skills. Each cell shows whether an employee holds a skill and at which level, compared to the level required for their position. Matrices make it easy to see at a glance who is qualified for what and where gaps exist. In AG5 you build and view matrices from the Matrices section.

**Gap**

A gap is a required skill that an employee is missing or does not yet hold at the required level. Gaps show where action is needed, such as planning training or recording a new result. This term replaced the earlier term 'Problem' in AG5 as of March 2026.

**Compliance**

Compliance measures how well employees meet their required skills. An employee is compliant for a skill when they hold it at or above the required level. Compliance % is the share of required skills, for an employee or across the workforce, that are currently met. A required skill that is not met counts as a gap.

**Expiration and validity**

Some skills are valid only for a set period. A skill can have a validity period, after which the achieved result expires and must be renewed through a new assessment or training. A warning period flags skills that are approaching their expiration date, so they can be renewed before they lapse. An expired required skill becomes a gap.

**Skill revocation**

Revoking a skill records that an employee's achieved skill is no longer valid, for example when a certification is withdrawn or an authorization is removed. The skill stops counting as achieved, and if it was required, it becomes a gap. Unlike expiration, a revocation is a manual withdrawal rather than a time-based lapse.


# Skills duplicate detection

### **1. What is AI Skill duplicate detection?**

The **AI Duplicate Detection** feature helps you clean and standardize your skills database by identifying potential duplicate skills.

Over time, skills libraries can grow inconsistent due to:

* Slight spelling differences
* Different naming conventions
* Abbreviations vs. full names
* Similar skills created by different teams

This AI-powered tool scans your skills database and groups potential duplicates into clusters so you can review and resolve them efficiently.

### **2. What is the purpose of a duplicate detection?** <a href="#h_ba9f231322" id="h_ba9f231322"></a>

AI duplicate detection helps you maintain a single, consistent source of truth and ensures:

* accurate reporting
* clear workforce insights
* reliable compliance tracking
* reduced administrative clutter

### **3. How to use the AI Skill duplicate detection?** <a href="#h_9c88230f8e" id="h_9c88230f8e"></a>

To access the AI duplicate detection feature

1. Open your **Profile flyout**
2. Click the **AI Assistant** button
3. You’ll be redirected to the AI duplicate detection page

When you open the page for the first time, it may be empty until you run a detection.

<figure><img src="/files/cNoacz3rCm5KM1w0GSeS" alt=""><figcaption></figcaption></figure>

#### Step 1: Configure detection

At the top of the page, you’ll see the detection configuration.

You can choose a **similarity threshold**:

* **Strict** – Only very close matches are detected
* **Balanced** – Moderate similarity (recommended starting point)
* **Loose** – Broader matching, more potential duplicates

Each setting affects how sensitive the AI is when comparing skill names and related data. We recommend starting with a Balanced threshold as it helps you identify meaningful duplicates without overwhelming you with too many loosely related matches, making it the most effective option for an initial review.

<figure><img src="/files/hODVmy8pwnCdi2DkMgut" alt=""><figcaption></figcaption></figure>

#### Step 2: Run Detection

Click **Run Detection**.

* The process duration depends on the size of your database.
* It runs in the background.
* You’ll see a **completion percentage**.
* You can stop the process if needed.

{% hint style="info" %}
During the first run, **processing may take several hours** because none of the skills have been vectorized yet. Vectorization enables the AI to compare skills based on their meaning and similarity.

On subsequent runs, only newly created or updated skills are processed. This significantly **reduces the runtime.**

Once all skills have been vectorized, rerunning the process with a different similarity setting (e.g., stricter or more lenient) typically takes only a few minutes.
{% endhint %}

When completed, you’ll see:

* Number of skills analyzed
* Number of potential duplicates found

<figure><img src="/files/0co6OzMYML3eThqArujR" alt=""><figcaption></figcaption></figure>

#### **What happens when you run detection again?**

To keep your skill library clean and well-structured, we recommend running duplicate detection after large imports or updates.

Each time you complete a new detection run, the system rebuilds the duplicate clusters based on the current state of your database.

* Existing clusters from the previous run are **replaced.**
* All newly **created and updated** skills are analyzed.
* The system **compares** those skills **against the rest of your skills library** to identify duplicates based on the selected similarity settings.
* If **new potential duplicates** are found, they are included in the new clusters.
* Skills that were previously grouped together may no longer appear in the same cluster if the underlying data has changed.

This means the results always reflect the latest version of your skills library and any new or changed duplicates are captured in the updated clusters.<br>

### 4. Understanding the AI skill duplicate detection results

#### Duplicate Clusters

Potential duplicates are grouped into **clusters** and visible in the **Suggested duplicates tab**

Each cluster may contain two or more skills suggested as possible duplicates by AI

You can:

* Expand a cluster to see details
* Click on a skill name to open its full skill page
* Review similarities before making a decision to merge those skills or to mark the cluster as not containing duplicates and keep the skills intact.

#### Reasoning Filter

You can filter results by **AI reasoning**. The reasoning explains why the AI classifies skills as potential duplicates.&#x20;

There are six possible reasoning types:

1. Exact match
2. Misspelling
3. Multi language
4. Paraphrase
5. Special characters&#x20;
6. Or Miscellaneous

Reasoning filter helps you:

* Understand the AI’s logic
* Prioritize review
* Focus on certain types of similarities

#### Feedback History Tab

This tab shows:

* Previously reviewed and marked as not duplicates clusters
* Notes added
* Who and when marked them as not duplicates

You can reverse a decision to mark skills as not duplicates if needed.

#### Non-duplicate Skills Tab

This tab shows:

* Skills that were analyzed but no duplicates were detected

### 5. Reviewing and Managing Duplicates

<figure><img src="/files/voOYpIkCKFk0qrezIagc" alt=""><figcaption></figcaption></figure>

#### Option 1: Mark as Not duplicates

If skills are clearly different:

1. Click **Mark as not duplicates**
2. Add a note explaining your reasoning
   1. Explain the key differences between skills (e.g., different business contexts, distinct target audiences, unique technical requirements...)
3. Confirm

Your note will:

* Help AI to make better duplicate decisions in future runs and prevent repeated clusters
* Be visible to other reviewers in your organization
* Provide transparency

The cluster will move to the **Feedback History** tab.

#### Option 2: Merge duplicate skills&#x20;

When skills clustered as duplicates are indeed duplicates, you can merge them into 1 skill

1. This step has to be performed manually by deactivating the duplicate skill(s) and reassigning related objects to the survivor skill. AG5 can help you with that

{% hint style="info" %}
Built-in merge functionality will be available soon. &#x20;
{% endhint %}

***


# Copy of Skills duplicate detection

### **1. What is AI Skill duplicate detection?**

The **AI Duplicate Detection** feature helps you clean and standardize your skills database by identifying potential duplicate skills.

Over time, skills libraries can grow inconsistent due to:

* Slight spelling differences
* Different naming conventions
* Abbreviations vs. full names
* Similar skills created by different teams

This AI-powered tool scans your skills database and groups potential duplicates into clusters so you can review and resolve them efficiently.

### **2. What is the purpose of a duplicate detection?** <a href="#h_ba9f231322" id="h_ba9f231322"></a>

AI duplicate detection helps you maintain a single, consistent source of truth and ensures:

* accurate reporting
* clear workforce insights
* reliable compliance tracking
* reduced administrative clutter

### **3. How to use the AI Skill duplicate detection?** <a href="#h_9c88230f8e" id="h_9c88230f8e"></a>

To access the AI duplicate detection feature

1. Open your **Profile flyout**
2. Click the **AI Assistant** button
3. You’ll be redirected to the AI duplicate detection page

When you open the page for the first time, it may be empty until you run a detection.

<h4 align="center"><img src="/files/Elhm35dPRb1qVuB9M6qk" alt=""></h4>

#### Step 1: Configure detection

At the top of the page, you’ll see the detection configuration.

You can choose a **similarity threshold**:

* **Strict** – Only very close matches are detected
* **Balanced** – Moderate similarity (recommended starting point)
* **Loose** – Broader matching, more potential duplicates

Each setting affects how sensitive the AI is when comparing skill names and related data. We recommend starting with a Balanced threshold as it helps you identify meaningful duplicates without overwhelming you with too many loosely related matches, making it the most effective option for an initial review.

***

#### Step 2: Run Detection

Click **Run Detection**.

* The process duration depends on the size of your database.
* It runs in the background.
* You’ll see a **completion percentage**.
* You can stop the process if needed.

> During the first run, **processing may take several hours** because none of the skills have been vectorized yet. Vectorization enables the AI to compare skills based on their meaning and similarity.
>
> On subsequent runs, only newly created or updated skills are processed. This significantly **reduces the runtime.**
>
> Once all skills have been vectorized, rerunning the process with a different similarity setting (e.g., stricter or more lenient) typically takes only a few minutes.

When completed, you’ll see:

* Number of skills analyzed
* Number of potential duplicates found

<figure><img src="/files/Bpr3booyBSxmdG5X0r8e" alt=""><figcaption></figcaption></figure>

**What happens when you run detection again?**

To keep your skill library clean and well-structured, we recommend running duplicate detection after large imports or updates.

Each time you complete a new detection run, the system rebuilds the duplicate clusters based on the current state of your database.

* Existing clusters from the previous run are **replaced.**
* All newly **created and updated** skills are analyzed.
* The system **compares** those skills **against the rest of your skills library** to identify duplicates based on the selected similarity settings.
* If **new potential duplicates** are found, they are included in the new clusters.
* Skills that were previously grouped together may no longer appear in the same cluster if the underlying data has changed.

This means the results always reflect the latest version of your skills library and any new or changed duplicates are captured in the updated clusters.<br>

### 4. Understanding the AI skill duplicate detection results

#### Duplicate Clusters

Potential duplicates are grouped into **clusters** and visible in the **Suggested duplicates tab**

Each cluster may contain two or more skills suggested as possible duplicates by AI

You can:

* Expand a cluster to see details
* Click on a skill name to open its full skill page
* Review similarities before making a decision to merge those skills or to mark the cluster as not containing duplicates and keep the skills intact.

#### Reasoning Filter

You can filter results by **AI reasoning**. The reasoning explains why the AI classifies skills as potential duplicates.&#x20;

There are six possible reasoning types:

1. Exact match
2. Misspelling
3. Multi language
4. Paraphrase
5. Special characters&#x20;
6. Or Miscellaneous

Reasoning filter helps you:

* Understand the AI’s logic
* Prioritize review
* Focus on certain types of similarities

#### Feedback History Tab

This tab shows:

* Previously reviewed and marked as not duplicates clusters
* Notes added
* Who and when marked them as not duplicates

You can reverse a decision to mark skills as not duplicates if needed.

#### Non-duplicate Skills Tab

This tab shows:

* Skills that were analyzed but no duplicates were detected

<figure><img src="/files/JedgHN27vJtD5HFhM5Yc" alt=""><figcaption></figcaption></figure>

### 5. Reviewing and Managing Duplicates

#### Option 1: Mark as Not duplicates

If skills are clearly different:

1. Click **Mark as not duplicates**
2. Add a note explaining your reasoning
   1. Explain the key differences between skills (e.g., different business contexts, distinct target audiences, unique technical requirements...)
3. Confirm

Your note will:

* Help AI to make better duplicate decisions in future runs and prevent repeated clusters
* Be visible to other reviewers in your organization
* Provide transparency

The cluster will move to the **Feedback History** tab.

#### Option 2: Merge duplicate skills&#x20;

When skills clustered as duplicates are indeed duplicates, you can merge them into 1 skill

1. This step has to be performed manually by deactivating the duplicate skill(s) and reassigning related objects to the survivor skill. AG5 can help you with that

{% hint style="info" %}
Built-in merge functionality will be available soon. &#x20;
{% endhint %}

***


# Version 4 - Beta


# AG5 Skills Management API


# Overview

The AG5 Skills Management API provides a comprehensive solution for managing employee skills within your organization. This API supports both direct operations and a proposal-based workflow for changes that require approval.


# Repositories

The API allows accessing all your organization's repositories through a single API account. When requesting data this means that all repositories for the API account will be combined. Each response item will contain a reference to the repository it lives in. When creating a new item a repository reference needs to be provided to indicate where the item should be created. To find the repository references available, use the List repositories operation.


# API accounts

An API account grants access to a number of repositories within your organization. Every API account can have a number of API keys to work with. The API key is used to authenticate against the API service. Having multiple keys allows for easy cycling between API keys on renewal or after revocation.

An API account is bound to a single environment (aka stage). Typically an organization will have an API account for the acceptance environment and an additional one for the production environment. For every additional environment a new API account needs to be requested.


# Proposal System

Many operations in this API use a proposal-based workflow:

* **Direct Operations**: Read-only operations (GET) directly access current data
* **Proposal Operations**: Modifications (CREATE, UPDATE, DELETE) create proposals
* **Automatic vs Manual Approval**: Proposals may be automatically approved based on system configuration or require manual approval

If a new proposal is added through the API it is not resolved instantaneously even if the backend is configured to automatically approve. This means that the Proposal will initially be marked as not approved yet.


# Endpoints/URLs

The URL for the endpoints of the API have the following form:

```
https://matrix{-stage}.ag5.com/api/orgkeep/{orgid}/{slug}/v4/{endpoint}
```

The `stage` refers to the stage/environment the repositories live in:

| stage      | description                               |
| ---------- | ----------------------------------------- |
|            | Production (i.e. no explicit stage named) |
| acceptance | Acceptance/test environment               |

The `slug` parameter will be provided when an API account is requested.

As an example, the following URL should be used to access the List employees endpoint in the acceptance environment (of some fictional company ACME Corporation):

```
https://matrix-acceptance.ag5.com/api/orgkeep/acme/orgkeep/v4/employees
```


# Authentication

All API endpoints require authentication using an API key. The API key should be provided as a header in the request.

```
Authentication: Bearer <your-api-key>
```


# Custom fields

Several entities in the API support custom fields. Entities supporting this feature allow a user to define custom fields on these entities and provide their own values. This allows a customer to set additional values to, for example, correlate entities with their source system or enrich the attributes of an entity. You could think of adding a custom field like `hr-system-id` or `department` on an Employee or a custom field `in-house-course-available` on the entity Skill.

A custom field can be defined using the POST createCustomFieldDefinitions call. The following example defines the custom field `hr-system-id` for the Employee entity. The entity type is referred to using the `entityDefinitionID`. To get a full list of available entity definition IDs you can use the GET /entityDefinitions call.

```json
POST /api/orgkeep/acme/orgkeep/v4/createCustomFieldDefinitions
Content-Type: application/json

{
  "code": "hr-system-id",
  "entityDefinitionID": "1ac17b5c-13be-c79e-3cd0-d7389fe58455",
  "isUnique": true,
  "name": { "en": "HR System ID" },
  "repositoryID": "12345678-2fe4-472f-af41-0c1b936247fa"
}
```

Note that we set the `isUnique` property to `true`. This allows us to retrieve a specific entity through the API using that custom field (see below).

#### Retrieving entities by custom field

A specific entity can be retrieved through the API by its own unique AG5 defined ID. For example, to fetch an employee with id `100` you could make an API call using the GET employee call like so:

```
GET /api/orgkeep/acme/orgkeep/v4/employees/100
```

However, the IDs internally used by AG5 won't correspond with, for example, the IDs of the customer's HR system. When making an integration between AG5 and an external system you may want to track the ID of an entity in the source system in AG5. AG5 allows a customer to create custom fields to accommodate this scenario.

To look up an entity by a custom field, the custom field definition must have the `isUnique` property set to `true`. Attempting to look up by a non-unique custom field will result in an Invalid Request response.

Suppose the Employee entity has the custom field `hr-system-id` defined. Now an employee can be retrieved through its hr-system-id using the following API call using the `{customfield}:{value}` format for the ID:

```
GET /api/orgkeep/acme/orgkeep/v4/employees/hr-system-id:C48D038DD
```


# Date ranges

Some fields require you to pass in a date range. The notation for a date range is as follows `[start-date,end-date)`.

Both the start date and the end date are optional. Omitting the start date will mean that all dates below the upper boundary are included in the range. Likewise, omitting the end date will mean that all dates greater than the lower date are included in the range. If both the start end end date are omitted the range all dates will be considered to be in the range.

An inclusive lower bound is represented by "`[`" while an exclusive lower bound is represented by "`(`". Likewise, an inclusive upper bound is represented by "`]`", while an exclusive upper bound is represented by "`)`".

A date should be formatted as YYYY-MM-DD.

|                            |                                                                                           |
| -------------------------- | ----------------------------------------------------------------------------------------- |
| `[,]`                      | An endless date range, from negative to positive infinity                                 |
| `[2026-01-01, 2027-01-01)` | From january 1, 2026 until the last day of 2026. The "`)`" indicates *up to excluding*    |
| `[2026-01-01,)`            | From january 1, 2026 until the end of time                                                |
| `[2026-01-01,2026-01-02]`  | From january 1, 2026 up to including the january 2. The "`]`" indicates *up to including* |


# Rate Limiting

API calls are rate-limited to ensure fair usage:

* 1000 requests per hour per organization
* Rate limit headers are included in all responses


# Pagination

List endpoints (a GET on a collection) use cursor-based pagination. Please provide the following query parameters (both optional) to control the output:

* `limit` to control page size (default: 10, max: 1000)
* `cursor` to control where to start (use the `nextCursor` value from the previous response)

The following fields are present in the response for list endpoints:

* `total` to indicate the total items available in the list
* `limit` to indicate the actual page size determined by the server
* `nextCursor` to provide the starting point for the next page request. If there are no more pages this field is empty


# CustomFieldDefinitions

Operations for CustomFieldDefinitions

## List customFieldDefinitions

> List customFieldDefinitions\
> \
> \*\*Filter Syntax:\*\*\
> \- Filters use exact match only\
> \- Multiple filters are combined with AND logic\
> \- Filterable fields: entityDefinitionID\
> \- Example: \`?entityDefinitionID=123e4567-e89b-12d3-a456-426614174000\`

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Querying","name":"Querying"},{"description":"Operations for CustomFieldDefinitions","name":"CustomFieldDefinitions"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListCustomFieldDefinitionResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/CustomFieldDefinition"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"CustomFieldDefinition":{"properties":{"code":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"entityDefinitionID":{"format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"isUnique":{"type":"boolean"},"lastModifiedAt":{"format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","code","name","entityDefinitionID","isUnique"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/customFieldDefinitions":{"get":{"description":"List customFieldDefinitions\n\n**Filter Syntax:**\n- Filters use exact match only\n- Multiple filters are combined with AND logic\n- Filterable fields: entityDefinitionID\n- Example: `?entityDefinitionID=123e4567-e89b-12d3-a456-426614174000`","operationId":"listCustomFieldDefinition","parameters":[{"description":"Filter by entityDefinitionID (exact match)","in":"query","name":"entityDefinitionID","schema":{"type":"string"}},{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListCustomFieldDefinitionResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List customFieldDefinitions","tags":["CustomFieldDefinitions","Querying"]}}}}
```

## Get CustomFieldDefinition

> Get a single CustomFieldDefinition by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Querying","name":"Querying"},{"description":"Operations for CustomFieldDefinitions","name":"CustomFieldDefinitions"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CustomFieldDefinition":{"properties":{"code":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"entityDefinitionID":{"format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"isUnique":{"type":"boolean"},"lastModifiedAt":{"format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","code","name","entityDefinitionID","isUnique"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/customFieldDefinitions/{id}":{"get":{"description":"Get a single CustomFieldDefinition by ID","operationId":"getCustomFieldDefinition","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomFieldDefinition"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get CustomFieldDefinition","tags":["CustomFieldDefinitions","Querying"]}}}}
```

## List CustomFieldDefinition creation proposals

> List all createCustomFieldDefinitions proposals. These are proposed changes to create new CustomFieldDefinition records that may be automatically approved or require manual approval depending on system configuration.\
> \
> \*\*Filter Syntax:\*\*\
> \- Filters use exact match only\
> \- Multiple filters are combined with AND logic\
> \- Filterable fields: entityDefinitionID\
> \- Example: \`?entityDefinitionID=123e4567-e89b-12d3-a456-426614174000\`

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for CustomFieldDefinitions","name":"CustomFieldDefinitions"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListCreateCustomFieldDefinitionProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/CreateCustomFieldDefinitionProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"CreateCustomFieldDefinitionProposal":{"properties":{"code":{"type":"string"},"entityDefinitionID":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"isUnique":{"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","code","name","entityDefinitionID","isUnique"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/createCustomFieldDefinitions":{"get":{"description":"List all createCustomFieldDefinitions proposals. These are proposed changes to create new CustomFieldDefinition records that may be automatically approved or require manual approval depending on system configuration.\n\n**Filter Syntax:**\n- Filters use exact match only\n- Multiple filters are combined with AND logic\n- Filterable fields: entityDefinitionID\n- Example: `?entityDefinitionID=123e4567-e89b-12d3-a456-426614174000`","operationId":"listCreateCustomFieldDefinitionProposal","parameters":[{"description":"Filter by entityDefinitionID (exact match)","in":"query","name":"entityDefinitionID","schema":{"type":"string"}},{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListCreateCustomFieldDefinitionProposalResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List CustomFieldDefinition creation proposals","tags":["CustomFieldDefinitions","Proposals"]}}}}
```

## Propose creation of CustomFieldDefinitions

> Create new proposals to add CustomFieldDefinition records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for CustomFieldDefinitions","name":"CustomFieldDefinitions"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateCreateCustomFieldDefinitionProposalRequest":{"properties":{"code":{"type":"string"},"entityDefinitionID":{"format":"uuid","type":"string"},"isUnique":{"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["repositoryID","code","name","entityDefinitionID","isUnique"],"type":"object"},"CreateCustomFieldDefinitionProposal":{"properties":{"code":{"type":"string"},"entityDefinitionID":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"isUnique":{"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","code","name","entityDefinitionID","isUnique"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/createCustomFieldDefinitions":{"post":{"description":"Create new proposals to add CustomFieldDefinition records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.","operationId":"createCreateCustomFieldDefinitionProposal","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateCreateCustomFieldDefinitionProposalRequest"},"maxItems":100,"minItems":1,"type":"array"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateCustomFieldDefinitionProposal"},"type":"array"}}},"description":"Created successfully"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Propose creation of CustomFieldDefinitions","tags":["CustomFieldDefinitions","Proposals"]}}}}
```

## Get CustomFieldDefinition creation proposal

> Get details of a specific CustomFieldDefinition creation proposal by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for CustomFieldDefinitions","name":"CustomFieldDefinitions"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateCustomFieldDefinitionProposal":{"properties":{"code":{"type":"string"},"entityDefinitionID":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"isUnique":{"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","code","name","entityDefinitionID","isUnique"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/createCustomFieldDefinitions/{id}":{"get":{"description":"Get details of a specific CustomFieldDefinition creation proposal by ID","operationId":"getCreateCustomFieldDefinitionProposal","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCustomFieldDefinitionProposal"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get CustomFieldDefinition creation proposal","tags":["CustomFieldDefinitions","Proposals"]}}}}
```

## List CustomFieldDefinition deletion proposals

> List all deleteCustomFieldDefinitions proposals. These are proposed changes to delete CustomFieldDefinition records that may be automatically approved or require manual approval depending on system configuration.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for CustomFieldDefinitions","name":"CustomFieldDefinitions"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListDeleteCustomFieldDefinitionProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/DeleteCustomFieldDefinitionProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"DeleteCustomFieldDefinitionProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/deleteCustomFieldDefinitions":{"get":{"description":"List all deleteCustomFieldDefinitions proposals. These are proposed changes to delete CustomFieldDefinition records that may be automatically approved or require manual approval depending on system configuration.","operationId":"listDeleteCustomFieldDefinitionProposal","parameters":[{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListDeleteCustomFieldDefinitionProposalResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List CustomFieldDefinition deletion proposals","tags":["CustomFieldDefinitions","Proposals"]}}}}
```

## Propose deletion of CustomFieldDefinitions

> Create new proposals to delete CustomFieldDefinition records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for CustomFieldDefinitions","name":"CustomFieldDefinitions"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateDeleteCustomFieldDefinitionProposalRequest":{"properties":{"id":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"},"DeleteCustomFieldDefinitionProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/deleteCustomFieldDefinitions":{"post":{"description":"Create new proposals to delete CustomFieldDefinition records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.","operationId":"createDeleteCustomFieldDefinitionProposal","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateDeleteCustomFieldDefinitionProposalRequest"},"maxItems":100,"minItems":1,"type":"array"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/DeleteCustomFieldDefinitionProposal"},"type":"array"}}},"description":"Created successfully"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Propose deletion of CustomFieldDefinitions","tags":["CustomFieldDefinitions","Proposals"]}}}}
```

## Get CustomFieldDefinition deletion proposal

> Get details of a specific CustomFieldDefinition deletion proposal by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for CustomFieldDefinitions","name":"CustomFieldDefinitions"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"DeleteCustomFieldDefinitionProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/deleteCustomFieldDefinitions/{id}":{"get":{"description":"Get details of a specific CustomFieldDefinition deletion proposal by ID","operationId":"getDeleteCustomFieldDefinitionProposal","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteCustomFieldDefinitionProposal"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get CustomFieldDefinition deletion proposal","tags":["CustomFieldDefinitions","Proposals"]}}}}
```

## List CustomFieldDefinition update proposals

> List all updateCustomFieldDefinitions proposals. These are proposed changes to update existing CustomFieldDefinition records that may be automatically approved or require manual approval depending on system configuration.\
> \
> \*\*Filter Syntax:\*\*\
> \- Filters use exact match only\
> \- Multiple filters are combined with AND logic\
> \- Filterable fields: entityDefinitionID\
> \- Example: \`?entityDefinitionID=123e4567-e89b-12d3-a456-426614174000\`

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for CustomFieldDefinitions","name":"CustomFieldDefinitions"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListUpdateCustomFieldDefinitionProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UpdateCustomFieldDefinitionProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"UpdateCustomFieldDefinitionProposal":{"properties":{"code":{"type":"string"},"entityDefinitionID":{"format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"isUnique":{"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/updateCustomFieldDefinitions":{"get":{"description":"List all updateCustomFieldDefinitions proposals. These are proposed changes to update existing CustomFieldDefinition records that may be automatically approved or require manual approval depending on system configuration.\n\n**Filter Syntax:**\n- Filters use exact match only\n- Multiple filters are combined with AND logic\n- Filterable fields: entityDefinitionID\n- Example: `?entityDefinitionID=123e4567-e89b-12d3-a456-426614174000`","operationId":"listUpdateCustomFieldDefinitionProposal","parameters":[{"description":"Filter by entityDefinitionID (exact match)","in":"query","name":"entityDefinitionID","schema":{"type":"string"}},{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListUpdateCustomFieldDefinitionProposalResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List CustomFieldDefinition update proposals","tags":["CustomFieldDefinitions","Proposals"]}}}}
```

## Propose update of CustomFieldDefinitions

> Create new proposals to update CustomFieldDefinition records. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable). The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for CustomFieldDefinitions","name":"CustomFieldDefinitions"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateUpdateCustomFieldDefinitionProposalRequest":{"properties":{"code":{"description":"Omit this field to keep current value","type":"string"},"entityDefinitionID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"isUnique":{"description":"Omit this field to keep current value","type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"},"UpdateCustomFieldDefinitionProposal":{"properties":{"code":{"type":"string"},"entityDefinitionID":{"format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"isUnique":{"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/updateCustomFieldDefinitions":{"post":{"description":"Create new proposals to update CustomFieldDefinition records. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable). The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.","operationId":"createUpdateCustomFieldDefinitionProposal","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateUpdateCustomFieldDefinitionProposalRequest"},"maxItems":100,"minItems":1,"type":"array"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/UpdateCustomFieldDefinitionProposal"},"type":"array"}}},"description":"Created successfully"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Propose update of CustomFieldDefinitions","tags":["CustomFieldDefinitions","Proposals"]}}}}
```

## Get CustomFieldDefinition update proposal

> Get details of a specific CustomFieldDefinition update proposal by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for CustomFieldDefinitions","name":"CustomFieldDefinitions"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"UpdateCustomFieldDefinitionProposal":{"properties":{"code":{"type":"string"},"entityDefinitionID":{"format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"isUnique":{"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/updateCustomFieldDefinitions/{id}":{"get":{"description":"Get details of a specific CustomFieldDefinition update proposal by ID","operationId":"getUpdateCustomFieldDefinitionProposal","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCustomFieldDefinitionProposal"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get CustomFieldDefinition update proposal","tags":["CustomFieldDefinitions","Proposals"]}}}}
```


# Documents

Operations for Documents

## List Document creation proposals

> List all createDocuments proposals. These are proposed changes to create new Document records that may be automatically approved or require manual approval depending on system configuration.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Documents","name":"Documents"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListCreateDocumentProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/CreateDocumentProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"CreateDocumentProposal":{"properties":{"contentType":{"type":"string"},"fileID":{"type":"string"},"fileSize":{"format":"int32","type":"integer"},"filename":{"type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","fileID","fileSize"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/createDocuments":{"get":{"description":"List all createDocuments proposals. These are proposed changes to create new Document records that may be automatically approved or require manual approval depending on system configuration.","operationId":"listCreateDocumentProposal","parameters":[{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListCreateDocumentProposalResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List Document creation proposals","tags":["Documents","Proposals"]}}}}
```

## Get Document creation proposal

> Get details of a specific Document creation proposal by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Documents","name":"Documents"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateDocumentProposal":{"properties":{"contentType":{"type":"string"},"fileID":{"type":"string"},"fileSize":{"format":"int32","type":"integer"},"filename":{"type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","fileID","fileSize"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/createDocuments/{id}":{"get":{"description":"Get details of a specific Document creation proposal by ID","operationId":"getCreateDocumentProposal","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDocumentProposal"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get Document creation proposal","tags":["Documents","Proposals"]}}}}
```

## List Document deletion proposals

> List all deleteDocuments proposals. These are proposed changes to delete Document records that may be automatically approved or require manual approval depending on system configuration.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Documents","name":"Documents"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListDeleteDocumentProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/DeleteDocumentProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"DeleteDocumentProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/deleteDocuments":{"get":{"description":"List all deleteDocuments proposals. These are proposed changes to delete Document records that may be automatically approved or require manual approval depending on system configuration.","operationId":"listDeleteDocumentProposal","parameters":[{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListDeleteDocumentProposalResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List Document deletion proposals","tags":["Documents","Proposals"]}}}}
```

## Get Document deletion proposal

> Get details of a specific Document deletion proposal by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Documents","name":"Documents"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"DeleteDocumentProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/deleteDocuments/{id}":{"get":{"description":"Get details of a specific Document deletion proposal by ID","operationId":"getDeleteDocumentProposal","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteDocumentProposal"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get Document deletion proposal","tags":["Documents","Proposals"]}}}}
```


# EmployeeUnavailabilities

Operations for EmployeeUnavailabilities

## List employeeUnavailabilities

> List employeeUnavailabilities\
> \
> \*\*Filter Syntax:\*\*\
> \- Filters use exact match only\
> \- Multiple filters are combined with AND logic\
> \- Filterable fields: employeeID\
> \- Example: \`?employeeID=123e4567-e89b-12d3-a456-426614174000\`

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Querying","name":"Querying"},{"description":"Operations for EmployeeUnavailabilities","name":"EmployeeUnavailabilities"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListEmployeeUnavailabilityResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/EmployeeUnavailability"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"EmployeeUnavailability":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"createdAt":{"format":"date-time","type":"string"},"employeeID":{"format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"reason":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","activePeriod","employeeID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/employeeUnavailabilities":{"get":{"description":"List employeeUnavailabilities\n\n**Filter Syntax:**\n- Filters use exact match only\n- Multiple filters are combined with AND logic\n- Filterable fields: employeeID\n- Example: `?employeeID=123e4567-e89b-12d3-a456-426614174000`","operationId":"listEmployeeUnavailability","parameters":[{"description":"Filter by employeeID (exact match)","in":"query","name":"employeeID","schema":{"type":"string"}},{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListEmployeeUnavailabilityResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List employeeUnavailabilities","tags":["EmployeeUnavailabilities","Querying"]}}}}
```

## Get EmployeeUnavailability

> Get a single EmployeeUnavailability by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Querying","name":"Querying"},{"description":"Operations for EmployeeUnavailabilities","name":"EmployeeUnavailabilities"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"EmployeeUnavailability":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"createdAt":{"format":"date-time","type":"string"},"employeeID":{"format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"reason":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","activePeriod","employeeID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/employeeUnavailabilities/{id}":{"get":{"description":"Get a single EmployeeUnavailability by ID","operationId":"getEmployeeUnavailability","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployeeUnavailability"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get EmployeeUnavailability","tags":["EmployeeUnavailabilities","Querying"]}}}}
```

## List EmployeeUnavailability creation proposals

> List all createEmployeeUnavailabilities proposals. These are proposed changes to create new EmployeeUnavailability records that may be automatically approved or require manual approval depending on system configuration.\
> \
> \*\*Filter Syntax:\*\*\
> \- Filters use exact match only\
> \- Multiple filters are combined with AND logic\
> \- Filterable fields: employeeID\
> \- Example: \`?employeeID=123e4567-e89b-12d3-a456-426614174000\`

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for EmployeeUnavailabilities","name":"EmployeeUnavailabilities"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListCreateEmployeeUnavailabilityProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/CreateEmployeeUnavailabilityProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"CreateEmployeeUnavailabilityProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"employeeID":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"reason":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","activePeriod","employeeID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/createEmployeeUnavailabilities":{"get":{"description":"List all createEmployeeUnavailabilities proposals. These are proposed changes to create new EmployeeUnavailability records that may be automatically approved or require manual approval depending on system configuration.\n\n**Filter Syntax:**\n- Filters use exact match only\n- Multiple filters are combined with AND logic\n- Filterable fields: employeeID\n- Example: `?employeeID=123e4567-e89b-12d3-a456-426614174000`","operationId":"listCreateEmployeeUnavailabilityProposal","parameters":[{"description":"Filter by employeeID (exact match)","in":"query","name":"employeeID","schema":{"type":"string"}},{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListCreateEmployeeUnavailabilityProposalResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List EmployeeUnavailability creation proposals","tags":["EmployeeUnavailabilities","Proposals"]}}}}
```

## Propose creation of EmployeeUnavailabilities

> Create new proposals to add EmployeeUnavailability records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for EmployeeUnavailabilities","name":"EmployeeUnavailabilities"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateCreateEmployeeUnavailabilityProposalRequest":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"employeeID":{"format":"uuid","type":"string"},"reason":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"}},"required":["repositoryID","activePeriod","employeeID"],"type":"object"},"CreateEmployeeUnavailabilityProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"employeeID":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"reason":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","activePeriod","employeeID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/createEmployeeUnavailabilities":{"post":{"description":"Create new proposals to add EmployeeUnavailability records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.","operationId":"createCreateEmployeeUnavailabilityProposal","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateCreateEmployeeUnavailabilityProposalRequest"},"maxItems":100,"minItems":1,"type":"array"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateEmployeeUnavailabilityProposal"},"type":"array"}}},"description":"Created successfully"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Propose creation of EmployeeUnavailabilities","tags":["EmployeeUnavailabilities","Proposals"]}}}}
```

## Get EmployeeUnavailability creation proposal

> Get details of a specific EmployeeUnavailability creation proposal by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for EmployeeUnavailabilities","name":"EmployeeUnavailabilities"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateEmployeeUnavailabilityProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"employeeID":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"reason":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","activePeriod","employeeID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/createEmployeeUnavailabilities/{id}":{"get":{"description":"Get details of a specific EmployeeUnavailability creation proposal by ID","operationId":"getCreateEmployeeUnavailabilityProposal","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateEmployeeUnavailabilityProposal"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get EmployeeUnavailability creation proposal","tags":["EmployeeUnavailabilities","Proposals"]}}}}
```

## List EmployeeUnavailability deletion proposals

> List all deleteEmployeeUnavailabilities proposals. These are proposed changes to delete EmployeeUnavailability records that may be automatically approved or require manual approval depending on system configuration.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for EmployeeUnavailabilities","name":"EmployeeUnavailabilities"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListDeleteEmployeeUnavailabilityProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/DeleteEmployeeUnavailabilityProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"DeleteEmployeeUnavailabilityProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/deleteEmployeeUnavailabilities":{"get":{"description":"List all deleteEmployeeUnavailabilities proposals. These are proposed changes to delete EmployeeUnavailability records that may be automatically approved or require manual approval depending on system configuration.","operationId":"listDeleteEmployeeUnavailabilityProposal","parameters":[{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListDeleteEmployeeUnavailabilityProposalResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List EmployeeUnavailability deletion proposals","tags":["EmployeeUnavailabilities","Proposals"]}}}}
```

## Propose deletion of EmployeeUnavailabilities

> Create new proposals to delete EmployeeUnavailability records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for EmployeeUnavailabilities","name":"EmployeeUnavailabilities"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateDeleteEmployeeUnavailabilityProposalRequest":{"properties":{"id":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"},"DeleteEmployeeUnavailabilityProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/deleteEmployeeUnavailabilities":{"post":{"description":"Create new proposals to delete EmployeeUnavailability records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.","operationId":"createDeleteEmployeeUnavailabilityProposal","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateDeleteEmployeeUnavailabilityProposalRequest"},"maxItems":100,"minItems":1,"type":"array"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/DeleteEmployeeUnavailabilityProposal"},"type":"array"}}},"description":"Created successfully"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Propose deletion of EmployeeUnavailabilities","tags":["EmployeeUnavailabilities","Proposals"]}}}}
```

## Get EmployeeUnavailability deletion proposal

> Get details of a specific EmployeeUnavailability deletion proposal by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for EmployeeUnavailabilities","name":"EmployeeUnavailabilities"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"DeleteEmployeeUnavailabilityProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/deleteEmployeeUnavailabilities/{id}":{"get":{"description":"Get details of a specific EmployeeUnavailability deletion proposal by ID","operationId":"getDeleteEmployeeUnavailabilityProposal","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteEmployeeUnavailabilityProposal"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get EmployeeUnavailability deletion proposal","tags":["EmployeeUnavailabilities","Proposals"]}}}}
```

## List EmployeeUnavailability update proposals

> List all updateEmployeeUnavailabilities proposals. These are proposed changes to update existing EmployeeUnavailability records that may be automatically approved or require manual approval depending on system configuration.\
> \
> \*\*Filter Syntax:\*\*\
> \- Filters use exact match only\
> \- Multiple filters are combined with AND logic\
> \- Filterable fields: employeeID\
> \- Example: \`?employeeID=123e4567-e89b-12d3-a456-426614174000\`

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for EmployeeUnavailabilities","name":"EmployeeUnavailabilities"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListUpdateEmployeeUnavailabilityProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UpdateEmployeeUnavailabilityProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"UpdateEmployeeUnavailabilityProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"employeeID":{"format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"reason":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/updateEmployeeUnavailabilities":{"get":{"description":"List all updateEmployeeUnavailabilities proposals. These are proposed changes to update existing EmployeeUnavailability records that may be automatically approved or require manual approval depending on system configuration.\n\n**Filter Syntax:**\n- Filters use exact match only\n- Multiple filters are combined with AND logic\n- Filterable fields: employeeID\n- Example: `?employeeID=123e4567-e89b-12d3-a456-426614174000`","operationId":"listUpdateEmployeeUnavailabilityProposal","parameters":[{"description":"Filter by employeeID (exact match)","in":"query","name":"employeeID","schema":{"type":"string"}},{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListUpdateEmployeeUnavailabilityProposalResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List EmployeeUnavailability update proposals","tags":["EmployeeUnavailabilities","Proposals"]}}}}
```

## Propose update of EmployeeUnavailabilities

> Create new proposals to update EmployeeUnavailability records. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable). The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for EmployeeUnavailabilities","name":"EmployeeUnavailabilities"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateUpdateEmployeeUnavailabilityProposalRequest":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end) (omit to keep current value)","type":"string"},"employeeID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"reason":{"description":"Omit this field to keep current value","type":"string"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"},"UpdateEmployeeUnavailabilityProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"employeeID":{"format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"reason":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/updateEmployeeUnavailabilities":{"post":{"description":"Create new proposals to update EmployeeUnavailability records. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable). The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.","operationId":"createUpdateEmployeeUnavailabilityProposal","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateUpdateEmployeeUnavailabilityProposalRequest"},"maxItems":100,"minItems":1,"type":"array"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/UpdateEmployeeUnavailabilityProposal"},"type":"array"}}},"description":"Created successfully"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Propose update of EmployeeUnavailabilities","tags":["EmployeeUnavailabilities","Proposals"]}}}}
```

## Get EmployeeUnavailability update proposal

> Get details of a specific EmployeeUnavailability update proposal by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for EmployeeUnavailabilities","name":"EmployeeUnavailabilities"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"UpdateEmployeeUnavailabilityProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"employeeID":{"format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"reason":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/updateEmployeeUnavailabilities/{id}":{"get":{"description":"Get details of a specific EmployeeUnavailability update proposal by ID","operationId":"getUpdateEmployeeUnavailabilityProposal","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEmployeeUnavailabilityProposal"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get EmployeeUnavailability update proposal","tags":["EmployeeUnavailabilities","Proposals"]}}}}
```


# Employees

Operations for Employees

## List employees

> List employees\
> \
> \*\*Filter Syntax:\*\*\
> \- Filters use exact match only\
> \- Multiple filters are combined with AND logic\
> \- Filterable fields: employeeNumber\
> \- Example: \`?employeeNumber=example-value\`

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Querying","name":"Querying"},{"description":"Operations for Employees","name":"Employees"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListEmployeeResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/Employee"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"Employee":{"properties":{"birthDate":{"format":"date","type":"string"},"createdAt":{"format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"email":{"format":"email","type":"string"},"employeeNumber":{"type":"string"},"firstName":{"type":"string"},"id":{"format":"uuid","type":"string"},"initials":{"type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"surname":{"type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","surname"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/employees":{"get":{"description":"List employees\n\n**Filter Syntax:**\n- Filters use exact match only\n- Multiple filters are combined with AND logic\n- Filterable fields: employeeNumber\n- Example: `?employeeNumber=example-value`","operationId":"listEmployee","parameters":[{"description":"Filter by employeeNumber (exact match)","in":"query","name":"employeeNumber","schema":{"type":"string"}},{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListEmployeeResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List employees","tags":["Employees","Querying"]}}}}
```

## Get Employee

> Get a single Employee by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Querying","name":"Querying"},{"description":"Operations for Employees","name":"Employees"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"Employee":{"properties":{"birthDate":{"format":"date","type":"string"},"createdAt":{"format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"email":{"format":"email","type":"string"},"employeeNumber":{"type":"string"},"firstName":{"type":"string"},"id":{"format":"uuid","type":"string"},"initials":{"type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"surname":{"type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","surname"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/employees/{id}":{"get":{"description":"Get a single Employee by ID","operationId":"getEmployee","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Employee"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get Employee","tags":["Employees","Querying"]}}}}
```

## Upload document for Employee

> Upload a binary document that will be attached to the specified resource via a proposal.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Querying","name":"Querying"},{"description":"Operations for Employees","name":"Employees"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}},"schemas":{"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}}},"paths":{"/employees/{id}/uploadDocument":{"post":{"description":"Upload a binary document that will be attached to the specified resource via a proposal.","operationId":"uploadDocumentForEmployee","requestBody":{"content":{"multipart/form-data":{"schema":{"properties":{"file":{"format":"binary","type":"string"}},"required":["file"],"type":"object"}}},"required":true},"responses":{"202":{"description":"Upload accepted"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Upload document for Employee","tags":["Employees","Querying"]}}}}
```

## List documents for Employee

> List documents for the Employee resource

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Querying","name":"Querying"},{"description":"Operations for Employees","name":"Employees"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"Document":{"properties":{"contentType":{"description":"MIME type of the file","type":"string"},"downloadUrl":{"type":"string"},"filename":{"description":"Name of the file","type":"string"},"size":{"description":"Size of the file in bytes","type":"integer"}},"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/employees/{id}/documents":{"get":{"description":"List documents for the Employee resource","operationId":"listDocumentsForEmployee","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Document"},"type":"array"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List documents for Employee","tags":["Employees","Querying"]}}}}
```

## List Employee creation proposals

> List all createEmployees proposals. These are proposed changes to create new Employee records that may be automatically approved or require manual approval depending on system configuration.\
> \
> \*\*Filter Syntax:\*\*\
> \- Filters use exact match only\
> \- Multiple filters are combined with AND logic\
> \- Filterable fields: employeeNumber\
> \- Example: \`?employeeNumber=example-value\`

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Employees","name":"Employees"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListCreateEmployeeProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/CreateEmployeeProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"CreateEmployeeProposal":{"properties":{"birthDate":{"format":"date","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"email":{"format":"email","type":"string"},"employeeNumber":{"type":"string"},"firstName":{"type":"string"},"initials":{"type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"},"surname":{"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","surname"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/createEmployees":{"get":{"description":"List all createEmployees proposals. These are proposed changes to create new Employee records that may be automatically approved or require manual approval depending on system configuration.\n\n**Filter Syntax:**\n- Filters use exact match only\n- Multiple filters are combined with AND logic\n- Filterable fields: employeeNumber\n- Example: `?employeeNumber=example-value`","operationId":"listCreateEmployeeProposal","parameters":[{"description":"Filter by employeeNumber (exact match)","in":"query","name":"employeeNumber","schema":{"type":"string"}},{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListCreateEmployeeProposalResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List Employee creation proposals","tags":["Employees","Proposals"]}}}}
```

## Propose creation of Employees

> Create new proposals to add Employee records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Employees","name":"Employees"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateCreateEmployeeProposalRequest":{"properties":{"birthDate":{"format":"date","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"email":{"format":"email","type":"string"},"employeeNumber":{"type":"string"},"firstName":{"type":"string"},"initials":{"type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"surname":{"type":"string"}},"required":["repositoryID","surname"],"type":"object"},"CreateEmployeeProposal":{"properties":{"birthDate":{"format":"date","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"email":{"format":"email","type":"string"},"employeeNumber":{"type":"string"},"firstName":{"type":"string"},"initials":{"type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"},"surname":{"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","surname"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/createEmployees":{"post":{"description":"Create new proposals to add Employee records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.","operationId":"createCreateEmployeeProposal","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateCreateEmployeeProposalRequest"},"maxItems":100,"minItems":1,"type":"array"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateEmployeeProposal"},"type":"array"}}},"description":"Created successfully"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Propose creation of Employees","tags":["Employees","Proposals"]}}}}
```

## Get Employee creation proposal

> Get details of a specific Employee creation proposal by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Employees","name":"Employees"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateEmployeeProposal":{"properties":{"birthDate":{"format":"date","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"email":{"format":"email","type":"string"},"employeeNumber":{"type":"string"},"firstName":{"type":"string"},"initials":{"type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"},"surname":{"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","surname"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/createEmployees/{id}":{"get":{"description":"Get details of a specific Employee creation proposal by ID","operationId":"getCreateEmployeeProposal","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateEmployeeProposal"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get Employee creation proposal","tags":["Employees","Proposals"]}}}}
```

## List Employee deletion proposals

> List all deleteEmployees proposals. These are proposed changes to delete Employee records that may be automatically approved or require manual approval depending on system configuration.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Employees","name":"Employees"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListDeleteEmployeeProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/DeleteEmployeeProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"DeleteEmployeeProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/deleteEmployees":{"get":{"description":"List all deleteEmployees proposals. These are proposed changes to delete Employee records that may be automatically approved or require manual approval depending on system configuration.","operationId":"listDeleteEmployeeProposal","parameters":[{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListDeleteEmployeeProposalResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List Employee deletion proposals","tags":["Employees","Proposals"]}}}}
```

## Propose deletion of Employees

> Create new proposals to delete Employee records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Employees","name":"Employees"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateDeleteEmployeeProposalRequest":{"properties":{"id":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"},"DeleteEmployeeProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/deleteEmployees":{"post":{"description":"Create new proposals to delete Employee records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.","operationId":"createDeleteEmployeeProposal","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateDeleteEmployeeProposalRequest"},"maxItems":100,"minItems":1,"type":"array"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/DeleteEmployeeProposal"},"type":"array"}}},"description":"Created successfully"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Propose deletion of Employees","tags":["Employees","Proposals"]}}}}
```

## Get Employee deletion proposal

> Get details of a specific Employee deletion proposal by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Employees","name":"Employees"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"DeleteEmployeeProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/deleteEmployees/{id}":{"get":{"description":"Get details of a specific Employee deletion proposal by ID","operationId":"getDeleteEmployeeProposal","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteEmployeeProposal"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get Employee deletion proposal","tags":["Employees","Proposals"]}}}}
```

## List Employee update proposals

> List all updateEmployees proposals. These are proposed changes to update existing Employee records that may be automatically approved or require manual approval depending on system configuration.\
> \
> \*\*Filter Syntax:\*\*\
> \- Filters use exact match only\
> \- Multiple filters are combined with AND logic\
> \- Filterable fields: employeeNumber\
> \- Example: \`?employeeNumber=example-value\`

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Employees","name":"Employees"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListUpdateEmployeeProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UpdateEmployeeProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"UpdateEmployeeProposal":{"properties":{"birthDate":{"format":"date","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"email":{"format":"email","type":"string"},"employeeNumber":{"type":"string"},"firstName":{"type":"string"},"id":{"format":"uuid","type":"string"},"initials":{"type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"surname":{"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/updateEmployees":{"get":{"description":"List all updateEmployees proposals. These are proposed changes to update existing Employee records that may be automatically approved or require manual approval depending on system configuration.\n\n**Filter Syntax:**\n- Filters use exact match only\n- Multiple filters are combined with AND logic\n- Filterable fields: employeeNumber\n- Example: `?employeeNumber=example-value`","operationId":"listUpdateEmployeeProposal","parameters":[{"description":"Filter by employeeNumber (exact match)","in":"query","name":"employeeNumber","schema":{"type":"string"}},{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListUpdateEmployeeProposalResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List Employee update proposals","tags":["Employees","Proposals"]}}}}
```

## Propose update of Employees

> Create new proposals to update Employee records. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable). The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Employees","name":"Employees"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateUpdateEmployeeProposalRequest":{"properties":{"birthDate":{"description":"Omit this field to keep current value","format":"date","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed (omit to keep current value)","type":"object"},"email":{"description":"Omit this field to keep current value","format":"email","type":"string"},"employeeNumber":{"description":"Omit this field to keep current value","type":"string"},"firstName":{"description":"Omit this field to keep current value","type":"string"},"id":{"format":"uuid","type":"string"},"initials":{"description":"Omit this field to keep current value","type":"string"},"remark":{"description":"Omit this field to keep current value","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"surname":{"description":"Omit this field to keep current value","type":"string"}},"required":["id","repositoryID"],"type":"object"},"UpdateEmployeeProposal":{"properties":{"birthDate":{"format":"date","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"email":{"format":"email","type":"string"},"employeeNumber":{"type":"string"},"firstName":{"type":"string"},"id":{"format":"uuid","type":"string"},"initials":{"type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"surname":{"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/updateEmployees":{"post":{"description":"Create new proposals to update Employee records. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable). The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.","operationId":"createUpdateEmployeeProposal","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateUpdateEmployeeProposalRequest"},"maxItems":100,"minItems":1,"type":"array"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/UpdateEmployeeProposal"},"type":"array"}}},"description":"Created successfully"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Propose update of Employees","tags":["Employees","Proposals"]}}}}
```

## Get Employee update proposal

> Get details of a specific Employee update proposal by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Employees","name":"Employees"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"UpdateEmployeeProposal":{"properties":{"birthDate":{"format":"date","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"email":{"format":"email","type":"string"},"employeeNumber":{"type":"string"},"firstName":{"type":"string"},"id":{"format":"uuid","type":"string"},"initials":{"type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"surname":{"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/updateEmployees/{id}":{"get":{"description":"Get details of a specific Employee update proposal by ID","operationId":"getUpdateEmployeeProposal","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEmployeeProposal"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get Employee update proposal","tags":["Employees","Proposals"]}}}}
```


# EmploymentContractTypes

Operations for EmploymentContractTypes

## List employmentContractTypes

> List employmentContractTypes

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Querying","name":"Querying"},{"description":"Operations for EmploymentContractTypes","name":"EmploymentContractTypes"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListEmploymentContractTypeResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/EmploymentContractType"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"EmploymentContractType":{"properties":{"code":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","code","name"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/employmentContractTypes":{"get":{"description":"List employmentContractTypes","operationId":"listEmploymentContractType","parameters":[{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListEmploymentContractTypeResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List employmentContractTypes","tags":["EmploymentContractTypes","Querying"]}}}}
```

## Get EmploymentContractType

> Get a single EmploymentContractType by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Querying","name":"Querying"},{"description":"Operations for EmploymentContractTypes","name":"EmploymentContractTypes"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"EmploymentContractType":{"properties":{"code":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","code","name"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/employmentContractTypes/{id}":{"get":{"description":"Get a single EmploymentContractType by ID","operationId":"getEmploymentContractType","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmploymentContractType"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get EmploymentContractType","tags":["EmploymentContractTypes","Querying"]}}}}
```

## List EmploymentContractType creation proposals

> List all createEmploymentContractTypes proposals. These are proposed changes to create new EmploymentContractType records that may be automatically approved or require manual approval depending on system configuration.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for EmploymentContractTypes","name":"EmploymentContractTypes"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListCreateEmploymentContractTypeProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/CreateEmploymentContractTypeProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"CreateEmploymentContractTypeProposal":{"properties":{"code":{"type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","code","name"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/createEmploymentContractTypes":{"get":{"description":"List all createEmploymentContractTypes proposals. These are proposed changes to create new EmploymentContractType records that may be automatically approved or require manual approval depending on system configuration.","operationId":"listCreateEmploymentContractTypeProposal","parameters":[{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListCreateEmploymentContractTypeProposalResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List EmploymentContractType creation proposals","tags":["EmploymentContractTypes","Proposals"]}}}}
```

## Propose creation of EmploymentContractTypes

> Create new proposals to add EmploymentContractType records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for EmploymentContractTypes","name":"EmploymentContractTypes"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateCreateEmploymentContractTypeProposalRequest":{"properties":{"code":{"type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["repositoryID","code","name"],"type":"object"},"CreateEmploymentContractTypeProposal":{"properties":{"code":{"type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","code","name"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/createEmploymentContractTypes":{"post":{"description":"Create new proposals to add EmploymentContractType records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.","operationId":"createCreateEmploymentContractTypeProposal","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateCreateEmploymentContractTypeProposalRequest"},"maxItems":100,"minItems":1,"type":"array"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateEmploymentContractTypeProposal"},"type":"array"}}},"description":"Created successfully"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Propose creation of EmploymentContractTypes","tags":["EmploymentContractTypes","Proposals"]}}}}
```

## Get EmploymentContractType creation proposal

> Get details of a specific EmploymentContractType creation proposal by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for EmploymentContractTypes","name":"EmploymentContractTypes"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateEmploymentContractTypeProposal":{"properties":{"code":{"type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","code","name"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/createEmploymentContractTypes/{id}":{"get":{"description":"Get details of a specific EmploymentContractType creation proposal by ID","operationId":"getCreateEmploymentContractTypeProposal","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateEmploymentContractTypeProposal"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get EmploymentContractType creation proposal","tags":["EmploymentContractTypes","Proposals"]}}}}
```

## List EmploymentContractType deletion proposals

> List all deleteEmploymentContractTypes proposals. These are proposed changes to delete EmploymentContractType records that may be automatically approved or require manual approval depending on system configuration.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for EmploymentContractTypes","name":"EmploymentContractTypes"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListDeleteEmploymentContractTypeProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/DeleteEmploymentContractTypeProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"DeleteEmploymentContractTypeProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/deleteEmploymentContractTypes":{"get":{"description":"List all deleteEmploymentContractTypes proposals. These are proposed changes to delete EmploymentContractType records that may be automatically approved or require manual approval depending on system configuration.","operationId":"listDeleteEmploymentContractTypeProposal","parameters":[{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListDeleteEmploymentContractTypeProposalResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List EmploymentContractType deletion proposals","tags":["EmploymentContractTypes","Proposals"]}}}}
```

## Propose deletion of EmploymentContractTypes

> Create new proposals to delete EmploymentContractType records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for EmploymentContractTypes","name":"EmploymentContractTypes"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateDeleteEmploymentContractTypeProposalRequest":{"properties":{"id":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"},"DeleteEmploymentContractTypeProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/deleteEmploymentContractTypes":{"post":{"description":"Create new proposals to delete EmploymentContractType records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.","operationId":"createDeleteEmploymentContractTypeProposal","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateDeleteEmploymentContractTypeProposalRequest"},"maxItems":100,"minItems":1,"type":"array"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/DeleteEmploymentContractTypeProposal"},"type":"array"}}},"description":"Created successfully"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Propose deletion of EmploymentContractTypes","tags":["EmploymentContractTypes","Proposals"]}}}}
```

## Get EmploymentContractType deletion proposal

> Get details of a specific EmploymentContractType deletion proposal by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for EmploymentContractTypes","name":"EmploymentContractTypes"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"DeleteEmploymentContractTypeProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/deleteEmploymentContractTypes/{id}":{"get":{"description":"Get details of a specific EmploymentContractType deletion proposal by ID","operationId":"getDeleteEmploymentContractTypeProposal","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteEmploymentContractTypeProposal"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get EmploymentContractType deletion proposal","tags":["EmploymentContractTypes","Proposals"]}}}}
```

## List EmploymentContractType update proposals

> List all updateEmploymentContractTypes proposals. These are proposed changes to update existing EmploymentContractType records that may be automatically approved or require manual approval depending on system configuration.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for EmploymentContractTypes","name":"EmploymentContractTypes"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListUpdateEmploymentContractTypeProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UpdateEmploymentContractTypeProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"UpdateEmploymentContractTypeProposal":{"properties":{"code":{"type":"string"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/updateEmploymentContractTypes":{"get":{"description":"List all updateEmploymentContractTypes proposals. These are proposed changes to update existing EmploymentContractType records that may be automatically approved or require manual approval depending on system configuration.","operationId":"listUpdateEmploymentContractTypeProposal","parameters":[{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListUpdateEmploymentContractTypeProposalResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List EmploymentContractType update proposals","tags":["EmploymentContractTypes","Proposals"]}}}}
```

## Propose update of EmploymentContractTypes

> Create new proposals to update EmploymentContractType records. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable). The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for EmploymentContractTypes","name":"EmploymentContractTypes"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateUpdateEmploymentContractTypeProposalRequest":{"properties":{"code":{"description":"Omit this field to keep current value","type":"string"},"id":{"format":"uuid","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"},"UpdateEmploymentContractTypeProposal":{"properties":{"code":{"type":"string"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/updateEmploymentContractTypes":{"post":{"description":"Create new proposals to update EmploymentContractType records. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable). The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.","operationId":"createUpdateEmploymentContractTypeProposal","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateUpdateEmploymentContractTypeProposalRequest"},"maxItems":100,"minItems":1,"type":"array"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/UpdateEmploymentContractTypeProposal"},"type":"array"}}},"description":"Created successfully"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Propose update of EmploymentContractTypes","tags":["EmploymentContractTypes","Proposals"]}}}}
```

## Get EmploymentContractType update proposal

> Get details of a specific EmploymentContractType update proposal by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for EmploymentContractTypes","name":"EmploymentContractTypes"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"UpdateEmploymentContractTypeProposal":{"properties":{"code":{"type":"string"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/updateEmploymentContractTypes/{id}":{"get":{"description":"Get details of a specific EmploymentContractType update proposal by ID","operationId":"getUpdateEmploymentContractTypeProposal","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEmploymentContractTypeProposal"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get EmploymentContractType update proposal","tags":["EmploymentContractTypes","Proposals"]}}}}
```


# EmploymentContracts

Operations for EmploymentContracts

## List employmentContracts

> List employmentContracts\
> \
> \*\*Filter Syntax:\*\*\
> \- Filters use exact match only\
> \- Multiple filters are combined with AND logic\
> \- Filterable fields: contractTypeID, employeeID\
> \- Example: \`?contractTypeID=123e4567-e89b-12d3-a456-426614174000\&employeeID=123e4567-e89b-12d3-a456-426614174000\`

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Querying","name":"Querying"},{"description":"Operations for EmploymentContracts","name":"EmploymentContracts"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListEmploymentContractResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/EmploymentContract"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"EmploymentContract":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"contractTypeID":{"format":"uuid","type":"string"},"createdAt":{"format":"date-time","type":"string"},"employeeID":{"format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","activePeriod","employeeID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/employmentContracts":{"get":{"description":"List employmentContracts\n\n**Filter Syntax:**\n- Filters use exact match only\n- Multiple filters are combined with AND logic\n- Filterable fields: contractTypeID, employeeID\n- Example: `?contractTypeID=123e4567-e89b-12d3-a456-426614174000&employeeID=123e4567-e89b-12d3-a456-426614174000`","operationId":"listEmploymentContract","parameters":[{"description":"Filter by contractTypeID (exact match)","in":"query","name":"contractTypeID","schema":{"type":"string"}},{"description":"Filter by employeeID (exact match)","in":"query","name":"employeeID","schema":{"type":"string"}},{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListEmploymentContractResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List employmentContracts","tags":["EmploymentContracts","Querying"]}}}}
```

## Get EmploymentContract

> Get a single EmploymentContract by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Querying","name":"Querying"},{"description":"Operations for EmploymentContracts","name":"EmploymentContracts"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"EmploymentContract":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"contractTypeID":{"format":"uuid","type":"string"},"createdAt":{"format":"date-time","type":"string"},"employeeID":{"format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","activePeriod","employeeID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/employmentContracts/{id}":{"get":{"description":"Get a single EmploymentContract by ID","operationId":"getEmploymentContract","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmploymentContract"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get EmploymentContract","tags":["EmploymentContracts","Querying"]}}}}
```

## List EmploymentContract creation proposals

> List all createEmploymentContracts proposals. These are proposed changes to create new EmploymentContract records that may be automatically approved or require manual approval depending on system configuration.\
> \
> \*\*Filter Syntax:\*\*\
> \- Filters use exact match only\
> \- Multiple filters are combined with AND logic\
> \- Filterable fields: contractTypeID, employeeID\
> \- Example: \`?contractTypeID=123e4567-e89b-12d3-a456-426614174000\&employeeID=123e4567-e89b-12d3-a456-426614174000\`

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for EmploymentContracts","name":"EmploymentContracts"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListCreateEmploymentContractProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/CreateEmploymentContractProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"CreateEmploymentContractProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"contractTypeID":{"format":"uuid","type":"string"},"employeeID":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","activePeriod","employeeID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/createEmploymentContracts":{"get":{"description":"List all createEmploymentContracts proposals. These are proposed changes to create new EmploymentContract records that may be automatically approved or require manual approval depending on system configuration.\n\n**Filter Syntax:**\n- Filters use exact match only\n- Multiple filters are combined with AND logic\n- Filterable fields: contractTypeID, employeeID\n- Example: `?contractTypeID=123e4567-e89b-12d3-a456-426614174000&employeeID=123e4567-e89b-12d3-a456-426614174000`","operationId":"listCreateEmploymentContractProposal","parameters":[{"description":"Filter by contractTypeID (exact match)","in":"query","name":"contractTypeID","schema":{"type":"string"}},{"description":"Filter by employeeID (exact match)","in":"query","name":"employeeID","schema":{"type":"string"}},{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListCreateEmploymentContractProposalResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List EmploymentContract creation proposals","tags":["EmploymentContracts","Proposals"]}}}}
```

## Propose creation of EmploymentContracts

> Create new proposals to add EmploymentContract records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for EmploymentContracts","name":"EmploymentContracts"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateCreateEmploymentContractProposalRequest":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"contractTypeID":{"format":"uuid","type":"string"},"employeeID":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"}},"required":["repositoryID","activePeriod","employeeID"],"type":"object"},"CreateEmploymentContractProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"contractTypeID":{"format":"uuid","type":"string"},"employeeID":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","activePeriod","employeeID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/createEmploymentContracts":{"post":{"description":"Create new proposals to add EmploymentContract records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.","operationId":"createCreateEmploymentContractProposal","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateCreateEmploymentContractProposalRequest"},"maxItems":100,"minItems":1,"type":"array"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateEmploymentContractProposal"},"type":"array"}}},"description":"Created successfully"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Propose creation of EmploymentContracts","tags":["EmploymentContracts","Proposals"]}}}}
```

## Get EmploymentContract creation proposal

> Get details of a specific EmploymentContract creation proposal by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for EmploymentContracts","name":"EmploymentContracts"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateEmploymentContractProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"contractTypeID":{"format":"uuid","type":"string"},"employeeID":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","activePeriod","employeeID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/createEmploymentContracts/{id}":{"get":{"description":"Get details of a specific EmploymentContract creation proposal by ID","operationId":"getCreateEmploymentContractProposal","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateEmploymentContractProposal"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get EmploymentContract creation proposal","tags":["EmploymentContracts","Proposals"]}}}}
```

## List EmploymentContract deletion proposals

> List all deleteEmploymentContracts proposals. These are proposed changes to delete EmploymentContract records that may be automatically approved or require manual approval depending on system configuration.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for EmploymentContracts","name":"EmploymentContracts"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListDeleteEmploymentContractProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/DeleteEmploymentContractProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"DeleteEmploymentContractProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/deleteEmploymentContracts":{"get":{"description":"List all deleteEmploymentContracts proposals. These are proposed changes to delete EmploymentContract records that may be automatically approved or require manual approval depending on system configuration.","operationId":"listDeleteEmploymentContractProposal","parameters":[{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListDeleteEmploymentContractProposalResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List EmploymentContract deletion proposals","tags":["EmploymentContracts","Proposals"]}}}}
```

## Propose deletion of EmploymentContracts

> Create new proposals to delete EmploymentContract records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for EmploymentContracts","name":"EmploymentContracts"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateDeleteEmploymentContractProposalRequest":{"properties":{"id":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"},"DeleteEmploymentContractProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/deleteEmploymentContracts":{"post":{"description":"Create new proposals to delete EmploymentContract records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.","operationId":"createDeleteEmploymentContractProposal","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateDeleteEmploymentContractProposalRequest"},"maxItems":100,"minItems":1,"type":"array"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/DeleteEmploymentContractProposal"},"type":"array"}}},"description":"Created successfully"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Propose deletion of EmploymentContracts","tags":["EmploymentContracts","Proposals"]}}}}
```

## Get EmploymentContract deletion proposal

> Get details of a specific EmploymentContract deletion proposal by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for EmploymentContracts","name":"EmploymentContracts"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"DeleteEmploymentContractProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/deleteEmploymentContracts/{id}":{"get":{"description":"Get details of a specific EmploymentContract deletion proposal by ID","operationId":"getDeleteEmploymentContractProposal","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteEmploymentContractProposal"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get EmploymentContract deletion proposal","tags":["EmploymentContracts","Proposals"]}}}}
```

## List EmploymentContract update proposals

> List all updateEmploymentContracts proposals. These are proposed changes to update existing EmploymentContract records that may be automatically approved or require manual approval depending on system configuration.\
> \
> \*\*Filter Syntax:\*\*\
> \- Filters use exact match only\
> \- Multiple filters are combined with AND logic\
> \- Filterable fields: contractTypeID, employeeID\
> \- Example: \`?contractTypeID=123e4567-e89b-12d3-a456-426614174000\&employeeID=123e4567-e89b-12d3-a456-426614174000\`

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for EmploymentContracts","name":"EmploymentContracts"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListUpdateEmploymentContractProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UpdateEmploymentContractProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"UpdateEmploymentContractProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"contractTypeID":{"format":"uuid","type":"string"},"employeeID":{"format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/updateEmploymentContracts":{"get":{"description":"List all updateEmploymentContracts proposals. These are proposed changes to update existing EmploymentContract records that may be automatically approved or require manual approval depending on system configuration.\n\n**Filter Syntax:**\n- Filters use exact match only\n- Multiple filters are combined with AND logic\n- Filterable fields: contractTypeID, employeeID\n- Example: `?contractTypeID=123e4567-e89b-12d3-a456-426614174000&employeeID=123e4567-e89b-12d3-a456-426614174000`","operationId":"listUpdateEmploymentContractProposal","parameters":[{"description":"Filter by contractTypeID (exact match)","in":"query","name":"contractTypeID","schema":{"type":"string"}},{"description":"Filter by employeeID (exact match)","in":"query","name":"employeeID","schema":{"type":"string"}},{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListUpdateEmploymentContractProposalResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List EmploymentContract update proposals","tags":["EmploymentContracts","Proposals"]}}}}
```

## Propose update of EmploymentContracts

> Create new proposals to update EmploymentContract records. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable). The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for EmploymentContracts","name":"EmploymentContracts"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateUpdateEmploymentContractProposalRequest":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end) (omit to keep current value)","type":"string"},"contractTypeID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"employeeID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"},"UpdateEmploymentContractProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"contractTypeID":{"format":"uuid","type":"string"},"employeeID":{"format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/updateEmploymentContracts":{"post":{"description":"Create new proposals to update EmploymentContract records. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable). The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.","operationId":"createUpdateEmploymentContractProposal","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateUpdateEmploymentContractProposalRequest"},"maxItems":100,"minItems":1,"type":"array"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/UpdateEmploymentContractProposal"},"type":"array"}}},"description":"Created successfully"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Propose update of EmploymentContracts","tags":["EmploymentContracts","Proposals"]}}}}
```

## Get EmploymentContract update proposal

> Get details of a specific EmploymentContract update proposal by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for EmploymentContracts","name":"EmploymentContracts"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"UpdateEmploymentContractProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"contractTypeID":{"format":"uuid","type":"string"},"employeeID":{"format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/updateEmploymentContracts/{id}":{"get":{"description":"Get details of a specific EmploymentContract update proposal by ID","operationId":"getUpdateEmploymentContractProposal","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEmploymentContractProposal"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get EmploymentContract update proposal","tags":["EmploymentContracts","Proposals"]}}}}
```


# EmploymentRelationTypes

Operations for EmploymentRelationTypes

## List employmentRelationTypes

> List employmentRelationTypes

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Querying","name":"Querying"},{"description":"Operations for EmploymentRelationTypes","name":"EmploymentRelationTypes"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListEmploymentRelationTypeResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/EmploymentRelationType"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"EmploymentRelationType":{"properties":{"code":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","code","name"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/employmentRelationTypes":{"get":{"description":"List employmentRelationTypes","operationId":"listEmploymentRelationType","parameters":[{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListEmploymentRelationTypeResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List employmentRelationTypes","tags":["EmploymentRelationTypes","Querying"]}}}}
```

## Get EmploymentRelationType

> Get a single EmploymentRelationType by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Querying","name":"Querying"},{"description":"Operations for EmploymentRelationTypes","name":"EmploymentRelationTypes"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"EmploymentRelationType":{"properties":{"code":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","code","name"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/employmentRelationTypes/{id}":{"get":{"description":"Get a single EmploymentRelationType by ID","operationId":"getEmploymentRelationType","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmploymentRelationType"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get EmploymentRelationType","tags":["EmploymentRelationTypes","Querying"]}}}}
```

## List EmploymentRelationType creation proposals

> List all createEmploymentRelationTypes proposals. These are proposed changes to create new EmploymentRelationType records that may be automatically approved or require manual approval depending on system configuration.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for EmploymentRelationTypes","name":"EmploymentRelationTypes"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListCreateEmploymentRelationTypeProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/CreateEmploymentRelationTypeProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"CreateEmploymentRelationTypeProposal":{"properties":{"code":{"type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","code","name"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/createEmploymentRelationTypes":{"get":{"description":"List all createEmploymentRelationTypes proposals. These are proposed changes to create new EmploymentRelationType records that may be automatically approved or require manual approval depending on system configuration.","operationId":"listCreateEmploymentRelationTypeProposal","parameters":[{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListCreateEmploymentRelationTypeProposalResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List EmploymentRelationType creation proposals","tags":["EmploymentRelationTypes","Proposals"]}}}}
```

## Propose creation of EmploymentRelationTypes

> Create new proposals to add EmploymentRelationType records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for EmploymentRelationTypes","name":"EmploymentRelationTypes"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateCreateEmploymentRelationTypeProposalRequest":{"properties":{"code":{"type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["repositoryID","code","name"],"type":"object"},"CreateEmploymentRelationTypeProposal":{"properties":{"code":{"type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","code","name"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/createEmploymentRelationTypes":{"post":{"description":"Create new proposals to add EmploymentRelationType records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.","operationId":"createCreateEmploymentRelationTypeProposal","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateCreateEmploymentRelationTypeProposalRequest"},"maxItems":100,"minItems":1,"type":"array"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateEmploymentRelationTypeProposal"},"type":"array"}}},"description":"Created successfully"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Propose creation of EmploymentRelationTypes","tags":["EmploymentRelationTypes","Proposals"]}}}}
```

## Get EmploymentRelationType creation proposal

> Get details of a specific EmploymentRelationType creation proposal by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for EmploymentRelationTypes","name":"EmploymentRelationTypes"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateEmploymentRelationTypeProposal":{"properties":{"code":{"type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","code","name"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/createEmploymentRelationTypes/{id}":{"get":{"description":"Get details of a specific EmploymentRelationType creation proposal by ID","operationId":"getCreateEmploymentRelationTypeProposal","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateEmploymentRelationTypeProposal"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get EmploymentRelationType creation proposal","tags":["EmploymentRelationTypes","Proposals"]}}}}
```

## List EmploymentRelationType deletion proposals

> List all deleteEmploymentRelationTypes proposals. These are proposed changes to delete EmploymentRelationType records that may be automatically approved or require manual approval depending on system configuration.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for EmploymentRelationTypes","name":"EmploymentRelationTypes"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListDeleteEmploymentRelationTypeProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/DeleteEmploymentRelationTypeProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"DeleteEmploymentRelationTypeProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/deleteEmploymentRelationTypes":{"get":{"description":"List all deleteEmploymentRelationTypes proposals. These are proposed changes to delete EmploymentRelationType records that may be automatically approved or require manual approval depending on system configuration.","operationId":"listDeleteEmploymentRelationTypeProposal","parameters":[{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListDeleteEmploymentRelationTypeProposalResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List EmploymentRelationType deletion proposals","tags":["EmploymentRelationTypes","Proposals"]}}}}
```

## Propose deletion of EmploymentRelationTypes

> Create new proposals to delete EmploymentRelationType records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for EmploymentRelationTypes","name":"EmploymentRelationTypes"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateDeleteEmploymentRelationTypeProposalRequest":{"properties":{"id":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"},"DeleteEmploymentRelationTypeProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/deleteEmploymentRelationTypes":{"post":{"description":"Create new proposals to delete EmploymentRelationType records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.","operationId":"createDeleteEmploymentRelationTypeProposal","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateDeleteEmploymentRelationTypeProposalRequest"},"maxItems":100,"minItems":1,"type":"array"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/DeleteEmploymentRelationTypeProposal"},"type":"array"}}},"description":"Created successfully"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Propose deletion of EmploymentRelationTypes","tags":["EmploymentRelationTypes","Proposals"]}}}}
```

## Get EmploymentRelationType deletion proposal

> Get details of a specific EmploymentRelationType deletion proposal by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for EmploymentRelationTypes","name":"EmploymentRelationTypes"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"DeleteEmploymentRelationTypeProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/deleteEmploymentRelationTypes/{id}":{"get":{"description":"Get details of a specific EmploymentRelationType deletion proposal by ID","operationId":"getDeleteEmploymentRelationTypeProposal","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteEmploymentRelationTypeProposal"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get EmploymentRelationType deletion proposal","tags":["EmploymentRelationTypes","Proposals"]}}}}
```

## List EmploymentRelationType update proposals

> List all updateEmploymentRelationTypes proposals. These are proposed changes to update existing EmploymentRelationType records that may be automatically approved or require manual approval depending on system configuration.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for EmploymentRelationTypes","name":"EmploymentRelationTypes"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListUpdateEmploymentRelationTypeProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UpdateEmploymentRelationTypeProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"UpdateEmploymentRelationTypeProposal":{"properties":{"code":{"type":"string"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/updateEmploymentRelationTypes":{"get":{"description":"List all updateEmploymentRelationTypes proposals. These are proposed changes to update existing EmploymentRelationType records that may be automatically approved or require manual approval depending on system configuration.","operationId":"listUpdateEmploymentRelationTypeProposal","parameters":[{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListUpdateEmploymentRelationTypeProposalResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List EmploymentRelationType update proposals","tags":["EmploymentRelationTypes","Proposals"]}}}}
```

## Propose update of EmploymentRelationTypes

> Create new proposals to update EmploymentRelationType records. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable). The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for EmploymentRelationTypes","name":"EmploymentRelationTypes"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateUpdateEmploymentRelationTypeProposalRequest":{"properties":{"code":{"description":"Omit this field to keep current value","type":"string"},"id":{"format":"uuid","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"},"UpdateEmploymentRelationTypeProposal":{"properties":{"code":{"type":"string"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/updateEmploymentRelationTypes":{"post":{"description":"Create new proposals to update EmploymentRelationType records. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable). The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.","operationId":"createUpdateEmploymentRelationTypeProposal","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateUpdateEmploymentRelationTypeProposalRequest"},"maxItems":100,"minItems":1,"type":"array"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/UpdateEmploymentRelationTypeProposal"},"type":"array"}}},"description":"Created successfully"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Propose update of EmploymentRelationTypes","tags":["EmploymentRelationTypes","Proposals"]}}}}
```

## Get EmploymentRelationType update proposal

> Get details of a specific EmploymentRelationType update proposal by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for EmploymentRelationTypes","name":"EmploymentRelationTypes"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"UpdateEmploymentRelationTypeProposal":{"properties":{"code":{"type":"string"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/updateEmploymentRelationTypes/{id}":{"get":{"description":"Get details of a specific EmploymentRelationType update proposal by ID","operationId":"getUpdateEmploymentRelationTypeProposal","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEmploymentRelationTypeProposal"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get EmploymentRelationType update proposal","tags":["EmploymentRelationTypes","Proposals"]}}}}
```


# EmploymentRelations

Operations for EmploymentRelations

## List employmentRelations

> List employmentRelations\
> \
> \*\*Filter Syntax:\*\*\
> \- Filters use exact match only\
> \- Multiple filters are combined with AND logic\
> \- Filterable fields: toEmployeeID, fromEmployeeID, relationTypeID\
> \- Example: \`?toEmployeeID=123e4567-e89b-12d3-a456-426614174000\&fromEmployeeID=123e4567-e89b-12d3-a456-426614174000\`

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Querying","name":"Querying"},{"description":"Operations for EmploymentRelations","name":"EmploymentRelations"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListEmploymentRelationResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/EmploymentRelation"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"EmploymentRelation":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"createdAt":{"format":"date-time","type":"string"},"fromEmployeeID":{"format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"relationTypeID":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"toEmployeeID":{"format":"uuid","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","activePeriod","toEmployeeID","fromEmployeeID","relationTypeID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/employmentRelations":{"get":{"description":"List employmentRelations\n\n**Filter Syntax:**\n- Filters use exact match only\n- Multiple filters are combined with AND logic\n- Filterable fields: toEmployeeID, fromEmployeeID, relationTypeID\n- Example: `?toEmployeeID=123e4567-e89b-12d3-a456-426614174000&fromEmployeeID=123e4567-e89b-12d3-a456-426614174000`","operationId":"listEmploymentRelation","parameters":[{"description":"Filter by toEmployeeID (exact match)","in":"query","name":"toEmployeeID","schema":{"type":"string"}},{"description":"Filter by fromEmployeeID (exact match)","in":"query","name":"fromEmployeeID","schema":{"type":"string"}},{"description":"Filter by relationTypeID (exact match)","in":"query","name":"relationTypeID","schema":{"type":"string"}},{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListEmploymentRelationResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List employmentRelations","tags":["EmploymentRelations","Querying"]}}}}
```

## Get EmploymentRelation

> Get a single EmploymentRelation by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Querying","name":"Querying"},{"description":"Operations for EmploymentRelations","name":"EmploymentRelations"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"EmploymentRelation":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"createdAt":{"format":"date-time","type":"string"},"fromEmployeeID":{"format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"relationTypeID":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"toEmployeeID":{"format":"uuid","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","activePeriod","toEmployeeID","fromEmployeeID","relationTypeID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/employmentRelations/{id}":{"get":{"description":"Get a single EmploymentRelation by ID","operationId":"getEmploymentRelation","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmploymentRelation"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get EmploymentRelation","tags":["EmploymentRelations","Querying"]}}}}
```

## List EmploymentRelation creation proposals

> List all createEmploymentRelations proposals. These are proposed changes to create new EmploymentRelation records that may be automatically approved or require manual approval depending on system configuration.\
> \
> \*\*Filter Syntax:\*\*\
> \- Filters use exact match only\
> \- Multiple filters are combined with AND logic\
> \- Filterable fields: toEmployeeID, fromEmployeeID, relationTypeID\
> \- Example: \`?toEmployeeID=123e4567-e89b-12d3-a456-426614174000\&fromEmployeeID=123e4567-e89b-12d3-a456-426614174000\`

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for EmploymentRelations","name":"EmploymentRelations"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListCreateEmploymentRelationProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/CreateEmploymentRelationProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"CreateEmploymentRelationProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"fromEmployeeID":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"relationTypeID":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"},"toEmployeeID":{"format":"uuid","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","activePeriod","toEmployeeID","fromEmployeeID","relationTypeID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/createEmploymentRelations":{"get":{"description":"List all createEmploymentRelations proposals. These are proposed changes to create new EmploymentRelation records that may be automatically approved or require manual approval depending on system configuration.\n\n**Filter Syntax:**\n- Filters use exact match only\n- Multiple filters are combined with AND logic\n- Filterable fields: toEmployeeID, fromEmployeeID, relationTypeID\n- Example: `?toEmployeeID=123e4567-e89b-12d3-a456-426614174000&fromEmployeeID=123e4567-e89b-12d3-a456-426614174000`","operationId":"listCreateEmploymentRelationProposal","parameters":[{"description":"Filter by toEmployeeID (exact match)","in":"query","name":"toEmployeeID","schema":{"type":"string"}},{"description":"Filter by fromEmployeeID (exact match)","in":"query","name":"fromEmployeeID","schema":{"type":"string"}},{"description":"Filter by relationTypeID (exact match)","in":"query","name":"relationTypeID","schema":{"type":"string"}},{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListCreateEmploymentRelationProposalResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List EmploymentRelation creation proposals","tags":["EmploymentRelations","Proposals"]}}}}
```

## Propose creation of EmploymentRelations

> Create new proposals to add EmploymentRelation records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for EmploymentRelations","name":"EmploymentRelations"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateCreateEmploymentRelationProposalRequest":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"fromEmployeeID":{"format":"uuid","type":"string"},"relationTypeID":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"toEmployeeID":{"format":"uuid","type":"string"}},"required":["repositoryID","activePeriod","toEmployeeID","fromEmployeeID","relationTypeID"],"type":"object"},"CreateEmploymentRelationProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"fromEmployeeID":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"relationTypeID":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"},"toEmployeeID":{"format":"uuid","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","activePeriod","toEmployeeID","fromEmployeeID","relationTypeID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/createEmploymentRelations":{"post":{"description":"Create new proposals to add EmploymentRelation records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.","operationId":"createCreateEmploymentRelationProposal","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateCreateEmploymentRelationProposalRequest"},"maxItems":100,"minItems":1,"type":"array"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateEmploymentRelationProposal"},"type":"array"}}},"description":"Created successfully"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Propose creation of EmploymentRelations","tags":["EmploymentRelations","Proposals"]}}}}
```

## Get EmploymentRelation creation proposal

> Get details of a specific EmploymentRelation creation proposal by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for EmploymentRelations","name":"EmploymentRelations"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateEmploymentRelationProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"fromEmployeeID":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"relationTypeID":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"},"toEmployeeID":{"format":"uuid","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","activePeriod","toEmployeeID","fromEmployeeID","relationTypeID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/createEmploymentRelations/{id}":{"get":{"description":"Get details of a specific EmploymentRelation creation proposal by ID","operationId":"getCreateEmploymentRelationProposal","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateEmploymentRelationProposal"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get EmploymentRelation creation proposal","tags":["EmploymentRelations","Proposals"]}}}}
```

## List EmploymentRelation deletion proposals

> List all deleteEmploymentRelations proposals. These are proposed changes to delete EmploymentRelation records that may be automatically approved or require manual approval depending on system configuration.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for EmploymentRelations","name":"EmploymentRelations"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListDeleteEmploymentRelationProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/DeleteEmploymentRelationProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"DeleteEmploymentRelationProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/deleteEmploymentRelations":{"get":{"description":"List all deleteEmploymentRelations proposals. These are proposed changes to delete EmploymentRelation records that may be automatically approved or require manual approval depending on system configuration.","operationId":"listDeleteEmploymentRelationProposal","parameters":[{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListDeleteEmploymentRelationProposalResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List EmploymentRelation deletion proposals","tags":["EmploymentRelations","Proposals"]}}}}
```

## Propose deletion of EmploymentRelations

> Create new proposals to delete EmploymentRelation records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for EmploymentRelations","name":"EmploymentRelations"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateDeleteEmploymentRelationProposalRequest":{"properties":{"id":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"},"DeleteEmploymentRelationProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/deleteEmploymentRelations":{"post":{"description":"Create new proposals to delete EmploymentRelation records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.","operationId":"createDeleteEmploymentRelationProposal","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateDeleteEmploymentRelationProposalRequest"},"maxItems":100,"minItems":1,"type":"array"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/DeleteEmploymentRelationProposal"},"type":"array"}}},"description":"Created successfully"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Propose deletion of EmploymentRelations","tags":["EmploymentRelations","Proposals"]}}}}
```

## Get EmploymentRelation deletion proposal

> Get details of a specific EmploymentRelation deletion proposal by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for EmploymentRelations","name":"EmploymentRelations"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"DeleteEmploymentRelationProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/deleteEmploymentRelations/{id}":{"get":{"description":"Get details of a specific EmploymentRelation deletion proposal by ID","operationId":"getDeleteEmploymentRelationProposal","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteEmploymentRelationProposal"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get EmploymentRelation deletion proposal","tags":["EmploymentRelations","Proposals"]}}}}
```

## List EmploymentRelation update proposals

> List all updateEmploymentRelations proposals. These are proposed changes to update existing EmploymentRelation records that may be automatically approved or require manual approval depending on system configuration.\
> \
> \*\*Filter Syntax:\*\*\
> \- Filters use exact match only\
> \- Multiple filters are combined with AND logic\
> \- Filterable fields: toEmployeeID, fromEmployeeID, relationTypeID\
> \- Example: \`?toEmployeeID=123e4567-e89b-12d3-a456-426614174000\&fromEmployeeID=123e4567-e89b-12d3-a456-426614174000\`

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for EmploymentRelations","name":"EmploymentRelations"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListUpdateEmploymentRelationProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UpdateEmploymentRelationProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"UpdateEmploymentRelationProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"fromEmployeeID":{"format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"relationTypeID":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"toEmployeeID":{"format":"uuid","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/updateEmploymentRelations":{"get":{"description":"List all updateEmploymentRelations proposals. These are proposed changes to update existing EmploymentRelation records that may be automatically approved or require manual approval depending on system configuration.\n\n**Filter Syntax:**\n- Filters use exact match only\n- Multiple filters are combined with AND logic\n- Filterable fields: toEmployeeID, fromEmployeeID, relationTypeID\n- Example: `?toEmployeeID=123e4567-e89b-12d3-a456-426614174000&fromEmployeeID=123e4567-e89b-12d3-a456-426614174000`","operationId":"listUpdateEmploymentRelationProposal","parameters":[{"description":"Filter by toEmployeeID (exact match)","in":"query","name":"toEmployeeID","schema":{"type":"string"}},{"description":"Filter by fromEmployeeID (exact match)","in":"query","name":"fromEmployeeID","schema":{"type":"string"}},{"description":"Filter by relationTypeID (exact match)","in":"query","name":"relationTypeID","schema":{"type":"string"}},{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListUpdateEmploymentRelationProposalResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List EmploymentRelation update proposals","tags":["EmploymentRelations","Proposals"]}}}}
```

## Propose update of EmploymentRelations

> Create new proposals to update EmploymentRelation records. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable). The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for EmploymentRelations","name":"EmploymentRelations"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateUpdateEmploymentRelationProposalRequest":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end) (omit to keep current value)","type":"string"},"fromEmployeeID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"relationTypeID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"toEmployeeID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"},"UpdateEmploymentRelationProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"fromEmployeeID":{"format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"relationTypeID":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"toEmployeeID":{"format":"uuid","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/updateEmploymentRelations":{"post":{"description":"Create new proposals to update EmploymentRelation records. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable). The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.","operationId":"createUpdateEmploymentRelationProposal","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateUpdateEmploymentRelationProposalRequest"},"maxItems":100,"minItems":1,"type":"array"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/UpdateEmploymentRelationProposal"},"type":"array"}}},"description":"Created successfully"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Propose update of EmploymentRelations","tags":["EmploymentRelations","Proposals"]}}}}
```

## Get EmploymentRelation update proposal

> Get details of a specific EmploymentRelation update proposal by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for EmploymentRelations","name":"EmploymentRelations"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"UpdateEmploymentRelationProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"fromEmployeeID":{"format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"relationTypeID":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"toEmployeeID":{"format":"uuid","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/updateEmploymentRelations/{id}":{"get":{"description":"Get details of a specific EmploymentRelation update proposal by ID","operationId":"getUpdateEmploymentRelationProposal","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEmploymentRelationProposal"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get EmploymentRelation update proposal","tags":["EmploymentRelations","Proposals"]}}}}
```


# EntityDefinitions

Operations for EntityDefinitions

## List entityDefinitions

> List entityDefinitions

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Querying","name":"Querying"},{"description":"Operations for EntityDefinitions","name":"EntityDefinitions"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListEntityDefinitionResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/EntityDefinition"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"EntityDefinition":{"properties":{"code":{"type":"string"},"id":{"format":"uuid","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"}},"required":["id","code","name"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/entityDefinitions":{"get":{"description":"List entityDefinitions","operationId":"listEntityDefinition","parameters":[{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListEntityDefinitionResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List entityDefinitions","tags":["EntityDefinitions","Querying"]}}}}
```

## Get EntityDefinition

> Get a single EntityDefinition by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Querying","name":"Querying"},{"description":"Operations for EntityDefinitions","name":"EntityDefinitions"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"EntityDefinition":{"properties":{"code":{"type":"string"},"id":{"format":"uuid","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"}},"required":["id","code","name"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/entityDefinitions/{id}":{"get":{"description":"Get a single EntityDefinition by ID","operationId":"getEntityDefinition","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityDefinition"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get EntityDefinition","tags":["EntityDefinitions","Querying"]}}}}
```


# GroupingTypes

Operations for GroupingTypes

## List groupingTypes

> List groupingTypes

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Querying","name":"Querying"},{"description":"Operations for GroupingTypes","name":"GroupingTypes"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListGroupingTypeResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/GroupingType"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"GroupingType":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","code","name","activePeriod"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/groupingTypes":{"get":{"description":"List groupingTypes","operationId":"listGroupingType","parameters":[{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListGroupingTypeResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List groupingTypes","tags":["GroupingTypes","Querying"]}}}}
```

## Get GroupingType

> Get a single GroupingType by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Querying","name":"Querying"},{"description":"Operations for GroupingTypes","name":"GroupingTypes"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"GroupingType":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","code","name","activePeriod"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/groupingTypes/{id}":{"get":{"description":"Get a single GroupingType by ID","operationId":"getGroupingType","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupingType"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get GroupingType","tags":["GroupingTypes","Querying"]}}}}
```

## List GroupingType creation proposals

> List all createGroupingTypes proposals. These are proposed changes to create new GroupingType records that may be automatically approved or require manual approval depending on system configuration.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for GroupingTypes","name":"GroupingTypes"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListCreateGroupingTypeProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/CreateGroupingTypeProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"CreateGroupingTypeProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","code","name","activePeriod"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/createGroupingTypes":{"get":{"description":"List all createGroupingTypes proposals. These are proposed changes to create new GroupingType records that may be automatically approved or require manual approval depending on system configuration.","operationId":"listCreateGroupingTypeProposal","parameters":[{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListCreateGroupingTypeProposalResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List GroupingType creation proposals","tags":["GroupingTypes","Proposals"]}}}}
```

## Propose creation of GroupingTypes

> Create new proposals to add GroupingType records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for GroupingTypes","name":"GroupingTypes"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateCreateGroupingTypeProposalRequest":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["repositoryID","code","name","activePeriod"],"type":"object"},"CreateGroupingTypeProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","code","name","activePeriod"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/createGroupingTypes":{"post":{"description":"Create new proposals to add GroupingType records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.","operationId":"createCreateGroupingTypeProposal","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateCreateGroupingTypeProposalRequest"},"maxItems":100,"minItems":1,"type":"array"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateGroupingTypeProposal"},"type":"array"}}},"description":"Created successfully"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Propose creation of GroupingTypes","tags":["GroupingTypes","Proposals"]}}}}
```

## Get GroupingType creation proposal

> Get details of a specific GroupingType creation proposal by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for GroupingTypes","name":"GroupingTypes"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateGroupingTypeProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","code","name","activePeriod"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/createGroupingTypes/{id}":{"get":{"description":"Get details of a specific GroupingType creation proposal by ID","operationId":"getCreateGroupingTypeProposal","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateGroupingTypeProposal"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get GroupingType creation proposal","tags":["GroupingTypes","Proposals"]}}}}
```

## List GroupingType deletion proposals

> List all deleteGroupingTypes proposals. These are proposed changes to delete GroupingType records that may be automatically approved or require manual approval depending on system configuration.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for GroupingTypes","name":"GroupingTypes"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListDeleteGroupingTypeProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/DeleteGroupingTypeProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"DeleteGroupingTypeProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/deleteGroupingTypes":{"get":{"description":"List all deleteGroupingTypes proposals. These are proposed changes to delete GroupingType records that may be automatically approved or require manual approval depending on system configuration.","operationId":"listDeleteGroupingTypeProposal","parameters":[{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListDeleteGroupingTypeProposalResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List GroupingType deletion proposals","tags":["GroupingTypes","Proposals"]}}}}
```

## Propose deletion of GroupingTypes

> Create new proposals to delete GroupingType records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for GroupingTypes","name":"GroupingTypes"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateDeleteGroupingTypeProposalRequest":{"properties":{"id":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"},"DeleteGroupingTypeProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/deleteGroupingTypes":{"post":{"description":"Create new proposals to delete GroupingType records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.","operationId":"createDeleteGroupingTypeProposal","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateDeleteGroupingTypeProposalRequest"},"maxItems":100,"minItems":1,"type":"array"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/DeleteGroupingTypeProposal"},"type":"array"}}},"description":"Created successfully"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Propose deletion of GroupingTypes","tags":["GroupingTypes","Proposals"]}}}}
```

## Get GroupingType deletion proposal

> Get details of a specific GroupingType deletion proposal by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for GroupingTypes","name":"GroupingTypes"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"DeleteGroupingTypeProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/deleteGroupingTypes/{id}":{"get":{"description":"Get details of a specific GroupingType deletion proposal by ID","operationId":"getDeleteGroupingTypeProposal","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteGroupingTypeProposal"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get GroupingType deletion proposal","tags":["GroupingTypes","Proposals"]}}}}
```

## List GroupingType update proposals

> List all updateGroupingTypes proposals. These are proposed changes to update existing GroupingType records that may be automatically approved or require manual approval depending on system configuration.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for GroupingTypes","name":"GroupingTypes"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListUpdateGroupingTypeProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UpdateGroupingTypeProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"UpdateGroupingTypeProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/updateGroupingTypes":{"get":{"description":"List all updateGroupingTypes proposals. These are proposed changes to update existing GroupingType records that may be automatically approved or require manual approval depending on system configuration.","operationId":"listUpdateGroupingTypeProposal","parameters":[{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListUpdateGroupingTypeProposalResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List GroupingType update proposals","tags":["GroupingTypes","Proposals"]}}}}
```

## Propose update of GroupingTypes

> Create new proposals to update GroupingType records. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable). The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for GroupingTypes","name":"GroupingTypes"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateUpdateGroupingTypeProposalRequest":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end) (omit to keep current value)","type":"string"},"code":{"description":"Omit this field to keep current value","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed (omit to keep current value)","type":"object"},"id":{"format":"uuid","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"},"UpdateGroupingTypeProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/updateGroupingTypes":{"post":{"description":"Create new proposals to update GroupingType records. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable). The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.","operationId":"createUpdateGroupingTypeProposal","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateUpdateGroupingTypeProposalRequest"},"maxItems":100,"minItems":1,"type":"array"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/UpdateGroupingTypeProposal"},"type":"array"}}},"description":"Created successfully"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Propose update of GroupingTypes","tags":["GroupingTypes","Proposals"]}}}}
```

## Get GroupingType update proposal

> Get details of a specific GroupingType update proposal by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for GroupingTypes","name":"GroupingTypes"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"UpdateGroupingTypeProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/updateGroupingTypes/{id}":{"get":{"description":"Get details of a specific GroupingType update proposal by ID","operationId":"getUpdateGroupingTypeProposal","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateGroupingTypeProposal"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get GroupingType update proposal","tags":["GroupingTypes","Proposals"]}}}}
```


# Groupings

Operations for Groupings

## List groupings

> List groupings\
> \
> \*\*Filter Syntax:\*\*\
> \- Filters use exact match only\
> \- Multiple filters are combined with AND logic\
> \- Filterable fields: typeID, definedInGroupingID\
> \- Example: \`?typeID=123e4567-e89b-12d3-a456-426614174000\&definedInGroupingID=123e4567-e89b-12d3-a456-426614174000\`

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Querying","name":"Querying"},{"description":"Operations for Groupings","name":"Groupings"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListGroupingResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/Grouping"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"Grouping":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"definedInGroupingID":{"format":"uuid","type":"string"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"},"typeID":{"format":"uuid","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","code","name","activePeriod"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/groupings":{"get":{"description":"List groupings\n\n**Filter Syntax:**\n- Filters use exact match only\n- Multiple filters are combined with AND logic\n- Filterable fields: typeID, definedInGroupingID\n- Example: `?typeID=123e4567-e89b-12d3-a456-426614174000&definedInGroupingID=123e4567-e89b-12d3-a456-426614174000`","operationId":"listGrouping","parameters":[{"description":"Filter by typeID (exact match)","in":"query","name":"typeID","schema":{"type":"string"}},{"description":"Filter by definedInGroupingID (exact match)","in":"query","name":"definedInGroupingID","schema":{"type":"string"}},{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListGroupingResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List groupings","tags":["Groupings","Querying"]}}}}
```

## Get Grouping

> Get a single Grouping by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Querying","name":"Querying"},{"description":"Operations for Groupings","name":"Groupings"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"Grouping":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"definedInGroupingID":{"format":"uuid","type":"string"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"},"typeID":{"format":"uuid","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","code","name","activePeriod"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/groupings/{id}":{"get":{"description":"Get a single Grouping by ID","operationId":"getGrouping","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Grouping"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get Grouping","tags":["Groupings","Querying"]}}}}
```

## List Grouping creation proposals

> List all createGroupings proposals. These are proposed changes to create new Grouping records that may be automatically approved or require manual approval depending on system configuration.\
> \
> \*\*Filter Syntax:\*\*\
> \- Filters use exact match only\
> \- Multiple filters are combined with AND logic\
> \- Filterable fields: typeID, definedInGroupingID\
> \- Example: \`?typeID=123e4567-e89b-12d3-a456-426614174000\&definedInGroupingID=123e4567-e89b-12d3-a456-426614174000\`

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Groupings","name":"Groupings"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListCreateGroupingProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/CreateGroupingProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"CreateGroupingProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"definedInGroupingID":{"format":"uuid","type":"string"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"},"typeID":{"format":"uuid","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","code","name","activePeriod"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/createGroupings":{"get":{"description":"List all createGroupings proposals. These are proposed changes to create new Grouping records that may be automatically approved or require manual approval depending on system configuration.\n\n**Filter Syntax:**\n- Filters use exact match only\n- Multiple filters are combined with AND logic\n- Filterable fields: typeID, definedInGroupingID\n- Example: `?typeID=123e4567-e89b-12d3-a456-426614174000&definedInGroupingID=123e4567-e89b-12d3-a456-426614174000`","operationId":"listCreateGroupingProposal","parameters":[{"description":"Filter by typeID (exact match)","in":"query","name":"typeID","schema":{"type":"string"}},{"description":"Filter by definedInGroupingID (exact match)","in":"query","name":"definedInGroupingID","schema":{"type":"string"}},{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListCreateGroupingProposalResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List Grouping creation proposals","tags":["Groupings","Proposals"]}}}}
```

## Propose creation of Groupings

> Create new proposals to add Grouping records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Groupings","name":"Groupings"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateCreateGroupingProposalRequest":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"definedInGroupingID":{"format":"uuid","type":"string"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"},"typeID":{"format":"uuid","type":"string"}},"required":["repositoryID","code","name","activePeriod"],"type":"object"},"CreateGroupingProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"definedInGroupingID":{"format":"uuid","type":"string"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"},"typeID":{"format":"uuid","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","code","name","activePeriod"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/createGroupings":{"post":{"description":"Create new proposals to add Grouping records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.","operationId":"createCreateGroupingProposal","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateCreateGroupingProposalRequest"},"maxItems":100,"minItems":1,"type":"array"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateGroupingProposal"},"type":"array"}}},"description":"Created successfully"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Propose creation of Groupings","tags":["Groupings","Proposals"]}}}}
```

## Get Grouping creation proposal

> Get details of a specific Grouping creation proposal by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Groupings","name":"Groupings"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateGroupingProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"definedInGroupingID":{"format":"uuid","type":"string"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"},"typeID":{"format":"uuid","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","code","name","activePeriod"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/createGroupings/{id}":{"get":{"description":"Get details of a specific Grouping creation proposal by ID","operationId":"getCreateGroupingProposal","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateGroupingProposal"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get Grouping creation proposal","tags":["Groupings","Proposals"]}}}}
```

## List Grouping deletion proposals

> List all deleteGroupings proposals. These are proposed changes to delete Grouping records that may be automatically approved or require manual approval depending on system configuration.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Groupings","name":"Groupings"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListDeleteGroupingProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/DeleteGroupingProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"DeleteGroupingProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/deleteGroupings":{"get":{"description":"List all deleteGroupings proposals. These are proposed changes to delete Grouping records that may be automatically approved or require manual approval depending on system configuration.","operationId":"listDeleteGroupingProposal","parameters":[{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListDeleteGroupingProposalResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List Grouping deletion proposals","tags":["Groupings","Proposals"]}}}}
```

## Propose deletion of Groupings

> Create new proposals to delete Grouping records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Groupings","name":"Groupings"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateDeleteGroupingProposalRequest":{"properties":{"id":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"},"DeleteGroupingProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/deleteGroupings":{"post":{"description":"Create new proposals to delete Grouping records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.","operationId":"createDeleteGroupingProposal","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateDeleteGroupingProposalRequest"},"maxItems":100,"minItems":1,"type":"array"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/DeleteGroupingProposal"},"type":"array"}}},"description":"Created successfully"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Propose deletion of Groupings","tags":["Groupings","Proposals"]}}}}
```

## Get Grouping deletion proposal

> Get details of a specific Grouping deletion proposal by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Groupings","name":"Groupings"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"DeleteGroupingProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/deleteGroupings/{id}":{"get":{"description":"Get details of a specific Grouping deletion proposal by ID","operationId":"getDeleteGroupingProposal","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteGroupingProposal"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get Grouping deletion proposal","tags":["Groupings","Proposals"]}}}}
```

## List Grouping update proposals

> List all updateGroupings proposals. These are proposed changes to update existing Grouping records that may be automatically approved or require manual approval depending on system configuration.\
> \
> \*\*Filter Syntax:\*\*\
> \- Filters use exact match only\
> \- Multiple filters are combined with AND logic\
> \- Filterable fields: typeID, definedInGroupingID\
> \- Example: \`?typeID=123e4567-e89b-12d3-a456-426614174000\&definedInGroupingID=123e4567-e89b-12d3-a456-426614174000\`

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Groupings","name":"Groupings"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListUpdateGroupingProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UpdateGroupingProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"UpdateGroupingProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"definedInGroupingID":{"format":"uuid","type":"string"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"typeID":{"format":"uuid","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/updateGroupings":{"get":{"description":"List all updateGroupings proposals. These are proposed changes to update existing Grouping records that may be automatically approved or require manual approval depending on system configuration.\n\n**Filter Syntax:**\n- Filters use exact match only\n- Multiple filters are combined with AND logic\n- Filterable fields: typeID, definedInGroupingID\n- Example: `?typeID=123e4567-e89b-12d3-a456-426614174000&definedInGroupingID=123e4567-e89b-12d3-a456-426614174000`","operationId":"listUpdateGroupingProposal","parameters":[{"description":"Filter by typeID (exact match)","in":"query","name":"typeID","schema":{"type":"string"}},{"description":"Filter by definedInGroupingID (exact match)","in":"query","name":"definedInGroupingID","schema":{"type":"string"}},{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListUpdateGroupingProposalResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List Grouping update proposals","tags":["Groupings","Proposals"]}}}}
```

## Propose update of Groupings

> Create new proposals to update Grouping records. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable). The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Groupings","name":"Groupings"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateUpdateGroupingProposalRequest":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end) (omit to keep current value)","type":"string"},"code":{"description":"Omit this field to keep current value","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed (omit to keep current value)","type":"object"},"definedInGroupingID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"id":{"format":"uuid","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"repositoryID":{"format":"uuid","type":"string"},"typeID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"},"UpdateGroupingProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"definedInGroupingID":{"format":"uuid","type":"string"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"typeID":{"format":"uuid","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/updateGroupings":{"post":{"description":"Create new proposals to update Grouping records. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable). The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.","operationId":"createUpdateGroupingProposal","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateUpdateGroupingProposalRequest"},"maxItems":100,"minItems":1,"type":"array"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/UpdateGroupingProposal"},"type":"array"}}},"description":"Created successfully"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Propose update of Groupings","tags":["Groupings","Proposals"]}}}}
```

## Get Grouping update proposal

> Get details of a specific Grouping update proposal by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Groupings","name":"Groupings"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"UpdateGroupingProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"definedInGroupingID":{"format":"uuid","type":"string"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"typeID":{"format":"uuid","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/updateGroupings/{id}":{"get":{"description":"Get details of a specific Grouping update proposal by ID","operationId":"getUpdateGroupingProposal","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateGroupingProposal"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get Grouping update proposal","tags":["Groupings","Proposals"]}}}}
```


# MonitoringTraces

Operations for MonitoringTraces

## List monitoringTraces

> List monitoringTraces

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Querying","name":"Querying"},{"description":"Operations for MonitoringTraces","name":"MonitoringTraces"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListMonitoringTraceResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/MonitoringTrace"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"MonitoringTrace":{"properties":{"createdAt":{"format":"date-time","type":"string"},"executedAt":{"format":"date-time","type":"string"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestedAt":{"format":"date-time","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/monitoringTraces":{"get":{"description":"List monitoringTraces","operationId":"listMonitoringTrace","parameters":[{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListMonitoringTraceResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List monitoringTraces","tags":["MonitoringTraces","Querying"]}}}}
```

## Get MonitoringTrace

> Get a single MonitoringTrace by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Querying","name":"Querying"},{"description":"Operations for MonitoringTraces","name":"MonitoringTraces"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"MonitoringTrace":{"properties":{"createdAt":{"format":"date-time","type":"string"},"executedAt":{"format":"date-time","type":"string"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestedAt":{"format":"date-time","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/monitoringTraces/{id}":{"get":{"description":"Get a single MonitoringTrace by ID","operationId":"getMonitoringTrace","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MonitoringTrace"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get MonitoringTrace","tags":["MonitoringTraces","Querying"]}}}}
```

## List MonitoringTrace creation proposals

> List all createMonitoringTraces proposals. These are proposed changes to create new MonitoringTrace records that may be automatically approved or require manual approval depending on system configuration.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for MonitoringTraces","name":"MonitoringTraces"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListCreateMonitoringTraceProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/CreateMonitoringTraceProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"CreateMonitoringTraceProposal":{"properties":{"executedAt":{"format":"date-time","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"requestedAt":{"format":"date-time","type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/createMonitoringTraces":{"get":{"description":"List all createMonitoringTraces proposals. These are proposed changes to create new MonitoringTrace records that may be automatically approved or require manual approval depending on system configuration.","operationId":"listCreateMonitoringTraceProposal","parameters":[{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListCreateMonitoringTraceProposalResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List MonitoringTrace creation proposals","tags":["MonitoringTraces","Proposals"]}}}}
```

## Propose creation of MonitoringTraces

> Create new proposals to add MonitoringTrace records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for MonitoringTraces","name":"MonitoringTraces"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateCreateMonitoringTraceProposalRequest":{"properties":{"executedAt":{"format":"date-time","type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestedAt":{"format":"date-time","type":"string"}},"required":["repositoryID"],"type":"object"},"CreateMonitoringTraceProposal":{"properties":{"executedAt":{"format":"date-time","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"requestedAt":{"format":"date-time","type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/createMonitoringTraces":{"post":{"description":"Create new proposals to add MonitoringTrace records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.","operationId":"createCreateMonitoringTraceProposal","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateCreateMonitoringTraceProposalRequest"},"maxItems":100,"minItems":1,"type":"array"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateMonitoringTraceProposal"},"type":"array"}}},"description":"Created successfully"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Propose creation of MonitoringTraces","tags":["MonitoringTraces","Proposals"]}}}}
```

## Get MonitoringTrace creation proposal

> Get details of a specific MonitoringTrace creation proposal by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for MonitoringTraces","name":"MonitoringTraces"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateMonitoringTraceProposal":{"properties":{"executedAt":{"format":"date-time","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"requestedAt":{"format":"date-time","type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/createMonitoringTraces/{id}":{"get":{"description":"Get details of a specific MonitoringTrace creation proposal by ID","operationId":"getCreateMonitoringTraceProposal","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateMonitoringTraceProposal"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get MonitoringTrace creation proposal","tags":["MonitoringTraces","Proposals"]}}}}
```

## List MonitoringTrace deletion proposals

> List all deleteMonitoringTraces proposals. These are proposed changes to delete MonitoringTrace records that may be automatically approved or require manual approval depending on system configuration.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for MonitoringTraces","name":"MonitoringTraces"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListDeleteMonitoringTraceProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/DeleteMonitoringTraceProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"DeleteMonitoringTraceProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/deleteMonitoringTraces":{"get":{"description":"List all deleteMonitoringTraces proposals. These are proposed changes to delete MonitoringTrace records that may be automatically approved or require manual approval depending on system configuration.","operationId":"listDeleteMonitoringTraceProposal","parameters":[{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListDeleteMonitoringTraceProposalResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List MonitoringTrace deletion proposals","tags":["MonitoringTraces","Proposals"]}}}}
```

## Propose deletion of MonitoringTraces

> Create new proposals to delete MonitoringTrace records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for MonitoringTraces","name":"MonitoringTraces"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateDeleteMonitoringTraceProposalRequest":{"properties":{"id":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"},"DeleteMonitoringTraceProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/deleteMonitoringTraces":{"post":{"description":"Create new proposals to delete MonitoringTrace records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.","operationId":"createDeleteMonitoringTraceProposal","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateDeleteMonitoringTraceProposalRequest"},"maxItems":100,"minItems":1,"type":"array"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/DeleteMonitoringTraceProposal"},"type":"array"}}},"description":"Created successfully"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Propose deletion of MonitoringTraces","tags":["MonitoringTraces","Proposals"]}}}}
```

## Get MonitoringTrace deletion proposal

> Get details of a specific MonitoringTrace deletion proposal by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for MonitoringTraces","name":"MonitoringTraces"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"DeleteMonitoringTraceProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/deleteMonitoringTraces/{id}":{"get":{"description":"Get details of a specific MonitoringTrace deletion proposal by ID","operationId":"getDeleteMonitoringTraceProposal","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteMonitoringTraceProposal"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get MonitoringTrace deletion proposal","tags":["MonitoringTraces","Proposals"]}}}}
```

## List MonitoringTrace update proposals

> List all updateMonitoringTraces proposals. These are proposed changes to update existing MonitoringTrace records that may be automatically approved or require manual approval depending on system configuration.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for MonitoringTraces","name":"MonitoringTraces"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListUpdateMonitoringTraceProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UpdateMonitoringTraceProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"UpdateMonitoringTraceProposal":{"properties":{"executedAt":{"format":"date-time","type":"string"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"requestedAt":{"format":"date-time","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/updateMonitoringTraces":{"get":{"description":"List all updateMonitoringTraces proposals. These are proposed changes to update existing MonitoringTrace records that may be automatically approved or require manual approval depending on system configuration.","operationId":"listUpdateMonitoringTraceProposal","parameters":[{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListUpdateMonitoringTraceProposalResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List MonitoringTrace update proposals","tags":["MonitoringTraces","Proposals"]}}}}
```

## Propose update of MonitoringTraces

> Create new proposals to update MonitoringTrace records. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable). The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for MonitoringTraces","name":"MonitoringTraces"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateUpdateMonitoringTraceProposalRequest":{"properties":{"executedAt":{"description":"Omit this field to keep current value","format":"date-time","type":"string"},"id":{"format":"uuid","type":"string"},"remark":{"description":"Omit this field to keep current value","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestedAt":{"description":"Omit this field to keep current value","format":"date-time","type":"string"}},"required":["id","repositoryID"],"type":"object"},"UpdateMonitoringTraceProposal":{"properties":{"executedAt":{"format":"date-time","type":"string"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"requestedAt":{"format":"date-time","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/updateMonitoringTraces":{"post":{"description":"Create new proposals to update MonitoringTrace records. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable). The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.","operationId":"createUpdateMonitoringTraceProposal","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateUpdateMonitoringTraceProposalRequest"},"maxItems":100,"minItems":1,"type":"array"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/UpdateMonitoringTraceProposal"},"type":"array"}}},"description":"Created successfully"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Propose update of MonitoringTraces","tags":["MonitoringTraces","Proposals"]}}}}
```

## Get MonitoringTrace update proposal

> Get details of a specific MonitoringTrace update proposal by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for MonitoringTraces","name":"MonitoringTraces"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"UpdateMonitoringTraceProposal":{"properties":{"executedAt":{"format":"date-time","type":"string"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"requestedAt":{"format":"date-time","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/updateMonitoringTraces/{id}":{"get":{"description":"Get details of a specific MonitoringTrace update proposal by ID","operationId":"getUpdateMonitoringTraceProposal","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateMonitoringTraceProposal"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get MonitoringTrace update proposal","tags":["MonitoringTraces","Proposals"]}}}}
```


# PositionAssignments

Operations for PositionAssignments

## List positionAssignments

> List positionAssignments\
> \
> \*\*Filter Syntax:\*\*\
> \- Filters use exact match only\
> \- Multiple filters are combined with AND logic\
> \- Filterable fields: employeeID\
> \- Example: \`?employeeID=123e4567-e89b-12d3-a456-426614174000\`

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Querying","name":"Querying"},{"description":"Operations for PositionAssignments","name":"PositionAssignments"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListPositionAssignmentResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/PositionAssignment"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"PositionAssignment":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"createdAt":{"format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"employeeID":{"format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"tagIDs":{"items":{"format":"uuid","type":"string"},"type":"array"}},"required":["id","createdAt","lastModifiedAt","repositoryID","employeeID","activePeriod","tagIDs"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/positionAssignments":{"get":{"description":"List positionAssignments\n\n**Filter Syntax:**\n- Filters use exact match only\n- Multiple filters are combined with AND logic\n- Filterable fields: employeeID\n- Example: `?employeeID=123e4567-e89b-12d3-a456-426614174000`","operationId":"listPositionAssignment","parameters":[{"description":"Filter by employeeID (exact match)","in":"query","name":"employeeID","schema":{"type":"string"}},{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListPositionAssignmentResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List positionAssignments","tags":["PositionAssignments","Querying"]}}}}
```

## Get PositionAssignment

> Get a single PositionAssignment by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Querying","name":"Querying"},{"description":"Operations for PositionAssignments","name":"PositionAssignments"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"PositionAssignment":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"createdAt":{"format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"employeeID":{"format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"tagIDs":{"items":{"format":"uuid","type":"string"},"type":"array"}},"required":["id","createdAt","lastModifiedAt","repositoryID","employeeID","activePeriod","tagIDs"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/positionAssignments/{id}":{"get":{"description":"Get a single PositionAssignment by ID","operationId":"getPositionAssignment","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PositionAssignment"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get PositionAssignment","tags":["PositionAssignments","Querying"]}}}}
```

## List PositionAssignment creation proposals

> List all createPositionAssignments proposals. These are proposed changes to create new PositionAssignment records that may be automatically approved or require manual approval depending on system configuration.\
> \
> \*\*Filter Syntax:\*\*\
> \- Filters use exact match only\
> \- Multiple filters are combined with AND logic\
> \- Filterable fields: employeeID\
> \- Example: \`?employeeID=123e4567-e89b-12d3-a456-426614174000\`

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for PositionAssignments","name":"PositionAssignments"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListCreatePositionAssignmentProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/CreatePositionAssignmentProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"CreatePositionAssignmentProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"employeeID":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"},"tagIDs":{"items":{"format":"uuid","type":"string"},"type":"array"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","employeeID","activePeriod","tagIDs"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/createPositionAssignments":{"get":{"description":"List all createPositionAssignments proposals. These are proposed changes to create new PositionAssignment records that may be automatically approved or require manual approval depending on system configuration.\n\n**Filter Syntax:**\n- Filters use exact match only\n- Multiple filters are combined with AND logic\n- Filterable fields: employeeID\n- Example: `?employeeID=123e4567-e89b-12d3-a456-426614174000`","operationId":"listCreatePositionAssignmentProposal","parameters":[{"description":"Filter by employeeID (exact match)","in":"query","name":"employeeID","schema":{"type":"string"}},{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListCreatePositionAssignmentProposalResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List PositionAssignment creation proposals","tags":["PositionAssignments","Proposals"]}}}}
```

## Propose creation of PositionAssignments

> Create new proposals to add PositionAssignment records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for PositionAssignments","name":"PositionAssignments"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateCreatePositionAssignmentProposalRequest":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"employeeID":{"format":"uuid","type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"tagIDs":{"items":{"format":"uuid","type":"string"},"type":"array"}},"required":["repositoryID","employeeID","activePeriod","tagIDs"],"type":"object"},"CreatePositionAssignmentProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"employeeID":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"},"tagIDs":{"items":{"format":"uuid","type":"string"},"type":"array"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","employeeID","activePeriod","tagIDs"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/createPositionAssignments":{"post":{"description":"Create new proposals to add PositionAssignment records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.","operationId":"createCreatePositionAssignmentProposal","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateCreatePositionAssignmentProposalRequest"},"maxItems":100,"minItems":1,"type":"array"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreatePositionAssignmentProposal"},"type":"array"}}},"description":"Created successfully"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Propose creation of PositionAssignments","tags":["PositionAssignments","Proposals"]}}}}
```

## Get PositionAssignment creation proposal

> Get details of a specific PositionAssignment creation proposal by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for PositionAssignments","name":"PositionAssignments"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreatePositionAssignmentProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"employeeID":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"},"tagIDs":{"items":{"format":"uuid","type":"string"},"type":"array"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","employeeID","activePeriod","tagIDs"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/createPositionAssignments/{id}":{"get":{"description":"Get details of a specific PositionAssignment creation proposal by ID","operationId":"getCreatePositionAssignmentProposal","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePositionAssignmentProposal"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get PositionAssignment creation proposal","tags":["PositionAssignments","Proposals"]}}}}
```

## List PositionAssignment deletion proposals

> List all deletePositionAssignments proposals. These are proposed changes to delete PositionAssignment records that may be automatically approved or require manual approval depending on system configuration.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for PositionAssignments","name":"PositionAssignments"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListDeletePositionAssignmentProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/DeletePositionAssignmentProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"DeletePositionAssignmentProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/deletePositionAssignments":{"get":{"description":"List all deletePositionAssignments proposals. These are proposed changes to delete PositionAssignment records that may be automatically approved or require manual approval depending on system configuration.","operationId":"listDeletePositionAssignmentProposal","parameters":[{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListDeletePositionAssignmentProposalResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List PositionAssignment deletion proposals","tags":["PositionAssignments","Proposals"]}}}}
```

## Propose deletion of PositionAssignments

> Create new proposals to delete PositionAssignment records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for PositionAssignments","name":"PositionAssignments"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateDeletePositionAssignmentProposalRequest":{"properties":{"id":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"},"DeletePositionAssignmentProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/deletePositionAssignments":{"post":{"description":"Create new proposals to delete PositionAssignment records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.","operationId":"createDeletePositionAssignmentProposal","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateDeletePositionAssignmentProposalRequest"},"maxItems":100,"minItems":1,"type":"array"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/DeletePositionAssignmentProposal"},"type":"array"}}},"description":"Created successfully"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Propose deletion of PositionAssignments","tags":["PositionAssignments","Proposals"]}}}}
```

## Get PositionAssignment deletion proposal

> Get details of a specific PositionAssignment deletion proposal by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for PositionAssignments","name":"PositionAssignments"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"DeletePositionAssignmentProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/deletePositionAssignments/{id}":{"get":{"description":"Get details of a specific PositionAssignment deletion proposal by ID","operationId":"getDeletePositionAssignmentProposal","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeletePositionAssignmentProposal"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get PositionAssignment deletion proposal","tags":["PositionAssignments","Proposals"]}}}}
```

## List PositionAssignment update proposals

> List all updatePositionAssignments proposals. These are proposed changes to update existing PositionAssignment records that may be automatically approved or require manual approval depending on system configuration.\
> \
> \*\*Filter Syntax:\*\*\
> \- Filters use exact match only\
> \- Multiple filters are combined with AND logic\
> \- Filterable fields: employeeID\
> \- Example: \`?employeeID=123e4567-e89b-12d3-a456-426614174000\`

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for PositionAssignments","name":"PositionAssignments"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListUpdatePositionAssignmentProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UpdatePositionAssignmentProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"UpdatePositionAssignmentProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"employeeID":{"format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"tagIDs":{"items":{"format":"uuid","type":"string"},"type":"array"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/updatePositionAssignments":{"get":{"description":"List all updatePositionAssignments proposals. These are proposed changes to update existing PositionAssignment records that may be automatically approved or require manual approval depending on system configuration.\n\n**Filter Syntax:**\n- Filters use exact match only\n- Multiple filters are combined with AND logic\n- Filterable fields: employeeID\n- Example: `?employeeID=123e4567-e89b-12d3-a456-426614174000`","operationId":"listUpdatePositionAssignmentProposal","parameters":[{"description":"Filter by employeeID (exact match)","in":"query","name":"employeeID","schema":{"type":"string"}},{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListUpdatePositionAssignmentProposalResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List PositionAssignment update proposals","tags":["PositionAssignments","Proposals"]}}}}
```

## Propose update of PositionAssignments

> Create new proposals to update PositionAssignment records. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable). The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for PositionAssignments","name":"PositionAssignments"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateUpdatePositionAssignmentProposalRequest":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end) (omit to keep current value)","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed (omit to keep current value)","type":"object"},"employeeID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"remark":{"description":"Omit this field to keep current value","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"tagIDs":{"description":"Omit this field to keep current value","items":{"format":"uuid","type":"string"},"type":"array"}},"required":["id","repositoryID"],"type":"object"},"UpdatePositionAssignmentProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"employeeID":{"format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"tagIDs":{"items":{"format":"uuid","type":"string"},"type":"array"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/updatePositionAssignments":{"post":{"description":"Create new proposals to update PositionAssignment records. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable). The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.","operationId":"createUpdatePositionAssignmentProposal","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateUpdatePositionAssignmentProposalRequest"},"maxItems":100,"minItems":1,"type":"array"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/UpdatePositionAssignmentProposal"},"type":"array"}}},"description":"Created successfully"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Propose update of PositionAssignments","tags":["PositionAssignments","Proposals"]}}}}
```

## Get PositionAssignment update proposal

> Get details of a specific PositionAssignment update proposal by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for PositionAssignments","name":"PositionAssignments"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"UpdatePositionAssignmentProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"employeeID":{"format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"tagIDs":{"items":{"format":"uuid","type":"string"},"type":"array"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/updatePositionAssignments/{id}":{"get":{"description":"Get details of a specific PositionAssignment update proposal by ID","operationId":"getUpdatePositionAssignmentProposal","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePositionAssignmentProposal"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get PositionAssignment update proposal","tags":["PositionAssignments","Proposals"]}}}}
```


# RatingScaleLevelDescriptors

Operations for RatingScaleLevelDescriptors

## List ratingScaleLevelDescriptors

> List ratingScaleLevelDescriptors\
> \
> \*\*Filter Syntax:\*\*\
> \- Filters use exact match only\
> \- Multiple filters are combined with AND logic\
> \- Filterable fields: ratingScaleLevelID, skillDefinitionID\
> \- Example: \`?ratingScaleLevelID=123e4567-e89b-12d3-a456-426614174000\&skillDefinitionID=123e4567-e89b-12d3-a456-426614174000\`

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Querying","name":"Querying"},{"description":"Operations for RatingScaleLevelDescriptors","name":"RatingScaleLevelDescriptors"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListRatingScaleLevelDescriptorResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/RatingScaleLevelDescriptor"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"RatingScaleLevelDescriptor":{"properties":{"createdAt":{"format":"date-time","type":"string"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"ratingScaleLevelID":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"skillDefinitionID":{"format":"uuid","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","ratingScaleLevelID","skillDefinitionID","description"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/ratingScaleLevelDescriptors":{"get":{"description":"List ratingScaleLevelDescriptors\n\n**Filter Syntax:**\n- Filters use exact match only\n- Multiple filters are combined with AND logic\n- Filterable fields: ratingScaleLevelID, skillDefinitionID\n- Example: `?ratingScaleLevelID=123e4567-e89b-12d3-a456-426614174000&skillDefinitionID=123e4567-e89b-12d3-a456-426614174000`","operationId":"listRatingScaleLevelDescriptor","parameters":[{"description":"Filter by ratingScaleLevelID (exact match)","in":"query","name":"ratingScaleLevelID","schema":{"type":"string"}},{"description":"Filter by skillDefinitionID (exact match)","in":"query","name":"skillDefinitionID","schema":{"type":"string"}},{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListRatingScaleLevelDescriptorResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List ratingScaleLevelDescriptors","tags":["RatingScaleLevelDescriptors","Querying"]}}}}
```

## Get RatingScaleLevelDescriptor

> Get a single RatingScaleLevelDescriptor by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Querying","name":"Querying"},{"description":"Operations for RatingScaleLevelDescriptors","name":"RatingScaleLevelDescriptors"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"RatingScaleLevelDescriptor":{"properties":{"createdAt":{"format":"date-time","type":"string"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"ratingScaleLevelID":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"skillDefinitionID":{"format":"uuid","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","ratingScaleLevelID","skillDefinitionID","description"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/ratingScaleLevelDescriptors/{id}":{"get":{"description":"Get a single RatingScaleLevelDescriptor by ID","operationId":"getRatingScaleLevelDescriptor","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RatingScaleLevelDescriptor"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get RatingScaleLevelDescriptor","tags":["RatingScaleLevelDescriptors","Querying"]}}}}
```

## List RatingScaleLevelDescriptor creation proposals

> List all createRatingScaleLevelDescriptors proposals. These are proposed changes to create new RatingScaleLevelDescriptor records that may be automatically approved or require manual approval depending on system configuration.\
> \
> \*\*Filter Syntax:\*\*\
> \- Filters use exact match only\
> \- Multiple filters are combined with AND logic\
> \- Filterable fields: ratingScaleLevelID, skillDefinitionID\
> \- Example: \`?ratingScaleLevelID=123e4567-e89b-12d3-a456-426614174000\&skillDefinitionID=123e4567-e89b-12d3-a456-426614174000\`

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for RatingScaleLevelDescriptors","name":"RatingScaleLevelDescriptors"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListCreateRatingScaleLevelDescriptorProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/CreateRatingScaleLevelDescriptorProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"CreateRatingScaleLevelDescriptorProposal":{"properties":{"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"ratingScaleLevelID":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"skillDefinitionID":{"format":"uuid","type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","ratingScaleLevelID","skillDefinitionID","description"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/createRatingScaleLevelDescriptors":{"get":{"description":"List all createRatingScaleLevelDescriptors proposals. These are proposed changes to create new RatingScaleLevelDescriptor records that may be automatically approved or require manual approval depending on system configuration.\n\n**Filter Syntax:**\n- Filters use exact match only\n- Multiple filters are combined with AND logic\n- Filterable fields: ratingScaleLevelID, skillDefinitionID\n- Example: `?ratingScaleLevelID=123e4567-e89b-12d3-a456-426614174000&skillDefinitionID=123e4567-e89b-12d3-a456-426614174000`","operationId":"listCreateRatingScaleLevelDescriptorProposal","parameters":[{"description":"Filter by ratingScaleLevelID (exact match)","in":"query","name":"ratingScaleLevelID","schema":{"type":"string"}},{"description":"Filter by skillDefinitionID (exact match)","in":"query","name":"skillDefinitionID","schema":{"type":"string"}},{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListCreateRatingScaleLevelDescriptorProposalResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List RatingScaleLevelDescriptor creation proposals","tags":["RatingScaleLevelDescriptors","Proposals"]}}}}
```

## Propose creation of RatingScaleLevelDescriptors

> Create new proposals to add RatingScaleLevelDescriptor records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for RatingScaleLevelDescriptors","name":"RatingScaleLevelDescriptors"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateCreateRatingScaleLevelDescriptorProposalRequest":{"properties":{"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"ratingScaleLevelID":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"skillDefinitionID":{"format":"uuid","type":"string"}},"required":["repositoryID","ratingScaleLevelID","skillDefinitionID","description"],"type":"object"},"CreateRatingScaleLevelDescriptorProposal":{"properties":{"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"ratingScaleLevelID":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"skillDefinitionID":{"format":"uuid","type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","ratingScaleLevelID","skillDefinitionID","description"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/createRatingScaleLevelDescriptors":{"post":{"description":"Create new proposals to add RatingScaleLevelDescriptor records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.","operationId":"createCreateRatingScaleLevelDescriptorProposal","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateCreateRatingScaleLevelDescriptorProposalRequest"},"maxItems":100,"minItems":1,"type":"array"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateRatingScaleLevelDescriptorProposal"},"type":"array"}}},"description":"Created successfully"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Propose creation of RatingScaleLevelDescriptors","tags":["RatingScaleLevelDescriptors","Proposals"]}}}}
```

## Get RatingScaleLevelDescriptor creation proposal

> Get details of a specific RatingScaleLevelDescriptor creation proposal by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for RatingScaleLevelDescriptors","name":"RatingScaleLevelDescriptors"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateRatingScaleLevelDescriptorProposal":{"properties":{"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"ratingScaleLevelID":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"skillDefinitionID":{"format":"uuid","type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","ratingScaleLevelID","skillDefinitionID","description"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/createRatingScaleLevelDescriptors/{id}":{"get":{"description":"Get details of a specific RatingScaleLevelDescriptor creation proposal by ID","operationId":"getCreateRatingScaleLevelDescriptorProposal","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRatingScaleLevelDescriptorProposal"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get RatingScaleLevelDescriptor creation proposal","tags":["RatingScaleLevelDescriptors","Proposals"]}}}}
```

## List RatingScaleLevelDescriptor deletion proposals

> List all deleteRatingScaleLevelDescriptors proposals. These are proposed changes to delete RatingScaleLevelDescriptor records that may be automatically approved or require manual approval depending on system configuration.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for RatingScaleLevelDescriptors","name":"RatingScaleLevelDescriptors"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListDeleteRatingScaleLevelDescriptorProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/DeleteRatingScaleLevelDescriptorProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"DeleteRatingScaleLevelDescriptorProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/deleteRatingScaleLevelDescriptors":{"get":{"description":"List all deleteRatingScaleLevelDescriptors proposals. These are proposed changes to delete RatingScaleLevelDescriptor records that may be automatically approved or require manual approval depending on system configuration.","operationId":"listDeleteRatingScaleLevelDescriptorProposal","parameters":[{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListDeleteRatingScaleLevelDescriptorProposalResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List RatingScaleLevelDescriptor deletion proposals","tags":["RatingScaleLevelDescriptors","Proposals"]}}}}
```

## Propose deletion of RatingScaleLevelDescriptors

> Create new proposals to delete RatingScaleLevelDescriptor records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for RatingScaleLevelDescriptors","name":"RatingScaleLevelDescriptors"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateDeleteRatingScaleLevelDescriptorProposalRequest":{"properties":{"id":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"},"DeleteRatingScaleLevelDescriptorProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/deleteRatingScaleLevelDescriptors":{"post":{"description":"Create new proposals to delete RatingScaleLevelDescriptor records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.","operationId":"createDeleteRatingScaleLevelDescriptorProposal","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateDeleteRatingScaleLevelDescriptorProposalRequest"},"maxItems":100,"minItems":1,"type":"array"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/DeleteRatingScaleLevelDescriptorProposal"},"type":"array"}}},"description":"Created successfully"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Propose deletion of RatingScaleLevelDescriptors","tags":["RatingScaleLevelDescriptors","Proposals"]}}}}
```

## Get RatingScaleLevelDescriptor deletion proposal

> Get details of a specific RatingScaleLevelDescriptor deletion proposal by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for RatingScaleLevelDescriptors","name":"RatingScaleLevelDescriptors"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"DeleteRatingScaleLevelDescriptorProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/deleteRatingScaleLevelDescriptors/{id}":{"get":{"description":"Get details of a specific RatingScaleLevelDescriptor deletion proposal by ID","operationId":"getDeleteRatingScaleLevelDescriptorProposal","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteRatingScaleLevelDescriptorProposal"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get RatingScaleLevelDescriptor deletion proposal","tags":["RatingScaleLevelDescriptors","Proposals"]}}}}
```

## List RatingScaleLevelDescriptor update proposals

> List all updateRatingScaleLevelDescriptors proposals. These are proposed changes to update existing RatingScaleLevelDescriptor records that may be automatically approved or require manual approval depending on system configuration.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for RatingScaleLevelDescriptors","name":"RatingScaleLevelDescriptors"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListUpdateRatingScaleLevelDescriptorProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UpdateRatingScaleLevelDescriptorProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"UpdateRatingScaleLevelDescriptorProposal":{"properties":{"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/updateRatingScaleLevelDescriptors":{"get":{"description":"List all updateRatingScaleLevelDescriptors proposals. These are proposed changes to update existing RatingScaleLevelDescriptor records that may be automatically approved or require manual approval depending on system configuration.","operationId":"listUpdateRatingScaleLevelDescriptorProposal","parameters":[{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListUpdateRatingScaleLevelDescriptorProposalResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List RatingScaleLevelDescriptor update proposals","tags":["RatingScaleLevelDescriptors","Proposals"]}}}}
```

## Propose update of RatingScaleLevelDescriptors

> Create new proposals to update RatingScaleLevelDescriptor records. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable). The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for RatingScaleLevelDescriptors","name":"RatingScaleLevelDescriptors"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateUpdateRatingScaleLevelDescriptorProposalRequest":{"properties":{"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"id":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"},"UpdateRatingScaleLevelDescriptorProposal":{"properties":{"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/updateRatingScaleLevelDescriptors":{"post":{"description":"Create new proposals to update RatingScaleLevelDescriptor records. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable). The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.","operationId":"createUpdateRatingScaleLevelDescriptorProposal","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateUpdateRatingScaleLevelDescriptorProposalRequest"},"maxItems":100,"minItems":1,"type":"array"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/UpdateRatingScaleLevelDescriptorProposal"},"type":"array"}}},"description":"Created successfully"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Propose update of RatingScaleLevelDescriptors","tags":["RatingScaleLevelDescriptors","Proposals"]}}}}
```

## Get RatingScaleLevelDescriptor update proposal

> Get details of a specific RatingScaleLevelDescriptor update proposal by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for RatingScaleLevelDescriptors","name":"RatingScaleLevelDescriptors"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"UpdateRatingScaleLevelDescriptorProposal":{"properties":{"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/updateRatingScaleLevelDescriptors/{id}":{"get":{"description":"Get details of a specific RatingScaleLevelDescriptor update proposal by ID","operationId":"getUpdateRatingScaleLevelDescriptorProposal","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRatingScaleLevelDescriptorProposal"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get RatingScaleLevelDescriptor update proposal","tags":["RatingScaleLevelDescriptors","Proposals"]}}}}
```


# RatingScaleLevels

Operations for RatingScaleLevels

## List ratingScaleLevels

> List ratingScaleLevels\
> \
> \*\*Filter Syntax:\*\*\
> \- Filters use exact match only\
> \- Multiple filters are combined with AND logic\
> \- Filterable fields: ratingScaleID\
> \- Example: \`?ratingScaleID=123e4567-e89b-12d3-a456-426614174000\`

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Querying","name":"Querying"},{"description":"Operations for RatingScaleLevels","name":"RatingScaleLevels"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListRatingScaleLevelResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/RatingScaleLevel"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"RatingScaleLevel":{"properties":{"code":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"ratingScaleID":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"scoreOrder":{"format":"int32","type":"integer"}},"required":["id","createdAt","lastModifiedAt","repositoryID","ratingScaleID","scoreOrder","code","name"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/ratingScaleLevels":{"get":{"description":"List ratingScaleLevels\n\n**Filter Syntax:**\n- Filters use exact match only\n- Multiple filters are combined with AND logic\n- Filterable fields: ratingScaleID\n- Example: `?ratingScaleID=123e4567-e89b-12d3-a456-426614174000`","operationId":"listRatingScaleLevel","parameters":[{"description":"Filter by ratingScaleID (exact match)","in":"query","name":"ratingScaleID","schema":{"type":"string"}},{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListRatingScaleLevelResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List ratingScaleLevels","tags":["RatingScaleLevels","Querying"]}}}}
```

## Get RatingScaleLevel

> Get a single RatingScaleLevel by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Querying","name":"Querying"},{"description":"Operations for RatingScaleLevels","name":"RatingScaleLevels"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"RatingScaleLevel":{"properties":{"code":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"ratingScaleID":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"scoreOrder":{"format":"int32","type":"integer"}},"required":["id","createdAt","lastModifiedAt","repositoryID","ratingScaleID","scoreOrder","code","name"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/ratingScaleLevels/{id}":{"get":{"description":"Get a single RatingScaleLevel by ID","operationId":"getRatingScaleLevel","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RatingScaleLevel"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get RatingScaleLevel","tags":["RatingScaleLevels","Querying"]}}}}
```

## List RatingScaleLevel creation proposals

> List all createRatingScaleLevels proposals. These are proposed changes to create new RatingScaleLevel records that may be automatically approved or require manual approval depending on system configuration.\
> \
> \*\*Filter Syntax:\*\*\
> \- Filters use exact match only\
> \- Multiple filters are combined with AND logic\
> \- Filterable fields: ratingScaleID\
> \- Example: \`?ratingScaleID=123e4567-e89b-12d3-a456-426614174000\`

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for RatingScaleLevels","name":"RatingScaleLevels"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListCreateRatingScaleLevelProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/CreateRatingScaleLevelProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"CreateRatingScaleLevelProposal":{"properties":{"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"ratingScaleID":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"scoreOrder":{"format":"int32","type":"integer"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","ratingScaleID","scoreOrder","code","name"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/createRatingScaleLevels":{"get":{"description":"List all createRatingScaleLevels proposals. These are proposed changes to create new RatingScaleLevel records that may be automatically approved or require manual approval depending on system configuration.\n\n**Filter Syntax:**\n- Filters use exact match only\n- Multiple filters are combined with AND logic\n- Filterable fields: ratingScaleID\n- Example: `?ratingScaleID=123e4567-e89b-12d3-a456-426614174000`","operationId":"listCreateRatingScaleLevelProposal","parameters":[{"description":"Filter by ratingScaleID (exact match)","in":"query","name":"ratingScaleID","schema":{"type":"string"}},{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListCreateRatingScaleLevelProposalResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List RatingScaleLevel creation proposals","tags":["RatingScaleLevels","Proposals"]}}}}
```

## Propose creation of RatingScaleLevels

> Create new proposals to add RatingScaleLevel records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for RatingScaleLevels","name":"RatingScaleLevels"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateCreateRatingScaleLevelProposalRequest":{"properties":{"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"ratingScaleID":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"scoreOrder":{"format":"int32","type":"integer"}},"required":["repositoryID","ratingScaleID","scoreOrder","code","name"],"type":"object"},"CreateRatingScaleLevelProposal":{"properties":{"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"ratingScaleID":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"scoreOrder":{"format":"int32","type":"integer"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","ratingScaleID","scoreOrder","code","name"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/createRatingScaleLevels":{"post":{"description":"Create new proposals to add RatingScaleLevel records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.","operationId":"createCreateRatingScaleLevelProposal","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateCreateRatingScaleLevelProposalRequest"},"maxItems":100,"minItems":1,"type":"array"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateRatingScaleLevelProposal"},"type":"array"}}},"description":"Created successfully"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Propose creation of RatingScaleLevels","tags":["RatingScaleLevels","Proposals"]}}}}
```

## Get RatingScaleLevel creation proposal

> Get details of a specific RatingScaleLevel creation proposal by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for RatingScaleLevels","name":"RatingScaleLevels"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateRatingScaleLevelProposal":{"properties":{"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"ratingScaleID":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"scoreOrder":{"format":"int32","type":"integer"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","ratingScaleID","scoreOrder","code","name"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/createRatingScaleLevels/{id}":{"get":{"description":"Get details of a specific RatingScaleLevel creation proposal by ID","operationId":"getCreateRatingScaleLevelProposal","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRatingScaleLevelProposal"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get RatingScaleLevel creation proposal","tags":["RatingScaleLevels","Proposals"]}}}}
```

## List RatingScaleLevel deletion proposals

> List all deleteRatingScaleLevels proposals. These are proposed changes to delete RatingScaleLevel records that may be automatically approved or require manual approval depending on system configuration.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for RatingScaleLevels","name":"RatingScaleLevels"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListDeleteRatingScaleLevelProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/DeleteRatingScaleLevelProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"DeleteRatingScaleLevelProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/deleteRatingScaleLevels":{"get":{"description":"List all deleteRatingScaleLevels proposals. These are proposed changes to delete RatingScaleLevel records that may be automatically approved or require manual approval depending on system configuration.","operationId":"listDeleteRatingScaleLevelProposal","parameters":[{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListDeleteRatingScaleLevelProposalResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List RatingScaleLevel deletion proposals","tags":["RatingScaleLevels","Proposals"]}}}}
```

## Propose deletion of RatingScaleLevels

> Create new proposals to delete RatingScaleLevel records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for RatingScaleLevels","name":"RatingScaleLevels"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateDeleteRatingScaleLevelProposalRequest":{"properties":{"id":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"},"DeleteRatingScaleLevelProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/deleteRatingScaleLevels":{"post":{"description":"Create new proposals to delete RatingScaleLevel records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.","operationId":"createDeleteRatingScaleLevelProposal","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateDeleteRatingScaleLevelProposalRequest"},"maxItems":100,"minItems":1,"type":"array"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/DeleteRatingScaleLevelProposal"},"type":"array"}}},"description":"Created successfully"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Propose deletion of RatingScaleLevels","tags":["RatingScaleLevels","Proposals"]}}}}
```

## Get RatingScaleLevel deletion proposal

> Get details of a specific RatingScaleLevel deletion proposal by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for RatingScaleLevels","name":"RatingScaleLevels"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"DeleteRatingScaleLevelProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/deleteRatingScaleLevels/{id}":{"get":{"description":"Get details of a specific RatingScaleLevel deletion proposal by ID","operationId":"getDeleteRatingScaleLevelProposal","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteRatingScaleLevelProposal"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get RatingScaleLevel deletion proposal","tags":["RatingScaleLevels","Proposals"]}}}}
```

## List RatingScaleLevel update proposals

> List all updateRatingScaleLevels proposals. These are proposed changes to update existing RatingScaleLevel records that may be automatically approved or require manual approval depending on system configuration.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for RatingScaleLevels","name":"RatingScaleLevels"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListUpdateRatingScaleLevelProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UpdateRatingScaleLevelProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"UpdateRatingScaleLevelProposal":{"properties":{"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/updateRatingScaleLevels":{"get":{"description":"List all updateRatingScaleLevels proposals. These are proposed changes to update existing RatingScaleLevel records that may be automatically approved or require manual approval depending on system configuration.","operationId":"listUpdateRatingScaleLevelProposal","parameters":[{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListUpdateRatingScaleLevelProposalResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List RatingScaleLevel update proposals","tags":["RatingScaleLevels","Proposals"]}}}}
```

## Propose update of RatingScaleLevels

> Create new proposals to update RatingScaleLevel records. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable). The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for RatingScaleLevels","name":"RatingScaleLevels"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateUpdateRatingScaleLevelProposalRequest":{"properties":{"code":{"description":"Omit this field to keep current value","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed (omit to keep current value)","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"id":{"format":"uuid","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"},"UpdateRatingScaleLevelProposal":{"properties":{"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/updateRatingScaleLevels":{"post":{"description":"Create new proposals to update RatingScaleLevel records. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable). The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.","operationId":"createUpdateRatingScaleLevelProposal","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateUpdateRatingScaleLevelProposalRequest"},"maxItems":100,"minItems":1,"type":"array"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/UpdateRatingScaleLevelProposal"},"type":"array"}}},"description":"Created successfully"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Propose update of RatingScaleLevels","tags":["RatingScaleLevels","Proposals"]}}}}
```

## Get RatingScaleLevel update proposal

> Get details of a specific RatingScaleLevel update proposal by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for RatingScaleLevels","name":"RatingScaleLevels"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"UpdateRatingScaleLevelProposal":{"properties":{"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/updateRatingScaleLevels/{id}":{"get":{"description":"Get details of a specific RatingScaleLevel update proposal by ID","operationId":"getUpdateRatingScaleLevelProposal","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRatingScaleLevelProposal"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get RatingScaleLevel update proposal","tags":["RatingScaleLevels","Proposals"]}}}}
```


# RatingScales

Operations for RatingScales

## List ratingScales

> List ratingScales

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Querying","name":"Querying"},{"description":"Operations for RatingScales","name":"RatingScales"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListRatingScaleResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/RatingScale"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"RatingScale":{"properties":{"code":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","code","name"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/ratingScales":{"get":{"description":"List ratingScales","operationId":"listRatingScale","parameters":[{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListRatingScaleResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List ratingScales","tags":["RatingScales","Querying"]}}}}
```

## Get RatingScale

> Get a single RatingScale by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Querying","name":"Querying"},{"description":"Operations for RatingScales","name":"RatingScales"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"RatingScale":{"properties":{"code":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","code","name"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/ratingScales/{id}":{"get":{"description":"Get a single RatingScale by ID","operationId":"getRatingScale","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RatingScale"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get RatingScale","tags":["RatingScales","Querying"]}}}}
```

## List RatingScale creation proposals

> List all createRatingScales proposals. These are proposed changes to create new RatingScale records that may be automatically approved or require manual approval depending on system configuration.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for RatingScales","name":"RatingScales"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListCreateRatingScaleProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/CreateRatingScaleProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"CreateRatingScaleProposal":{"properties":{"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","code","name"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/createRatingScales":{"get":{"description":"List all createRatingScales proposals. These are proposed changes to create new RatingScale records that may be automatically approved or require manual approval depending on system configuration.","operationId":"listCreateRatingScaleProposal","parameters":[{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListCreateRatingScaleProposalResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List RatingScale creation proposals","tags":["RatingScales","Proposals"]}}}}
```

## Propose creation of RatingScales

> Create new proposals to add RatingScale records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for RatingScales","name":"RatingScales"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateCreateRatingScaleProposalRequest":{"properties":{"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["repositoryID","code","name"],"type":"object"},"CreateRatingScaleProposal":{"properties":{"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","code","name"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/createRatingScales":{"post":{"description":"Create new proposals to add RatingScale records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.","operationId":"createCreateRatingScaleProposal","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateCreateRatingScaleProposalRequest"},"maxItems":100,"minItems":1,"type":"array"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateRatingScaleProposal"},"type":"array"}}},"description":"Created successfully"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Propose creation of RatingScales","tags":["RatingScales","Proposals"]}}}}
```

## Get RatingScale creation proposal

> Get details of a specific RatingScale creation proposal by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for RatingScales","name":"RatingScales"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateRatingScaleProposal":{"properties":{"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","code","name"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/createRatingScales/{id}":{"get":{"description":"Get details of a specific RatingScale creation proposal by ID","operationId":"getCreateRatingScaleProposal","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRatingScaleProposal"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get RatingScale creation proposal","tags":["RatingScales","Proposals"]}}}}
```

## List RatingScale deletion proposals

> List all deleteRatingScales proposals. These are proposed changes to delete RatingScale records that may be automatically approved or require manual approval depending on system configuration.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for RatingScales","name":"RatingScales"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListDeleteRatingScaleProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/DeleteRatingScaleProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"DeleteRatingScaleProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/deleteRatingScales":{"get":{"description":"List all deleteRatingScales proposals. These are proposed changes to delete RatingScale records that may be automatically approved or require manual approval depending on system configuration.","operationId":"listDeleteRatingScaleProposal","parameters":[{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListDeleteRatingScaleProposalResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List RatingScale deletion proposals","tags":["RatingScales","Proposals"]}}}}
```

## Propose deletion of RatingScales

> Create new proposals to delete RatingScale records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for RatingScales","name":"RatingScales"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateDeleteRatingScaleProposalRequest":{"properties":{"id":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"},"DeleteRatingScaleProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/deleteRatingScales":{"post":{"description":"Create new proposals to delete RatingScale records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.","operationId":"createDeleteRatingScaleProposal","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateDeleteRatingScaleProposalRequest"},"maxItems":100,"minItems":1,"type":"array"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/DeleteRatingScaleProposal"},"type":"array"}}},"description":"Created successfully"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Propose deletion of RatingScales","tags":["RatingScales","Proposals"]}}}}
```

## Get RatingScale deletion proposal

> Get details of a specific RatingScale deletion proposal by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for RatingScales","name":"RatingScales"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"DeleteRatingScaleProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/deleteRatingScales/{id}":{"get":{"description":"Get details of a specific RatingScale deletion proposal by ID","operationId":"getDeleteRatingScaleProposal","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteRatingScaleProposal"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get RatingScale deletion proposal","tags":["RatingScales","Proposals"]}}}}
```

## List RatingScale update proposals

> List all updateRatingScales proposals. These are proposed changes to update existing RatingScale records that may be automatically approved or require manual approval depending on system configuration.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for RatingScales","name":"RatingScales"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListUpdateRatingScaleProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UpdateRatingScaleProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"UpdateRatingScaleProposal":{"properties":{"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/updateRatingScales":{"get":{"description":"List all updateRatingScales proposals. These are proposed changes to update existing RatingScale records that may be automatically approved or require manual approval depending on system configuration.","operationId":"listUpdateRatingScaleProposal","parameters":[{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListUpdateRatingScaleProposalResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List RatingScale update proposals","tags":["RatingScales","Proposals"]}}}}
```

## Propose update of RatingScales

> Create new proposals to update RatingScale records. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable). The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for RatingScales","name":"RatingScales"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateUpdateRatingScaleProposalRequest":{"properties":{"code":{"description":"Omit this field to keep current value","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed (omit to keep current value)","type":"object"},"id":{"format":"uuid","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"},"UpdateRatingScaleProposal":{"properties":{"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/updateRatingScales":{"post":{"description":"Create new proposals to update RatingScale records. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable). The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.","operationId":"createUpdateRatingScaleProposal","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateUpdateRatingScaleProposalRequest"},"maxItems":100,"minItems":1,"type":"array"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/UpdateRatingScaleProposal"},"type":"array"}}},"description":"Created successfully"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Propose update of RatingScales","tags":["RatingScales","Proposals"]}}}}
```

## Get RatingScale update proposal

> Get details of a specific RatingScale update proposal by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for RatingScales","name":"RatingScales"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"UpdateRatingScaleProposal":{"properties":{"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/updateRatingScales/{id}":{"get":{"description":"Get details of a specific RatingScale update proposal by ID","operationId":"getUpdateRatingScaleProposal","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRatingScaleProposal"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get RatingScale update proposal","tags":["RatingScales","Proposals"]}}}}
```


# Repositories

Operations for Repositories

## List repositories

> List repositories

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Querying","name":"Querying"},{"description":"Operations for Repositories","name":"Repositories"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListRepositoryResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/Repository"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"Repository":{"properties":{"code":{"type":"string"},"id":{"format":"uuid","type":"string"}},"required":["id","code"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/repositories":{"get":{"description":"List repositories","operationId":"listRepository","parameters":[{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListRepositoryResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List repositories","tags":["Repositories","Querying"]}}}}
```

## Get Repository

> Get a single Repository by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Querying","name":"Querying"},{"description":"Operations for Repositories","name":"Repositories"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"Repository":{"properties":{"code":{"type":"string"},"id":{"format":"uuid","type":"string"}},"required":["id","code"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/repositories/{id}":{"get":{"description":"Get a single Repository by ID","operationId":"getRepository","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Repository"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get Repository","tags":["Repositories","Querying"]}}}}
```


# SkillCategories

Operations for SkillCategories

## List skillCategories

> List skillCategories\
> \
> \*\*Filter Syntax:\*\*\
> \- Filters use exact match only\
> \- Multiple filters are combined with AND logic\
> \- Filterable fields: definedInCategoryID\
> \- Example: \`?definedInCategoryID=123e4567-e89b-12d3-a456-426614174000\`

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Querying","name":"Querying"},{"description":"Operations for SkillCategories","name":"SkillCategories"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListSkillCategoryResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/SkillCategory"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"SkillCategory":{"properties":{"code":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"definedInCategoryID":{"format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","name"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/skillCategories":{"get":{"description":"List skillCategories\n\n**Filter Syntax:**\n- Filters use exact match only\n- Multiple filters are combined with AND logic\n- Filterable fields: definedInCategoryID\n- Example: `?definedInCategoryID=123e4567-e89b-12d3-a456-426614174000`","operationId":"listSkillCategory","parameters":[{"description":"Filter by definedInCategoryID (exact match)","in":"query","name":"definedInCategoryID","schema":{"type":"string"}},{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListSkillCategoryResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List skillCategories","tags":["SkillCategories","Querying"]}}}}
```

## Get SkillCategory

> Get a single SkillCategory by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Querying","name":"Querying"},{"description":"Operations for SkillCategories","name":"SkillCategories"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"SkillCategory":{"properties":{"code":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"definedInCategoryID":{"format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","name"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/skillCategories/{id}":{"get":{"description":"Get a single SkillCategory by ID","operationId":"getSkillCategory","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SkillCategory"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get SkillCategory","tags":["SkillCategories","Querying"]}}}}
```

## List SkillCategory creation proposals

> List all createSkillCategories proposals. These are proposed changes to create new SkillCategory records that may be automatically approved or require manual approval depending on system configuration.\
> \
> \*\*Filter Syntax:\*\*\
> \- Filters use exact match only\
> \- Multiple filters are combined with AND logic\
> \- Filterable fields: definedInCategoryID\
> \- Example: \`?definedInCategoryID=123e4567-e89b-12d3-a456-426614174000\`

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for SkillCategories","name":"SkillCategories"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListCreateSkillCategoryProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/CreateSkillCategoryProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"CreateSkillCategoryProposal":{"properties":{"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"definedInCategoryID":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","name"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/createSkillCategories":{"get":{"description":"List all createSkillCategories proposals. These are proposed changes to create new SkillCategory records that may be automatically approved or require manual approval depending on system configuration.\n\n**Filter Syntax:**\n- Filters use exact match only\n- Multiple filters are combined with AND logic\n- Filterable fields: definedInCategoryID\n- Example: `?definedInCategoryID=123e4567-e89b-12d3-a456-426614174000`","operationId":"listCreateSkillCategoryProposal","parameters":[{"description":"Filter by definedInCategoryID (exact match)","in":"query","name":"definedInCategoryID","schema":{"type":"string"}},{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListCreateSkillCategoryProposalResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List SkillCategory creation proposals","tags":["SkillCategories","Proposals"]}}}}
```

## Propose creation of SkillCategories

> Create new proposals to add SkillCategory records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for SkillCategories","name":"SkillCategories"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateCreateSkillCategoryProposalRequest":{"properties":{"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"definedInCategoryID":{"format":"uuid","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["repositoryID","name"],"type":"object"},"CreateSkillCategoryProposal":{"properties":{"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"definedInCategoryID":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","name"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/createSkillCategories":{"post":{"description":"Create new proposals to add SkillCategory records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.","operationId":"createCreateSkillCategoryProposal","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateCreateSkillCategoryProposalRequest"},"maxItems":100,"minItems":1,"type":"array"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateSkillCategoryProposal"},"type":"array"}}},"description":"Created successfully"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Propose creation of SkillCategories","tags":["SkillCategories","Proposals"]}}}}
```

## Get SkillCategory creation proposal

> Get details of a specific SkillCategory creation proposal by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for SkillCategories","name":"SkillCategories"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateSkillCategoryProposal":{"properties":{"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"definedInCategoryID":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","name"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/createSkillCategories/{id}":{"get":{"description":"Get details of a specific SkillCategory creation proposal by ID","operationId":"getCreateSkillCategoryProposal","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSkillCategoryProposal"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get SkillCategory creation proposal","tags":["SkillCategories","Proposals"]}}}}
```

## List SkillCategory deletion proposals

> List all deleteSkillCategories proposals. These are proposed changes to delete SkillCategory records that may be automatically approved or require manual approval depending on system configuration.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for SkillCategories","name":"SkillCategories"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListDeleteSkillCategoryProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/DeleteSkillCategoryProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"DeleteSkillCategoryProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/deleteSkillCategories":{"get":{"description":"List all deleteSkillCategories proposals. These are proposed changes to delete SkillCategory records that may be automatically approved or require manual approval depending on system configuration.","operationId":"listDeleteSkillCategoryProposal","parameters":[{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListDeleteSkillCategoryProposalResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List SkillCategory deletion proposals","tags":["SkillCategories","Proposals"]}}}}
```

## Propose deletion of SkillCategories

> Create new proposals to delete SkillCategory records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for SkillCategories","name":"SkillCategories"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateDeleteSkillCategoryProposalRequest":{"properties":{"id":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"},"DeleteSkillCategoryProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/deleteSkillCategories":{"post":{"description":"Create new proposals to delete SkillCategory records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.","operationId":"createDeleteSkillCategoryProposal","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateDeleteSkillCategoryProposalRequest"},"maxItems":100,"minItems":1,"type":"array"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/DeleteSkillCategoryProposal"},"type":"array"}}},"description":"Created successfully"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Propose deletion of SkillCategories","tags":["SkillCategories","Proposals"]}}}}
```

## Get SkillCategory deletion proposal

> Get details of a specific SkillCategory deletion proposal by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for SkillCategories","name":"SkillCategories"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"DeleteSkillCategoryProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/deleteSkillCategories/{id}":{"get":{"description":"Get details of a specific SkillCategory deletion proposal by ID","operationId":"getDeleteSkillCategoryProposal","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteSkillCategoryProposal"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get SkillCategory deletion proposal","tags":["SkillCategories","Proposals"]}}}}
```

## List SkillCategory update proposals

> List all updateSkillCategories proposals. These are proposed changes to update existing SkillCategory records that may be automatically approved or require manual approval depending on system configuration.\
> \
> \*\*Filter Syntax:\*\*\
> \- Filters use exact match only\
> \- Multiple filters are combined with AND logic\
> \- Filterable fields: definedInCategoryID\
> \- Example: \`?definedInCategoryID=123e4567-e89b-12d3-a456-426614174000\`

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for SkillCategories","name":"SkillCategories"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListUpdateSkillCategoryProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UpdateSkillCategoryProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"UpdateSkillCategoryProposal":{"properties":{"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"definedInCategoryID":{"format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/updateSkillCategories":{"get":{"description":"List all updateSkillCategories proposals. These are proposed changes to update existing SkillCategory records that may be automatically approved or require manual approval depending on system configuration.\n\n**Filter Syntax:**\n- Filters use exact match only\n- Multiple filters are combined with AND logic\n- Filterable fields: definedInCategoryID\n- Example: `?definedInCategoryID=123e4567-e89b-12d3-a456-426614174000`","operationId":"listUpdateSkillCategoryProposal","parameters":[{"description":"Filter by definedInCategoryID (exact match)","in":"query","name":"definedInCategoryID","schema":{"type":"string"}},{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListUpdateSkillCategoryProposalResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List SkillCategory update proposals","tags":["SkillCategories","Proposals"]}}}}
```

## Propose update of SkillCategories

> Create new proposals to update SkillCategory records. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable). The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for SkillCategories","name":"SkillCategories"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateUpdateSkillCategoryProposalRequest":{"properties":{"code":{"description":"Omit this field to keep current value","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed (omit to keep current value)","type":"object"},"definedInCategoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"},"UpdateSkillCategoryProposal":{"properties":{"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"definedInCategoryID":{"format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/updateSkillCategories":{"post":{"description":"Create new proposals to update SkillCategory records. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable). The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.","operationId":"createUpdateSkillCategoryProposal","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateUpdateSkillCategoryProposalRequest"},"maxItems":100,"minItems":1,"type":"array"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/UpdateSkillCategoryProposal"},"type":"array"}}},"description":"Created successfully"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Propose update of SkillCategories","tags":["SkillCategories","Proposals"]}}}}
```

## Get SkillCategory update proposal

> Get details of a specific SkillCategory update proposal by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for SkillCategories","name":"SkillCategories"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"UpdateSkillCategoryProposal":{"properties":{"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"definedInCategoryID":{"format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/updateSkillCategories/{id}":{"get":{"description":"Get details of a specific SkillCategory update proposal by ID","operationId":"getUpdateSkillCategoryProposal","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSkillCategoryProposal"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get SkillCategory update proposal","tags":["SkillCategories","Proposals"]}}}}
```


# SkillDefinitionTypes

Operations for SkillDefinitionTypes

## List skillDefinitionTypes

> List skillDefinitionTypes

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Querying","name":"Querying"},{"description":"Operations for SkillDefinitionTypes","name":"SkillDefinitionTypes"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListSkillDefinitionTypeResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/SkillDefinitionType"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"SkillDefinitionType":{"properties":{"code":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","code","name"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/skillDefinitionTypes":{"get":{"description":"List skillDefinitionTypes","operationId":"listSkillDefinitionType","parameters":[{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListSkillDefinitionTypeResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List skillDefinitionTypes","tags":["SkillDefinitionTypes","Querying"]}}}}
```

## Get SkillDefinitionType

> Get a single SkillDefinitionType by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Querying","name":"Querying"},{"description":"Operations for SkillDefinitionTypes","name":"SkillDefinitionTypes"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"SkillDefinitionType":{"properties":{"code":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","code","name"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/skillDefinitionTypes/{id}":{"get":{"description":"Get a single SkillDefinitionType by ID","operationId":"getSkillDefinitionType","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SkillDefinitionType"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get SkillDefinitionType","tags":["SkillDefinitionTypes","Querying"]}}}}
```

## List SkillDefinitionType creation proposals

> List all createSkillDefinitionTypes proposals. These are proposed changes to create new SkillDefinitionType records that may be automatically approved or require manual approval depending on system configuration.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for SkillDefinitionTypes","name":"SkillDefinitionTypes"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListCreateSkillDefinitionTypeProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/CreateSkillDefinitionTypeProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"CreateSkillDefinitionTypeProposal":{"properties":{"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","code","name"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/createSkillDefinitionTypes":{"get":{"description":"List all createSkillDefinitionTypes proposals. These are proposed changes to create new SkillDefinitionType records that may be automatically approved or require manual approval depending on system configuration.","operationId":"listCreateSkillDefinitionTypeProposal","parameters":[{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListCreateSkillDefinitionTypeProposalResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List SkillDefinitionType creation proposals","tags":["SkillDefinitionTypes","Proposals"]}}}}
```

## Propose creation of SkillDefinitionTypes

> Create new proposals to add SkillDefinitionType records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for SkillDefinitionTypes","name":"SkillDefinitionTypes"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateCreateSkillDefinitionTypeProposalRequest":{"properties":{"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["repositoryID","code","name"],"type":"object"},"CreateSkillDefinitionTypeProposal":{"properties":{"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","code","name"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/createSkillDefinitionTypes":{"post":{"description":"Create new proposals to add SkillDefinitionType records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.","operationId":"createCreateSkillDefinitionTypeProposal","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateCreateSkillDefinitionTypeProposalRequest"},"maxItems":100,"minItems":1,"type":"array"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateSkillDefinitionTypeProposal"},"type":"array"}}},"description":"Created successfully"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Propose creation of SkillDefinitionTypes","tags":["SkillDefinitionTypes","Proposals"]}}}}
```

## Get SkillDefinitionType creation proposal

> Get details of a specific SkillDefinitionType creation proposal by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for SkillDefinitionTypes","name":"SkillDefinitionTypes"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateSkillDefinitionTypeProposal":{"properties":{"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","code","name"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/createSkillDefinitionTypes/{id}":{"get":{"description":"Get details of a specific SkillDefinitionType creation proposal by ID","operationId":"getCreateSkillDefinitionTypeProposal","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSkillDefinitionTypeProposal"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get SkillDefinitionType creation proposal","tags":["SkillDefinitionTypes","Proposals"]}}}}
```

## List SkillDefinitionType deletion proposals

> List all deleteSkillDefinitionTypes proposals. These are proposed changes to delete SkillDefinitionType records that may be automatically approved or require manual approval depending on system configuration.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for SkillDefinitionTypes","name":"SkillDefinitionTypes"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListDeleteSkillDefinitionTypeProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/DeleteSkillDefinitionTypeProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"DeleteSkillDefinitionTypeProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/deleteSkillDefinitionTypes":{"get":{"description":"List all deleteSkillDefinitionTypes proposals. These are proposed changes to delete SkillDefinitionType records that may be automatically approved or require manual approval depending on system configuration.","operationId":"listDeleteSkillDefinitionTypeProposal","parameters":[{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListDeleteSkillDefinitionTypeProposalResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List SkillDefinitionType deletion proposals","tags":["SkillDefinitionTypes","Proposals"]}}}}
```

## Propose deletion of SkillDefinitionTypes

> Create new proposals to delete SkillDefinitionType records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for SkillDefinitionTypes","name":"SkillDefinitionTypes"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateDeleteSkillDefinitionTypeProposalRequest":{"properties":{"id":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"},"DeleteSkillDefinitionTypeProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/deleteSkillDefinitionTypes":{"post":{"description":"Create new proposals to delete SkillDefinitionType records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.","operationId":"createDeleteSkillDefinitionTypeProposal","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateDeleteSkillDefinitionTypeProposalRequest"},"maxItems":100,"minItems":1,"type":"array"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/DeleteSkillDefinitionTypeProposal"},"type":"array"}}},"description":"Created successfully"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Propose deletion of SkillDefinitionTypes","tags":["SkillDefinitionTypes","Proposals"]}}}}
```

## Get SkillDefinitionType deletion proposal

> Get details of a specific SkillDefinitionType deletion proposal by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for SkillDefinitionTypes","name":"SkillDefinitionTypes"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"DeleteSkillDefinitionTypeProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/deleteSkillDefinitionTypes/{id}":{"get":{"description":"Get details of a specific SkillDefinitionType deletion proposal by ID","operationId":"getDeleteSkillDefinitionTypeProposal","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteSkillDefinitionTypeProposal"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get SkillDefinitionType deletion proposal","tags":["SkillDefinitionTypes","Proposals"]}}}}
```

## List SkillDefinitionType update proposals

> List all updateSkillDefinitionTypes proposals. These are proposed changes to update existing SkillDefinitionType records that may be automatically approved or require manual approval depending on system configuration.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for SkillDefinitionTypes","name":"SkillDefinitionTypes"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListUpdateSkillDefinitionTypeProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UpdateSkillDefinitionTypeProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"UpdateSkillDefinitionTypeProposal":{"properties":{"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/updateSkillDefinitionTypes":{"get":{"description":"List all updateSkillDefinitionTypes proposals. These are proposed changes to update existing SkillDefinitionType records that may be automatically approved or require manual approval depending on system configuration.","operationId":"listUpdateSkillDefinitionTypeProposal","parameters":[{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListUpdateSkillDefinitionTypeProposalResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List SkillDefinitionType update proposals","tags":["SkillDefinitionTypes","Proposals"]}}}}
```

## Propose update of SkillDefinitionTypes

> Create new proposals to update SkillDefinitionType records. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable). The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for SkillDefinitionTypes","name":"SkillDefinitionTypes"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateUpdateSkillDefinitionTypeProposalRequest":{"properties":{"code":{"description":"Omit this field to keep current value","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed (omit to keep current value)","type":"object"},"id":{"format":"uuid","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"},"UpdateSkillDefinitionTypeProposal":{"properties":{"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/updateSkillDefinitionTypes":{"post":{"description":"Create new proposals to update SkillDefinitionType records. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable). The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.","operationId":"createUpdateSkillDefinitionTypeProposal","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateUpdateSkillDefinitionTypeProposalRequest"},"maxItems":100,"minItems":1,"type":"array"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/UpdateSkillDefinitionTypeProposal"},"type":"array"}}},"description":"Created successfully"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Propose update of SkillDefinitionTypes","tags":["SkillDefinitionTypes","Proposals"]}}}}
```

## Get SkillDefinitionType update proposal

> Get details of a specific SkillDefinitionType update proposal by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for SkillDefinitionTypes","name":"SkillDefinitionTypes"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"UpdateSkillDefinitionTypeProposal":{"properties":{"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/updateSkillDefinitionTypes/{id}":{"get":{"description":"Get details of a specific SkillDefinitionType update proposal by ID","operationId":"getUpdateSkillDefinitionTypeProposal","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSkillDefinitionTypeProposal"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get SkillDefinitionType update proposal","tags":["SkillDefinitionTypes","Proposals"]}}}}
```


# SkillDefinitions

Operations for SkillDefinitions

## List skillDefinitions

> List skillDefinitions\
> \
> \*\*Filter Syntax:\*\*\
> \- Filters use exact match only\
> \- Multiple filters are combined with AND logic\
> \- Filterable fields: ratingScaleID, typeID\
> \- Example: \`?ratingScaleID=123e4567-e89b-12d3-a456-426614174000\&typeID=123e4567-e89b-12d3-a456-426614174000\`

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Querying","name":"Querying"},{"description":"Operations for SkillDefinitions","name":"SkillDefinitions"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListSkillDefinitionResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/SkillDefinition"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"SkillDefinition":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"ratingScaleID":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"tagIDs":{"items":{"format":"uuid","type":"string"},"type":"array"},"typeID":{"format":"uuid","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","name","ratingScaleID","activePeriod","tagIDs"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/skillDefinitions":{"get":{"description":"List skillDefinitions\n\n**Filter Syntax:**\n- Filters use exact match only\n- Multiple filters are combined with AND logic\n- Filterable fields: ratingScaleID, typeID\n- Example: `?ratingScaleID=123e4567-e89b-12d3-a456-426614174000&typeID=123e4567-e89b-12d3-a456-426614174000`","operationId":"listSkillDefinition","parameters":[{"description":"Filter by ratingScaleID (exact match)","in":"query","name":"ratingScaleID","schema":{"type":"string"}},{"description":"Filter by typeID (exact match)","in":"query","name":"typeID","schema":{"type":"string"}},{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListSkillDefinitionResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List skillDefinitions","tags":["SkillDefinitions","Querying"]}}}}
```

## Get SkillDefinition

> Get a single SkillDefinition by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Querying","name":"Querying"},{"description":"Operations for SkillDefinitions","name":"SkillDefinitions"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"SkillDefinition":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"ratingScaleID":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"tagIDs":{"items":{"format":"uuid","type":"string"},"type":"array"},"typeID":{"format":"uuid","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","name","ratingScaleID","activePeriod","tagIDs"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/skillDefinitions/{id}":{"get":{"description":"Get a single SkillDefinition by ID","operationId":"getSkillDefinition","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SkillDefinition"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get SkillDefinition","tags":["SkillDefinitions","Querying"]}}}}
```

## Upload document for SkillDefinition

> Upload a binary document that will be attached to the specified resource via a proposal.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Querying","name":"Querying"},{"description":"Operations for SkillDefinitions","name":"SkillDefinitions"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}},"schemas":{"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}}},"paths":{"/skillDefinitions/{id}/uploadDocument":{"post":{"description":"Upload a binary document that will be attached to the specified resource via a proposal.","operationId":"uploadDocumentForSkillDefinition","requestBody":{"content":{"multipart/form-data":{"schema":{"properties":{"file":{"format":"binary","type":"string"}},"required":["file"],"type":"object"}}},"required":true},"responses":{"202":{"description":"Upload accepted"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Upload document for SkillDefinition","tags":["SkillDefinitions","Querying"]}}}}
```

## List documents for SkillDefinition

> List documents for the SkillDefinition resource

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Querying","name":"Querying"},{"description":"Operations for SkillDefinitions","name":"SkillDefinitions"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"Document":{"properties":{"contentType":{"description":"MIME type of the file","type":"string"},"downloadUrl":{"type":"string"},"filename":{"description":"Name of the file","type":"string"},"size":{"description":"Size of the file in bytes","type":"integer"}},"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/skillDefinitions/{id}/documents":{"get":{"description":"List documents for the SkillDefinition resource","operationId":"listDocumentsForSkillDefinition","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Document"},"type":"array"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List documents for SkillDefinition","tags":["SkillDefinitions","Querying"]}}}}
```

## List SkillDefinition creation proposals

> List all createSkillDefinitions proposals. These are proposed changes to create new SkillDefinition records that may be automatically approved or require manual approval depending on system configuration.\
> \
> \*\*Filter Syntax:\*\*\
> \- Filters use exact match only\
> \- Multiple filters are combined with AND logic\
> \- Filterable fields: ratingScaleID, typeID\
> \- Example: \`?ratingScaleID=123e4567-e89b-12d3-a456-426614174000\&typeID=123e4567-e89b-12d3-a456-426614174000\`

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for SkillDefinitions","name":"SkillDefinitions"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListCreateSkillDefinitionProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/CreateSkillDefinitionProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"CreateSkillDefinitionProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"ratingScaleID":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"},"tagIDs":{"items":{"format":"uuid","type":"string"},"type":"array"},"typeID":{"format":"uuid","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","name","ratingScaleID","activePeriod","tagIDs"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/createSkillDefinitions":{"get":{"description":"List all createSkillDefinitions proposals. These are proposed changes to create new SkillDefinition records that may be automatically approved or require manual approval depending on system configuration.\n\n**Filter Syntax:**\n- Filters use exact match only\n- Multiple filters are combined with AND logic\n- Filterable fields: ratingScaleID, typeID\n- Example: `?ratingScaleID=123e4567-e89b-12d3-a456-426614174000&typeID=123e4567-e89b-12d3-a456-426614174000`","operationId":"listCreateSkillDefinitionProposal","parameters":[{"description":"Filter by ratingScaleID (exact match)","in":"query","name":"ratingScaleID","schema":{"type":"string"}},{"description":"Filter by typeID (exact match)","in":"query","name":"typeID","schema":{"type":"string"}},{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListCreateSkillDefinitionProposalResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List SkillDefinition creation proposals","tags":["SkillDefinitions","Proposals"]}}}}
```

## Propose creation of SkillDefinitions

> Create new proposals to add SkillDefinition records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for SkillDefinitions","name":"SkillDefinitions"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateCreateSkillDefinitionProposalRequest":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"ratingScaleID":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"tagIDs":{"items":{"format":"uuid","type":"string"},"type":"array"},"typeID":{"format":"uuid","type":"string"}},"required":["repositoryID","name","ratingScaleID","activePeriod","tagIDs"],"type":"object"},"CreateSkillDefinitionProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"ratingScaleID":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"},"tagIDs":{"items":{"format":"uuid","type":"string"},"type":"array"},"typeID":{"format":"uuid","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","name","ratingScaleID","activePeriod","tagIDs"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/createSkillDefinitions":{"post":{"description":"Create new proposals to add SkillDefinition records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.","operationId":"createCreateSkillDefinitionProposal","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateCreateSkillDefinitionProposalRequest"},"maxItems":100,"minItems":1,"type":"array"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateSkillDefinitionProposal"},"type":"array"}}},"description":"Created successfully"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Propose creation of SkillDefinitions","tags":["SkillDefinitions","Proposals"]}}}}
```

## Get SkillDefinition creation proposal

> Get details of a specific SkillDefinition creation proposal by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for SkillDefinitions","name":"SkillDefinitions"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateSkillDefinitionProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"ratingScaleID":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"},"tagIDs":{"items":{"format":"uuid","type":"string"},"type":"array"},"typeID":{"format":"uuid","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","name","ratingScaleID","activePeriod","tagIDs"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/createSkillDefinitions/{id}":{"get":{"description":"Get details of a specific SkillDefinition creation proposal by ID","operationId":"getCreateSkillDefinitionProposal","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSkillDefinitionProposal"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get SkillDefinition creation proposal","tags":["SkillDefinitions","Proposals"]}}}}
```

## List SkillDefinition deletion proposals

> List all deleteSkillDefinitions proposals. These are proposed changes to delete SkillDefinition records that may be automatically approved or require manual approval depending on system configuration.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for SkillDefinitions","name":"SkillDefinitions"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListDeleteSkillDefinitionProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/DeleteSkillDefinitionProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"DeleteSkillDefinitionProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/deleteSkillDefinitions":{"get":{"description":"List all deleteSkillDefinitions proposals. These are proposed changes to delete SkillDefinition records that may be automatically approved or require manual approval depending on system configuration.","operationId":"listDeleteSkillDefinitionProposal","parameters":[{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListDeleteSkillDefinitionProposalResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List SkillDefinition deletion proposals","tags":["SkillDefinitions","Proposals"]}}}}
```

## Propose deletion of SkillDefinitions

> Create new proposals to delete SkillDefinition records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for SkillDefinitions","name":"SkillDefinitions"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateDeleteSkillDefinitionProposalRequest":{"properties":{"id":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"},"DeleteSkillDefinitionProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/deleteSkillDefinitions":{"post":{"description":"Create new proposals to delete SkillDefinition records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.","operationId":"createDeleteSkillDefinitionProposal","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateDeleteSkillDefinitionProposalRequest"},"maxItems":100,"minItems":1,"type":"array"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/DeleteSkillDefinitionProposal"},"type":"array"}}},"description":"Created successfully"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Propose deletion of SkillDefinitions","tags":["SkillDefinitions","Proposals"]}}}}
```

## Get SkillDefinition deletion proposal

> Get details of a specific SkillDefinition deletion proposal by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for SkillDefinitions","name":"SkillDefinitions"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"DeleteSkillDefinitionProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/deleteSkillDefinitions/{id}":{"get":{"description":"Get details of a specific SkillDefinition deletion proposal by ID","operationId":"getDeleteSkillDefinitionProposal","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteSkillDefinitionProposal"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get SkillDefinition deletion proposal","tags":["SkillDefinitions","Proposals"]}}}}
```

## List SkillDefinition update proposals

> List all updateSkillDefinitions proposals. These are proposed changes to update existing SkillDefinition records that may be automatically approved or require manual approval depending on system configuration.\
> \
> \*\*Filter Syntax:\*\*\
> \- Filters use exact match only\
> \- Multiple filters are combined with AND logic\
> \- Filterable fields: ratingScaleID, typeID\
> \- Example: \`?ratingScaleID=123e4567-e89b-12d3-a456-426614174000\&typeID=123e4567-e89b-12d3-a456-426614174000\`

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for SkillDefinitions","name":"SkillDefinitions"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListUpdateSkillDefinitionProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UpdateSkillDefinitionProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"UpdateSkillDefinitionProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"ratingScaleID":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"tagIDs":{"items":{"format":"uuid","type":"string"},"type":"array"},"typeID":{"format":"uuid","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/updateSkillDefinitions":{"get":{"description":"List all updateSkillDefinitions proposals. These are proposed changes to update existing SkillDefinition records that may be automatically approved or require manual approval depending on system configuration.\n\n**Filter Syntax:**\n- Filters use exact match only\n- Multiple filters are combined with AND logic\n- Filterable fields: ratingScaleID, typeID\n- Example: `?ratingScaleID=123e4567-e89b-12d3-a456-426614174000&typeID=123e4567-e89b-12d3-a456-426614174000`","operationId":"listUpdateSkillDefinitionProposal","parameters":[{"description":"Filter by ratingScaleID (exact match)","in":"query","name":"ratingScaleID","schema":{"type":"string"}},{"description":"Filter by typeID (exact match)","in":"query","name":"typeID","schema":{"type":"string"}},{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListUpdateSkillDefinitionProposalResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List SkillDefinition update proposals","tags":["SkillDefinitions","Proposals"]}}}}
```

## Propose update of SkillDefinitions

> Create new proposals to update SkillDefinition records. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable). The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for SkillDefinitions","name":"SkillDefinitions"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateUpdateSkillDefinitionProposalRequest":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end) (omit to keep current value)","type":"string"},"code":{"description":"Omit this field to keep current value","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed (omit to keep current value)","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"id":{"format":"uuid","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"ratingScaleID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"tagIDs":{"description":"Omit this field to keep current value","items":{"format":"uuid","type":"string"},"type":"array"},"typeID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"},"UpdateSkillDefinitionProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"ratingScaleID":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"tagIDs":{"items":{"format":"uuid","type":"string"},"type":"array"},"typeID":{"format":"uuid","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/updateSkillDefinitions":{"post":{"description":"Create new proposals to update SkillDefinition records. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable). The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.","operationId":"createUpdateSkillDefinitionProposal","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateUpdateSkillDefinitionProposalRequest"},"maxItems":100,"minItems":1,"type":"array"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/UpdateSkillDefinitionProposal"},"type":"array"}}},"description":"Created successfully"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Propose update of SkillDefinitions","tags":["SkillDefinitions","Proposals"]}}}}
```

## Get SkillDefinition update proposal

> Get details of a specific SkillDefinition update proposal by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for SkillDefinitions","name":"SkillDefinitions"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"UpdateSkillDefinitionProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"ratingScaleID":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"tagIDs":{"items":{"format":"uuid","type":"string"},"type":"array"},"typeID":{"format":"uuid","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/updateSkillDefinitions/{id}":{"get":{"description":"Get details of a specific SkillDefinition update proposal by ID","operationId":"getUpdateSkillDefinitionProposal","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSkillDefinitionProposal"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get SkillDefinition update proposal","tags":["SkillDefinitions","Proposals"]}}}}
```


# SkillPlannings

Operations for SkillPlannings

## List skillPlannings

> List skillPlannings\
> \
> \*\*Filter Syntax:\*\*\
> \- Filters use exact match only\
> \- Multiple filters are combined with AND logic\
> \- Filterable fields: employeeID, typeOfProofID, skillDefinitionID\
> \- Example: \`?employeeID=123e4567-e89b-12d3-a456-426614174000\&typeOfProofID=123e4567-e89b-12d3-a456-426614174000\`

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Querying","name":"Querying"},{"description":"Operations for SkillPlannings","name":"SkillPlannings"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListSkillPlanningResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/SkillPlanning"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"SkillPlanning":{"properties":{"closeDate":{"format":"date","type":"string"},"createdAt":{"format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"deadlineDate":{"format":"date","type":"string"},"employeeID":{"format":"uuid","type":"string"},"fromDate":{"format":"date","type":"string"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"skillDefinitionID":{"format":"uuid","type":"string"},"typeOfProofID":{"format":"uuid","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","employeeID","fromDate","skillDefinitionID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/skillPlannings":{"get":{"description":"List skillPlannings\n\n**Filter Syntax:**\n- Filters use exact match only\n- Multiple filters are combined with AND logic\n- Filterable fields: employeeID, typeOfProofID, skillDefinitionID\n- Example: `?employeeID=123e4567-e89b-12d3-a456-426614174000&typeOfProofID=123e4567-e89b-12d3-a456-426614174000`","operationId":"listSkillPlanning","parameters":[{"description":"Filter by employeeID (exact match)","in":"query","name":"employeeID","schema":{"type":"string"}},{"description":"Filter by typeOfProofID (exact match)","in":"query","name":"typeOfProofID","schema":{"type":"string"}},{"description":"Filter by skillDefinitionID (exact match)","in":"query","name":"skillDefinitionID","schema":{"type":"string"}},{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListSkillPlanningResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List skillPlannings","tags":["SkillPlannings","Querying"]}}}}
```

## Get SkillPlanning

> Get a single SkillPlanning by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Querying","name":"Querying"},{"description":"Operations for SkillPlannings","name":"SkillPlannings"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"SkillPlanning":{"properties":{"closeDate":{"format":"date","type":"string"},"createdAt":{"format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"deadlineDate":{"format":"date","type":"string"},"employeeID":{"format":"uuid","type":"string"},"fromDate":{"format":"date","type":"string"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"skillDefinitionID":{"format":"uuid","type":"string"},"typeOfProofID":{"format":"uuid","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","employeeID","fromDate","skillDefinitionID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/skillPlannings/{id}":{"get":{"description":"Get a single SkillPlanning by ID","operationId":"getSkillPlanning","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SkillPlanning"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get SkillPlanning","tags":["SkillPlannings","Querying"]}}}}
```

## List SkillPlanning creation proposals

> List all createSkillPlannings proposals. These are proposed changes to create new SkillPlanning records that may be automatically approved or require manual approval depending on system configuration.\
> \
> \*\*Filter Syntax:\*\*\
> \- Filters use exact match only\
> \- Multiple filters are combined with AND logic\
> \- Filterable fields: employeeID, typeOfProofID, skillDefinitionID\
> \- Example: \`?employeeID=123e4567-e89b-12d3-a456-426614174000\&typeOfProofID=123e4567-e89b-12d3-a456-426614174000\`

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for SkillPlannings","name":"SkillPlannings"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListCreateSkillPlanningProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/CreateSkillPlanningProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"CreateSkillPlanningProposal":{"properties":{"closeDate":{"format":"date","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"deadlineDate":{"format":"date","type":"string"},"employeeID":{"format":"uuid","type":"string"},"fromDate":{"format":"date","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"skillDefinitionID":{"format":"uuid","type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"},"typeOfProofID":{"format":"uuid","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","employeeID","fromDate","skillDefinitionID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/createSkillPlannings":{"get":{"description":"List all createSkillPlannings proposals. These are proposed changes to create new SkillPlanning records that may be automatically approved or require manual approval depending on system configuration.\n\n**Filter Syntax:**\n- Filters use exact match only\n- Multiple filters are combined with AND logic\n- Filterable fields: employeeID, typeOfProofID, skillDefinitionID\n- Example: `?employeeID=123e4567-e89b-12d3-a456-426614174000&typeOfProofID=123e4567-e89b-12d3-a456-426614174000`","operationId":"listCreateSkillPlanningProposal","parameters":[{"description":"Filter by employeeID (exact match)","in":"query","name":"employeeID","schema":{"type":"string"}},{"description":"Filter by typeOfProofID (exact match)","in":"query","name":"typeOfProofID","schema":{"type":"string"}},{"description":"Filter by skillDefinitionID (exact match)","in":"query","name":"skillDefinitionID","schema":{"type":"string"}},{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListCreateSkillPlanningProposalResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List SkillPlanning creation proposals","tags":["SkillPlannings","Proposals"]}}}}
```

## Propose creation of SkillPlannings

> Create new proposals to add SkillPlanning records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for SkillPlannings","name":"SkillPlannings"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateCreateSkillPlanningProposalRequest":{"properties":{"closeDate":{"format":"date","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"deadlineDate":{"format":"date","type":"string"},"employeeID":{"format":"uuid","type":"string"},"fromDate":{"format":"date","type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"skillDefinitionID":{"format":"uuid","type":"string"},"typeOfProofID":{"format":"uuid","type":"string"}},"required":["repositoryID","employeeID","fromDate","skillDefinitionID"],"type":"object"},"CreateSkillPlanningProposal":{"properties":{"closeDate":{"format":"date","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"deadlineDate":{"format":"date","type":"string"},"employeeID":{"format":"uuid","type":"string"},"fromDate":{"format":"date","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"skillDefinitionID":{"format":"uuid","type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"},"typeOfProofID":{"format":"uuid","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","employeeID","fromDate","skillDefinitionID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/createSkillPlannings":{"post":{"description":"Create new proposals to add SkillPlanning records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.","operationId":"createCreateSkillPlanningProposal","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateCreateSkillPlanningProposalRequest"},"maxItems":100,"minItems":1,"type":"array"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateSkillPlanningProposal"},"type":"array"}}},"description":"Created successfully"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Propose creation of SkillPlannings","tags":["SkillPlannings","Proposals"]}}}}
```

## Get SkillPlanning creation proposal

> Get details of a specific SkillPlanning creation proposal by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for SkillPlannings","name":"SkillPlannings"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateSkillPlanningProposal":{"properties":{"closeDate":{"format":"date","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"deadlineDate":{"format":"date","type":"string"},"employeeID":{"format":"uuid","type":"string"},"fromDate":{"format":"date","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"skillDefinitionID":{"format":"uuid","type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"},"typeOfProofID":{"format":"uuid","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","employeeID","fromDate","skillDefinitionID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/createSkillPlannings/{id}":{"get":{"description":"Get details of a specific SkillPlanning creation proposal by ID","operationId":"getCreateSkillPlanningProposal","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSkillPlanningProposal"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get SkillPlanning creation proposal","tags":["SkillPlannings","Proposals"]}}}}
```

## List SkillPlanning deletion proposals

> List all deleteSkillPlannings proposals. These are proposed changes to delete SkillPlanning records that may be automatically approved or require manual approval depending on system configuration.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for SkillPlannings","name":"SkillPlannings"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListDeleteSkillPlanningProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/DeleteSkillPlanningProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"DeleteSkillPlanningProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/deleteSkillPlannings":{"get":{"description":"List all deleteSkillPlannings proposals. These are proposed changes to delete SkillPlanning records that may be automatically approved or require manual approval depending on system configuration.","operationId":"listDeleteSkillPlanningProposal","parameters":[{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListDeleteSkillPlanningProposalResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List SkillPlanning deletion proposals","tags":["SkillPlannings","Proposals"]}}}}
```

## Propose deletion of SkillPlannings

> Create new proposals to delete SkillPlanning records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for SkillPlannings","name":"SkillPlannings"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateDeleteSkillPlanningProposalRequest":{"properties":{"id":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"},"DeleteSkillPlanningProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/deleteSkillPlannings":{"post":{"description":"Create new proposals to delete SkillPlanning records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.","operationId":"createDeleteSkillPlanningProposal","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateDeleteSkillPlanningProposalRequest"},"maxItems":100,"minItems":1,"type":"array"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/DeleteSkillPlanningProposal"},"type":"array"}}},"description":"Created successfully"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Propose deletion of SkillPlannings","tags":["SkillPlannings","Proposals"]}}}}
```

## Get SkillPlanning deletion proposal

> Get details of a specific SkillPlanning deletion proposal by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for SkillPlannings","name":"SkillPlannings"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"DeleteSkillPlanningProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/deleteSkillPlannings/{id}":{"get":{"description":"Get details of a specific SkillPlanning deletion proposal by ID","operationId":"getDeleteSkillPlanningProposal","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteSkillPlanningProposal"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get SkillPlanning deletion proposal","tags":["SkillPlannings","Proposals"]}}}}
```

## List SkillPlanning update proposals

> List all updateSkillPlannings proposals. These are proposed changes to update existing SkillPlanning records that may be automatically approved or require manual approval depending on system configuration.\
> \
> \*\*Filter Syntax:\*\*\
> \- Filters use exact match only\
> \- Multiple filters are combined with AND logic\
> \- Filterable fields: employeeID, typeOfProofID, skillDefinitionID\
> \- Example: \`?employeeID=123e4567-e89b-12d3-a456-426614174000\&typeOfProofID=123e4567-e89b-12d3-a456-426614174000\`

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for SkillPlannings","name":"SkillPlannings"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListUpdateSkillPlanningProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UpdateSkillPlanningProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"UpdateSkillPlanningProposal":{"properties":{"closeDate":{"format":"date","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"deadlineDate":{"format":"date","type":"string"},"employeeID":{"format":"uuid","type":"string"},"fromDate":{"format":"date","type":"string"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"skillDefinitionID":{"format":"uuid","type":"string"},"typeOfProofID":{"format":"uuid","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/updateSkillPlannings":{"get":{"description":"List all updateSkillPlannings proposals. These are proposed changes to update existing SkillPlanning records that may be automatically approved or require manual approval depending on system configuration.\n\n**Filter Syntax:**\n- Filters use exact match only\n- Multiple filters are combined with AND logic\n- Filterable fields: employeeID, typeOfProofID, skillDefinitionID\n- Example: `?employeeID=123e4567-e89b-12d3-a456-426614174000&typeOfProofID=123e4567-e89b-12d3-a456-426614174000`","operationId":"listUpdateSkillPlanningProposal","parameters":[{"description":"Filter by employeeID (exact match)","in":"query","name":"employeeID","schema":{"type":"string"}},{"description":"Filter by typeOfProofID (exact match)","in":"query","name":"typeOfProofID","schema":{"type":"string"}},{"description":"Filter by skillDefinitionID (exact match)","in":"query","name":"skillDefinitionID","schema":{"type":"string"}},{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListUpdateSkillPlanningProposalResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List SkillPlanning update proposals","tags":["SkillPlannings","Proposals"]}}}}
```

## Propose update of SkillPlannings

> Create new proposals to update SkillPlanning records. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable). The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for SkillPlannings","name":"SkillPlannings"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateUpdateSkillPlanningProposalRequest":{"properties":{"closeDate":{"description":"Omit this field to keep current value","format":"date","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed (omit to keep current value)","type":"object"},"deadlineDate":{"description":"Omit this field to keep current value","format":"date","type":"string"},"employeeID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"fromDate":{"description":"Omit this field to keep current value","format":"date","type":"string"},"id":{"format":"uuid","type":"string"},"remark":{"description":"Omit this field to keep current value","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"skillDefinitionID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"typeOfProofID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"},"UpdateSkillPlanningProposal":{"properties":{"closeDate":{"format":"date","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"deadlineDate":{"format":"date","type":"string"},"employeeID":{"format":"uuid","type":"string"},"fromDate":{"format":"date","type":"string"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"skillDefinitionID":{"format":"uuid","type":"string"},"typeOfProofID":{"format":"uuid","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/updateSkillPlannings":{"post":{"description":"Create new proposals to update SkillPlanning records. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable). The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.","operationId":"createUpdateSkillPlanningProposal","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateUpdateSkillPlanningProposalRequest"},"maxItems":100,"minItems":1,"type":"array"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/UpdateSkillPlanningProposal"},"type":"array"}}},"description":"Created successfully"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Propose update of SkillPlannings","tags":["SkillPlannings","Proposals"]}}}}
```

## Get SkillPlanning update proposal

> Get details of a specific SkillPlanning update proposal by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for SkillPlannings","name":"SkillPlannings"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"UpdateSkillPlanningProposal":{"properties":{"closeDate":{"format":"date","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"deadlineDate":{"format":"date","type":"string"},"employeeID":{"format":"uuid","type":"string"},"fromDate":{"format":"date","type":"string"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"skillDefinitionID":{"format":"uuid","type":"string"},"typeOfProofID":{"format":"uuid","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/updateSkillPlannings/{id}":{"get":{"description":"Get details of a specific SkillPlanning update proposal by ID","operationId":"getUpdateSkillPlanningProposal","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSkillPlanningProposal"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get SkillPlanning update proposal","tags":["SkillPlannings","Proposals"]}}}}
```


# SkillResults

Operations for SkillResults

## List skillResults

> List skillResults\
> \
> \*\*Filter Syntax:\*\*\
> \- Filters use exact match only\
> \- Multiple filters are combined with AND logic\
> \- Filterable fields: employeeID, typeOfProofID, scoreID\
> \- Example: \`?employeeID=123e4567-e89b-12d3-a456-426614174000\&typeOfProofID=123e4567-e89b-12d3-a456-426614174000\`

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Querying","name":"Querying"},{"description":"Operations for SkillResults","name":"SkillResults"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListSkillResultResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/SkillResult"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"SkillResult":{"properties":{"createdAt":{"format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"employeeID":{"format":"uuid","type":"string"},"expirationDate":{"format":"date","type":"string"},"id":{"format":"uuid","type":"string"},"issueDate":{"format":"date","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"scoreID":{"format":"uuid","type":"string"},"typeOfProofID":{"format":"uuid","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","employeeID","issueDate","typeOfProofID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/skillResults":{"get":{"description":"List skillResults\n\n**Filter Syntax:**\n- Filters use exact match only\n- Multiple filters are combined with AND logic\n- Filterable fields: employeeID, typeOfProofID, scoreID\n- Example: `?employeeID=123e4567-e89b-12d3-a456-426614174000&typeOfProofID=123e4567-e89b-12d3-a456-426614174000`","operationId":"listSkillResult","parameters":[{"description":"Filter by employeeID (exact match)","in":"query","name":"employeeID","schema":{"type":"string"}},{"description":"Filter by typeOfProofID (exact match)","in":"query","name":"typeOfProofID","schema":{"type":"string"}},{"description":"Filter by scoreID (exact match)","in":"query","name":"scoreID","schema":{"type":"string"}},{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListSkillResultResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List skillResults","tags":["SkillResults","Querying"]}}}}
```

## Get SkillResult

> Get a single SkillResult by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Querying","name":"Querying"},{"description":"Operations for SkillResults","name":"SkillResults"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"SkillResult":{"properties":{"createdAt":{"format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"employeeID":{"format":"uuid","type":"string"},"expirationDate":{"format":"date","type":"string"},"id":{"format":"uuid","type":"string"},"issueDate":{"format":"date","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"scoreID":{"format":"uuid","type":"string"},"typeOfProofID":{"format":"uuid","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","employeeID","issueDate","typeOfProofID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/skillResults/{id}":{"get":{"description":"Get a single SkillResult by ID","operationId":"getSkillResult","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SkillResult"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get SkillResult","tags":["SkillResults","Querying"]}}}}
```

## Upload document for SkillResult

> Upload a binary document that will be attached to the specified resource via a proposal.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Querying","name":"Querying"},{"description":"Operations for SkillResults","name":"SkillResults"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}},"schemas":{"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}}},"paths":{"/skillResults/{id}/uploadDocument":{"post":{"description":"Upload a binary document that will be attached to the specified resource via a proposal.","operationId":"uploadDocumentForSkillResult","requestBody":{"content":{"multipart/form-data":{"schema":{"properties":{"file":{"format":"binary","type":"string"}},"required":["file"],"type":"object"}}},"required":true},"responses":{"202":{"description":"Upload accepted"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Upload document for SkillResult","tags":["SkillResults","Querying"]}}}}
```

## List documents for SkillResult

> List documents for the SkillResult resource

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Querying","name":"Querying"},{"description":"Operations for SkillResults","name":"SkillResults"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"Document":{"properties":{"contentType":{"description":"MIME type of the file","type":"string"},"downloadUrl":{"type":"string"},"filename":{"description":"Name of the file","type":"string"},"size":{"description":"Size of the file in bytes","type":"integer"}},"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/skillResults/{id}/documents":{"get":{"description":"List documents for the SkillResult resource","operationId":"listDocumentsForSkillResult","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/Document"},"type":"array"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List documents for SkillResult","tags":["SkillResults","Querying"]}}}}
```

## List SkillResult creation proposals

> List all createSkillResults proposals. These are proposed changes to create new SkillResult records that may be automatically approved or require manual approval depending on system configuration.\
> \
> \*\*Filter Syntax:\*\*\
> \- Filters use exact match only\
> \- Multiple filters are combined with AND logic\
> \- Filterable fields: employeeID, typeOfProofID, scoreID\
> \- Example: \`?employeeID=123e4567-e89b-12d3-a456-426614174000\&typeOfProofID=123e4567-e89b-12d3-a456-426614174000\`

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for SkillResults","name":"SkillResults"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListCreateSkillResultProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/CreateSkillResultProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"CreateSkillResultProposal":{"properties":{"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"employeeID":{"format":"uuid","type":"string"},"expirationDate":{"format":"date","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"issueDate":{"format":"date","type":"string"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"scoreID":{"format":"uuid","type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"},"typeOfProofID":{"format":"uuid","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","employeeID","issueDate","typeOfProofID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/createSkillResults":{"get":{"description":"List all createSkillResults proposals. These are proposed changes to create new SkillResult records that may be automatically approved or require manual approval depending on system configuration.\n\n**Filter Syntax:**\n- Filters use exact match only\n- Multiple filters are combined with AND logic\n- Filterable fields: employeeID, typeOfProofID, scoreID\n- Example: `?employeeID=123e4567-e89b-12d3-a456-426614174000&typeOfProofID=123e4567-e89b-12d3-a456-426614174000`","operationId":"listCreateSkillResultProposal","parameters":[{"description":"Filter by employeeID (exact match)","in":"query","name":"employeeID","schema":{"type":"string"}},{"description":"Filter by typeOfProofID (exact match)","in":"query","name":"typeOfProofID","schema":{"type":"string"}},{"description":"Filter by scoreID (exact match)","in":"query","name":"scoreID","schema":{"type":"string"}},{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListCreateSkillResultProposalResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List SkillResult creation proposals","tags":["SkillResults","Proposals"]}}}}
```

## Propose creation of SkillResults

> Create new proposals to add SkillResult records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for SkillResults","name":"SkillResults"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateCreateSkillResultProposalRequest":{"properties":{"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"employeeID":{"format":"uuid","type":"string"},"expirationDate":{"format":"date","type":"string"},"issueDate":{"format":"date","type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"scoreID":{"format":"uuid","type":"string"},"typeOfProofID":{"format":"uuid","type":"string"}},"required":["repositoryID","employeeID","issueDate","typeOfProofID"],"type":"object"},"CreateSkillResultProposal":{"properties":{"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"employeeID":{"format":"uuid","type":"string"},"expirationDate":{"format":"date","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"issueDate":{"format":"date","type":"string"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"scoreID":{"format":"uuid","type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"},"typeOfProofID":{"format":"uuid","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","employeeID","issueDate","typeOfProofID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/createSkillResults":{"post":{"description":"Create new proposals to add SkillResult records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.","operationId":"createCreateSkillResultProposal","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateCreateSkillResultProposalRequest"},"maxItems":100,"minItems":1,"type":"array"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateSkillResultProposal"},"type":"array"}}},"description":"Created successfully"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Propose creation of SkillResults","tags":["SkillResults","Proposals"]}}}}
```

## Get SkillResult creation proposal

> Get details of a specific SkillResult creation proposal by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for SkillResults","name":"SkillResults"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateSkillResultProposal":{"properties":{"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"employeeID":{"format":"uuid","type":"string"},"expirationDate":{"format":"date","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"issueDate":{"format":"date","type":"string"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"scoreID":{"format":"uuid","type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"},"typeOfProofID":{"format":"uuid","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","employeeID","issueDate","typeOfProofID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/createSkillResults/{id}":{"get":{"description":"Get details of a specific SkillResult creation proposal by ID","operationId":"getCreateSkillResultProposal","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSkillResultProposal"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get SkillResult creation proposal","tags":["SkillResults","Proposals"]}}}}
```

## List SkillResult deletion proposals

> List all deleteSkillResults proposals. These are proposed changes to delete SkillResult records that may be automatically approved or require manual approval depending on system configuration.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for SkillResults","name":"SkillResults"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListDeleteSkillResultProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/DeleteSkillResultProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"DeleteSkillResultProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/deleteSkillResults":{"get":{"description":"List all deleteSkillResults proposals. These are proposed changes to delete SkillResult records that may be automatically approved or require manual approval depending on system configuration.","operationId":"listDeleteSkillResultProposal","parameters":[{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListDeleteSkillResultProposalResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List SkillResult deletion proposals","tags":["SkillResults","Proposals"]}}}}
```

## Propose deletion of SkillResults

> Create new proposals to delete SkillResult records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for SkillResults","name":"SkillResults"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateDeleteSkillResultProposalRequest":{"properties":{"id":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"},"DeleteSkillResultProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/deleteSkillResults":{"post":{"description":"Create new proposals to delete SkillResult records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.","operationId":"createDeleteSkillResultProposal","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateDeleteSkillResultProposalRequest"},"maxItems":100,"minItems":1,"type":"array"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/DeleteSkillResultProposal"},"type":"array"}}},"description":"Created successfully"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Propose deletion of SkillResults","tags":["SkillResults","Proposals"]}}}}
```

## Get SkillResult deletion proposal

> Get details of a specific SkillResult deletion proposal by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for SkillResults","name":"SkillResults"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"DeleteSkillResultProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/deleteSkillResults/{id}":{"get":{"description":"Get details of a specific SkillResult deletion proposal by ID","operationId":"getDeleteSkillResultProposal","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteSkillResultProposal"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get SkillResult deletion proposal","tags":["SkillResults","Proposals"]}}}}
```

## List SkillResult update proposals

> List all updateSkillResults proposals. These are proposed changes to update existing SkillResult records that may be automatically approved or require manual approval depending on system configuration.\
> \
> \*\*Filter Syntax:\*\*\
> \- Filters use exact match only\
> \- Multiple filters are combined with AND logic\
> \- Filterable fields: employeeID, typeOfProofID, scoreID\
> \- Example: \`?employeeID=123e4567-e89b-12d3-a456-426614174000\&typeOfProofID=123e4567-e89b-12d3-a456-426614174000\`

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for SkillResults","name":"SkillResults"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListUpdateSkillResultProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UpdateSkillResultProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"UpdateSkillResultProposal":{"properties":{"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"employeeID":{"format":"uuid","type":"string"},"expirationDate":{"format":"date","type":"string"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"issueDate":{"format":"date","type":"string"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"scoreID":{"format":"uuid","type":"string"},"typeOfProofID":{"format":"uuid","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/updateSkillResults":{"get":{"description":"List all updateSkillResults proposals. These are proposed changes to update existing SkillResult records that may be automatically approved or require manual approval depending on system configuration.\n\n**Filter Syntax:**\n- Filters use exact match only\n- Multiple filters are combined with AND logic\n- Filterable fields: employeeID, typeOfProofID, scoreID\n- Example: `?employeeID=123e4567-e89b-12d3-a456-426614174000&typeOfProofID=123e4567-e89b-12d3-a456-426614174000`","operationId":"listUpdateSkillResultProposal","parameters":[{"description":"Filter by employeeID (exact match)","in":"query","name":"employeeID","schema":{"type":"string"}},{"description":"Filter by typeOfProofID (exact match)","in":"query","name":"typeOfProofID","schema":{"type":"string"}},{"description":"Filter by scoreID (exact match)","in":"query","name":"scoreID","schema":{"type":"string"}},{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListUpdateSkillResultProposalResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List SkillResult update proposals","tags":["SkillResults","Proposals"]}}}}
```

## Propose update of SkillResults

> Create new proposals to update SkillResult records. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable). The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for SkillResults","name":"SkillResults"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateUpdateSkillResultProposalRequest":{"properties":{"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed (omit to keep current value)","type":"object"},"employeeID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"expirationDate":{"description":"Omit this field to keep current value","format":"date","type":"string"},"id":{"format":"uuid","type":"string"},"issueDate":{"description":"Omit this field to keep current value","format":"date","type":"string"},"remark":{"description":"Omit this field to keep current value","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"scoreID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"typeOfProofID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"},"UpdateSkillResultProposal":{"properties":{"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"employeeID":{"format":"uuid","type":"string"},"expirationDate":{"format":"date","type":"string"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"issueDate":{"format":"date","type":"string"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"scoreID":{"format":"uuid","type":"string"},"typeOfProofID":{"format":"uuid","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/updateSkillResults":{"post":{"description":"Create new proposals to update SkillResult records. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable). The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.","operationId":"createUpdateSkillResultProposal","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateUpdateSkillResultProposalRequest"},"maxItems":100,"minItems":1,"type":"array"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/UpdateSkillResultProposal"},"type":"array"}}},"description":"Created successfully"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Propose update of SkillResults","tags":["SkillResults","Proposals"]}}}}
```

## Get SkillResult update proposal

> Get details of a specific SkillResult update proposal by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for SkillResults","name":"SkillResults"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"UpdateSkillResultProposal":{"properties":{"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"employeeID":{"format":"uuid","type":"string"},"expirationDate":{"format":"date","type":"string"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"issueDate":{"format":"date","type":"string"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"scoreID":{"format":"uuid","type":"string"},"typeOfProofID":{"format":"uuid","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/updateSkillResults/{id}":{"get":{"description":"Get details of a specific SkillResult update proposal by ID","operationId":"getUpdateSkillResultProposal","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSkillResultProposal"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get SkillResult update proposal","tags":["SkillResults","Proposals"]}}}}
```


# TypesOfProof

Operations for TypesOfProof

## List typesOfProof

> List typesOfProof\
> \
> \*\*Filter Syntax:\*\*\
> \- Filters use exact match only\
> \- Multiple filters are combined with AND logic\
> \- Filterable fields: skillDefinitionID, versionRootID\
> \- Example: \`?skillDefinitionID=123e4567-e89b-12d3-a456-426614174000\&versionRootID=123e4567-e89b-12d3-a456-426614174000\`

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Querying","name":"Querying"},{"description":"Operations for TypesOfProof","name":"TypesOfProof"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListTypeOfProofResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TypeOfProof"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"TypeOfProof":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"remark":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"},"skillDefinitionID":{"format":"uuid","type":"string"},"trainingCostsAmount":{"format":"int64","type":"integer"},"trainingCostsCurrency":{"type":"string"},"trainingDuration":{"format":"duration","type":"string"},"versionCode":{"type":"string"},"versionRootID":{"format":"uuid","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","name","skillDefinitionID","activePeriod"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/typesOfProof":{"get":{"description":"List typesOfProof\n\n**Filter Syntax:**\n- Filters use exact match only\n- Multiple filters are combined with AND logic\n- Filterable fields: skillDefinitionID, versionRootID\n- Example: `?skillDefinitionID=123e4567-e89b-12d3-a456-426614174000&versionRootID=123e4567-e89b-12d3-a456-426614174000`","operationId":"listTypeOfProof","parameters":[{"description":"Filter by skillDefinitionID (exact match)","in":"query","name":"skillDefinitionID","schema":{"type":"string"}},{"description":"Filter by versionRootID (exact match)","in":"query","name":"versionRootID","schema":{"type":"string"}},{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListTypeOfProofResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List typesOfProof","tags":["TypesOfProof","Querying"]}}}}
```

## Get TypeOfProof

> Get a single TypeOfProof by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for Querying","name":"Querying"},{"description":"Operations for TypesOfProof","name":"TypesOfProof"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"TypeOfProof":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"remark":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"},"skillDefinitionID":{"format":"uuid","type":"string"},"trainingCostsAmount":{"format":"int64","type":"integer"},"trainingCostsCurrency":{"type":"string"},"trainingDuration":{"format":"duration","type":"string"},"versionCode":{"type":"string"},"versionRootID":{"format":"uuid","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","name","skillDefinitionID","activePeriod"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/typesOfProof/{id}":{"get":{"description":"Get a single TypeOfProof by ID","operationId":"getTypeOfProof","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TypeOfProof"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get TypeOfProof","tags":["TypesOfProof","Querying"]}}}}
```

## List TypesOfProof creation proposals

> List all createTypesOfProof proposals. These are proposed changes to create new TypesOfProof records that may be automatically approved or require manual approval depending on system configuration.\
> \
> \*\*Filter Syntax:\*\*\
> \- Filters use exact match only\
> \- Multiple filters are combined with AND logic\
> \- Filterable fields: skillDefinitionID, versionRootID\
> \- Example: \`?skillDefinitionID=123e4567-e89b-12d3-a456-426614174000\&versionRootID=123e4567-e89b-12d3-a456-426614174000\`

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for TypesOfProof","name":"TypesOfProof"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListCreateTypeOfProofProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/CreateTypeOfProofProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"CreateTypeOfProofProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"remark":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"skillDefinitionID":{"format":"uuid","type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"},"trainingCostsAmount":{"format":"int64","type":"integer"},"trainingCostsCurrency":{"type":"string"},"trainingDuration":{"format":"duration","type":"string"},"versionCode":{"type":"string"},"versionRootID":{"format":"uuid","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","name","skillDefinitionID","activePeriod"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/createTypesOfProof":{"get":{"description":"List all createTypesOfProof proposals. These are proposed changes to create new TypesOfProof records that may be automatically approved or require manual approval depending on system configuration.\n\n**Filter Syntax:**\n- Filters use exact match only\n- Multiple filters are combined with AND logic\n- Filterable fields: skillDefinitionID, versionRootID\n- Example: `?skillDefinitionID=123e4567-e89b-12d3-a456-426614174000&versionRootID=123e4567-e89b-12d3-a456-426614174000`","operationId":"listCreateTypeOfProofProposal","parameters":[{"description":"Filter by skillDefinitionID (exact match)","in":"query","name":"skillDefinitionID","schema":{"type":"string"}},{"description":"Filter by versionRootID (exact match)","in":"query","name":"versionRootID","schema":{"type":"string"}},{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListCreateTypeOfProofProposalResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List TypesOfProof creation proposals","tags":["TypesOfProof","Proposals"]}}}}
```

## Propose creation of TypesOfProofs

> Create new proposals to add TypesOfProof records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for TypesOfProof","name":"TypesOfProof"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateCreateTypeOfProofProposalRequest":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"remark":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"},"skillDefinitionID":{"format":"uuid","type":"string"},"trainingCostsAmount":{"format":"int64","type":"integer"},"trainingCostsCurrency":{"type":"string"},"trainingDuration":{"format":"duration","type":"string"},"versionCode":{"type":"string"},"versionRootID":{"format":"uuid","type":"string"}},"required":["repositoryID","name","skillDefinitionID","activePeriod"],"type":"object"},"CreateTypeOfProofProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"remark":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"skillDefinitionID":{"format":"uuid","type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"},"trainingCostsAmount":{"format":"int64","type":"integer"},"trainingCostsCurrency":{"type":"string"},"trainingDuration":{"format":"duration","type":"string"},"versionCode":{"type":"string"},"versionRootID":{"format":"uuid","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","name","skillDefinitionID","activePeriod"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/createTypesOfProof":{"post":{"description":"Create new proposals to add TypesOfProof records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.","operationId":"createCreateTypeOfProofProposal","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateCreateTypeOfProofProposalRequest"},"maxItems":100,"minItems":1,"type":"array"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateTypeOfProofProposal"},"type":"array"}}},"description":"Created successfully"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Propose creation of TypesOfProofs","tags":["TypesOfProof","Proposals"]}}}}
```

## Get TypesOfProof creation proposal

> Get details of a specific TypesOfProof creation proposal by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for TypesOfProof","name":"TypesOfProof"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateTypeOfProofProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"remark":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"skillDefinitionID":{"format":"uuid","type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"},"trainingCostsAmount":{"format":"int64","type":"integer"},"trainingCostsCurrency":{"type":"string"},"trainingDuration":{"format":"duration","type":"string"},"versionCode":{"type":"string"},"versionRootID":{"format":"uuid","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","name","skillDefinitionID","activePeriod"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/createTypesOfProof/{id}":{"get":{"description":"Get details of a specific TypesOfProof creation proposal by ID","operationId":"getCreateTypeOfProofProposal","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTypeOfProofProposal"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get TypesOfProof creation proposal","tags":["TypesOfProof","Proposals"]}}}}
```

## List TypesOfProof deletion proposals

> List all deleteTypesOfProof proposals. These are proposed changes to delete TypesOfProof records that may be automatically approved or require manual approval depending on system configuration.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for TypesOfProof","name":"TypesOfProof"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListDeleteTypeOfProofProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/DeleteTypeOfProofProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"DeleteTypeOfProofProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/deleteTypesOfProof":{"get":{"description":"List all deleteTypesOfProof proposals. These are proposed changes to delete TypesOfProof records that may be automatically approved or require manual approval depending on system configuration.","operationId":"listDeleteTypeOfProofProposal","parameters":[{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListDeleteTypeOfProofProposalResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List TypesOfProof deletion proposals","tags":["TypesOfProof","Proposals"]}}}}
```

## Propose deletion of TypesOfProofs

> Create new proposals to delete TypesOfProof records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for TypesOfProof","name":"TypesOfProof"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateDeleteTypeOfProofProposalRequest":{"properties":{"id":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"},"DeleteTypeOfProofProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/deleteTypesOfProof":{"post":{"description":"Create new proposals to delete TypesOfProof records. The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.","operationId":"createDeleteTypeOfProofProposal","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateDeleteTypeOfProofProposalRequest"},"maxItems":100,"minItems":1,"type":"array"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/DeleteTypeOfProofProposal"},"type":"array"}}},"description":"Created successfully"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Propose deletion of TypesOfProofs","tags":["TypesOfProof","Proposals"]}}}}
```

## Get TypesOfProof deletion proposal

> Get details of a specific TypesOfProof deletion proposal by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for TypesOfProof","name":"TypesOfProof"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"DeleteTypeOfProofProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/deleteTypesOfProof/{id}":{"get":{"description":"Get details of a specific TypesOfProof deletion proposal by ID","operationId":"getDeleteTypeOfProofProposal","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteTypeOfProofProposal"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get TypesOfProof deletion proposal","tags":["TypesOfProof","Proposals"]}}}}
```

## List TypesOfProof update proposals

> List all updateTypesOfProof proposals. These are proposed changes to update existing TypesOfProof records that may be automatically approved or require manual approval depending on system configuration.\
> \
> \*\*Filter Syntax:\*\*\
> \- Filters use exact match only\
> \- Multiple filters are combined with AND logic\
> \- Filterable fields: skillDefinitionID, versionRootID\
> \- Example: \`?skillDefinitionID=123e4567-e89b-12d3-a456-426614174000\&versionRootID=123e4567-e89b-12d3-a456-426614174000\`

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for TypesOfProof","name":"TypesOfProof"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"ListUpdateTypeOfProofProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UpdateTypeOfProofProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"UpdateTypeOfProofProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"remark":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"skillDefinitionID":{"format":"uuid","type":"string"},"trainingCostsAmount":{"format":"int64","type":"integer"},"trainingCostsCurrency":{"type":"string"},"trainingDuration":{"format":"duration","type":"string"},"versionCode":{"type":"string"},"versionRootID":{"format":"uuid","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/updateTypesOfProof":{"get":{"description":"List all updateTypesOfProof proposals. These are proposed changes to update existing TypesOfProof records that may be automatically approved or require manual approval depending on system configuration.\n\n**Filter Syntax:**\n- Filters use exact match only\n- Multiple filters are combined with AND logic\n- Filterable fields: skillDefinitionID, versionRootID\n- Example: `?skillDefinitionID=123e4567-e89b-12d3-a456-426614174000&versionRootID=123e4567-e89b-12d3-a456-426614174000`","operationId":"listUpdateTypeOfProofProposal","parameters":[{"description":"Filter by skillDefinitionID (exact match)","in":"query","name":"skillDefinitionID","schema":{"type":"string"}},{"description":"Filter by versionRootID (exact match)","in":"query","name":"versionRootID","schema":{"type":"string"}},{"description":"Maximum number of items to return (1-1000)","in":"query","name":"limit","schema":{"default":10,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Cursor for pagination. Use the value from the 'nextCursor' field of the previous response.","in":"query","name":"cursor","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListUpdateTypeOfProofProposalResponse"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"List TypesOfProof update proposals","tags":["TypesOfProof","Proposals"]}}}}
```

## Propose update of TypesOfProofs

> Create new proposals to update TypesOfProof records. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable). The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for TypesOfProof","name":"TypesOfProof"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"CreateUpdateTypeOfProofProposalRequest":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end) (omit to keep current value)","type":"string"},"code":{"description":"Omit this field to keep current value","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed (omit to keep current value)","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"id":{"format":"uuid","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"remark":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"repositoryID":{"format":"uuid","type":"string"},"skillDefinitionID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"trainingCostsAmount":{"description":"Omit this field to keep current value","format":"int64","type":"integer"},"trainingCostsCurrency":{"description":"Omit this field to keep current value","type":"string"},"trainingDuration":{"description":"Omit this field to keep current value","format":"duration","type":"string"},"versionCode":{"description":"Omit this field to keep current value","type":"string"},"versionRootID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"},"UpdateTypeOfProofProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"remark":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"skillDefinitionID":{"format":"uuid","type":"string"},"trainingCostsAmount":{"format":"int64","type":"integer"},"trainingCostsCurrency":{"type":"string"},"trainingDuration":{"format":"duration","type":"string"},"versionCode":{"type":"string"},"versionRootID":{"format":"uuid","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"BadRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad request"},"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/updateTypesOfProof":{"post":{"description":"Create new proposals to update TypesOfProof records. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable). The proposals may be automatically approved or require manual approval depending on system configuration. You can submit multiple proposals in a single request.","operationId":"createUpdateTypeOfProofProposal","requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CreateUpdateTypeOfProofProposalRequest"},"maxItems":100,"minItems":1,"type":"array"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/UpdateTypeOfProofProposal"},"type":"array"}}},"description":"Created successfully"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Propose update of TypesOfProofs","tags":["TypesOfProof","Proposals"]}}}}
```

## Get TypesOfProof update proposal

> Get details of a specific TypesOfProof update proposal by ID

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"tags":[{"description":"Operations for TypesOfProof","name":"TypesOfProof"}],"security":[{"bearerToken":[]}],"components":{"securitySchemes":{},"schemas":{"UpdateTypeOfProofProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"remark":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"skillDefinitionID":{"format":"uuid","type":"string"},"trainingCostsAmount":{"format":"int64","type":"integer"},"trainingCostsCurrency":{"type":"string"},"trainingDuration":{"format":"duration","type":"string"},"versionCode":{"type":"string"},"versionRootID":{"format":"uuid","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"},"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}},"responses":{"Unauthorized":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not found"},"InternalError":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal server error"}}},"paths":{"/updateTypesOfProof/{id}":{"get":{"description":"Get details of a specific TypesOfProof update proposal by ID","operationId":"getUpdateTypeOfProofProposal","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateTypeOfProofProposal"}}},"description":"Successful response"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"500":{"$ref":"#/components/responses/InternalError"}},"summary":"Get TypesOfProof update proposal","tags":["TypesOfProof","Proposals"]}}}}
```


# Models

## The CreateCreateCustomFieldDefinitionProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateCreateCustomFieldDefinitionProposalRequest":{"properties":{"code":{"type":"string"},"entityDefinitionID":{"format":"uuid","type":"string"},"isUnique":{"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["repositoryID","code","name","entityDefinitionID","isUnique"],"type":"object"}}}}
```

## The CreateCreateDocumentProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateCreateDocumentProposalRequest":{"properties":{"contentType":{"type":"string"},"fileSize":{"format":"int32","type":"integer"},"filename":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"subjectID":{"format":"uuid","type":"string"}},"required":["subjectID","repositoryID","fileSize"],"type":"object"}}}}
```

## The CreateCreateEmployeeProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateCreateEmployeeProposalRequest":{"properties":{"birthDate":{"format":"date","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"email":{"format":"email","type":"string"},"employeeNumber":{"type":"string"},"firstName":{"type":"string"},"initials":{"type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"surname":{"type":"string"}},"required":["repositoryID","surname"],"type":"object"}}}}
```

## The CreateCreateEmployeeUnavailabilityProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateCreateEmployeeUnavailabilityProposalRequest":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"employeeID":{"format":"uuid","type":"string"},"reason":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"}},"required":["repositoryID","activePeriod","employeeID"],"type":"object"}}}}
```

## The CreateCreateEmploymentContractProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateCreateEmploymentContractProposalRequest":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"contractTypeID":{"format":"uuid","type":"string"},"employeeID":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"}},"required":["repositoryID","activePeriod","employeeID"],"type":"object"}}}}
```

## The CreateCreateEmploymentContractTypeProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateCreateEmploymentContractTypeProposalRequest":{"properties":{"code":{"type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["repositoryID","code","name"],"type":"object"}}}}
```

## The CreateCreateEmploymentRelationProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateCreateEmploymentRelationProposalRequest":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"fromEmployeeID":{"format":"uuid","type":"string"},"relationTypeID":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"toEmployeeID":{"format":"uuid","type":"string"}},"required":["repositoryID","activePeriod","toEmployeeID","fromEmployeeID","relationTypeID"],"type":"object"}}}}
```

## The CreateCreateEmploymentRelationTypeProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateCreateEmploymentRelationTypeProposalRequest":{"properties":{"code":{"type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["repositoryID","code","name"],"type":"object"}}}}
```

## The CreateCreateGroupingProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateCreateGroupingProposalRequest":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"definedInGroupingID":{"format":"uuid","type":"string"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"},"typeID":{"format":"uuid","type":"string"}},"required":["repositoryID","code","name","activePeriod"],"type":"object"}}}}
```

## The CreateCreateGroupingTypeProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateCreateGroupingTypeProposalRequest":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["repositoryID","code","name","activePeriod"],"type":"object"}}}}
```

## The CreateCreateMonitoringTraceProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateCreateMonitoringTraceProposalRequest":{"properties":{"executedAt":{"format":"date-time","type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestedAt":{"format":"date-time","type":"string"}},"required":["repositoryID"],"type":"object"}}}}
```

## The CreateCreatePositionAssignmentProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateCreatePositionAssignmentProposalRequest":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"employeeID":{"format":"uuid","type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"tagIDs":{"items":{"format":"uuid","type":"string"},"type":"array"}},"required":["repositoryID","employeeID","activePeriod","tagIDs"],"type":"object"}}}}
```

## The CreateCreateRatingScaleLevelDescriptorProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateCreateRatingScaleLevelDescriptorProposalRequest":{"properties":{"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"ratingScaleLevelID":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"skillDefinitionID":{"format":"uuid","type":"string"}},"required":["repositoryID","ratingScaleLevelID","skillDefinitionID","description"],"type":"object"}}}}
```

## The CreateCreateRatingScaleLevelProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateCreateRatingScaleLevelProposalRequest":{"properties":{"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"ratingScaleID":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"scoreOrder":{"format":"int32","type":"integer"}},"required":["repositoryID","ratingScaleID","scoreOrder","code","name"],"type":"object"}}}}
```

## The CreateCreateRatingScaleProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateCreateRatingScaleProposalRequest":{"properties":{"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["repositoryID","code","name"],"type":"object"}}}}
```

## The CreateCreateSkillCategoryProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateCreateSkillCategoryProposalRequest":{"properties":{"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"definedInCategoryID":{"format":"uuid","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["repositoryID","name"],"type":"object"}}}}
```

## The CreateCreateSkillDefinitionProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateCreateSkillDefinitionProposalRequest":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"ratingScaleID":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"tagIDs":{"items":{"format":"uuid","type":"string"},"type":"array"},"typeID":{"format":"uuid","type":"string"}},"required":["repositoryID","name","ratingScaleID","activePeriod","tagIDs"],"type":"object"}}}}
```

## The CreateCreateSkillDefinitionTypeProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateCreateSkillDefinitionTypeProposalRequest":{"properties":{"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["repositoryID","code","name"],"type":"object"}}}}
```

## The CreateCreateSkillPlanningProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateCreateSkillPlanningProposalRequest":{"properties":{"closeDate":{"format":"date","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"deadlineDate":{"format":"date","type":"string"},"employeeID":{"format":"uuid","type":"string"},"fromDate":{"format":"date","type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"skillDefinitionID":{"format":"uuid","type":"string"},"typeOfProofID":{"format":"uuid","type":"string"}},"required":["repositoryID","employeeID","fromDate","skillDefinitionID"],"type":"object"}}}}
```

## The CreateCreateSkillResultProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateCreateSkillResultProposalRequest":{"properties":{"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"employeeID":{"format":"uuid","type":"string"},"expirationDate":{"format":"date","type":"string"},"issueDate":{"format":"date","type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"scoreID":{"format":"uuid","type":"string"},"typeOfProofID":{"format":"uuid","type":"string"}},"required":["repositoryID","employeeID","issueDate","typeOfProofID"],"type":"object"}}}}
```

## The CreateCreateTypeOfProofProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateCreateTypeOfProofProposalRequest":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"remark":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"},"skillDefinitionID":{"format":"uuid","type":"string"},"trainingCostsAmount":{"format":"int64","type":"integer"},"trainingCostsCurrency":{"type":"string"},"trainingDuration":{"format":"duration","type":"string"},"versionCode":{"type":"string"},"versionRootID":{"format":"uuid","type":"string"}},"required":["repositoryID","name","skillDefinitionID","activePeriod"],"type":"object"}}}}
```

## The CreateCustomFieldDefinitionProposal object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateCustomFieldDefinitionProposal":{"properties":{"code":{"type":"string"},"entityDefinitionID":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"isUnique":{"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","code","name","entityDefinitionID","isUnique"],"type":"object"}}}}
```

## The CreateCustomFieldDefinitionRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateCustomFieldDefinitionRequest":{"properties":{"code":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"entityDefinitionID":{"format":"uuid","type":"string"},"isUnique":{"type":"boolean"},"lastModifiedAt":{"format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["createdAt","lastModifiedAt","repositoryID","code","name","entityDefinitionID","isUnique"],"type":"object"}}}}
```

## The CreateDeleteCustomFieldDefinitionProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateDeleteCustomFieldDefinitionProposalRequest":{"properties":{"id":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"}}}}
```

## The CreateDeleteDocumentProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateDeleteDocumentProposalRequest":{"properties":{"id":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"}}}}
```

## The CreateDeleteEmployeeProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateDeleteEmployeeProposalRequest":{"properties":{"id":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"}}}}
```

## The CreateDeleteEmployeeUnavailabilityProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateDeleteEmployeeUnavailabilityProposalRequest":{"properties":{"id":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"}}}}
```

## The CreateDeleteEmploymentContractProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateDeleteEmploymentContractProposalRequest":{"properties":{"id":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"}}}}
```

## The CreateDeleteEmploymentContractTypeProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateDeleteEmploymentContractTypeProposalRequest":{"properties":{"id":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"}}}}
```

## The CreateDeleteEmploymentRelationProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateDeleteEmploymentRelationProposalRequest":{"properties":{"id":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"}}}}
```

## The CreateDeleteEmploymentRelationTypeProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateDeleteEmploymentRelationTypeProposalRequest":{"properties":{"id":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"}}}}
```

## The CreateDeleteGroupingProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateDeleteGroupingProposalRequest":{"properties":{"id":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"}}}}
```

## The CreateDeleteGroupingTypeProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateDeleteGroupingTypeProposalRequest":{"properties":{"id":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"}}}}
```

## The CreateDeleteMonitoringTraceProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateDeleteMonitoringTraceProposalRequest":{"properties":{"id":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"}}}}
```

## The CreateDeletePositionAssignmentProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateDeletePositionAssignmentProposalRequest":{"properties":{"id":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"}}}}
```

## The CreateDeleteRatingScaleLevelDescriptorProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateDeleteRatingScaleLevelDescriptorProposalRequest":{"properties":{"id":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"}}}}
```

## The CreateDeleteRatingScaleLevelProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateDeleteRatingScaleLevelProposalRequest":{"properties":{"id":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"}}}}
```

## The CreateDeleteRatingScaleProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateDeleteRatingScaleProposalRequest":{"properties":{"id":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"}}}}
```

## The CreateDeleteSkillCategoryProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateDeleteSkillCategoryProposalRequest":{"properties":{"id":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"}}}}
```

## The CreateDeleteSkillDefinitionProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateDeleteSkillDefinitionProposalRequest":{"properties":{"id":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"}}}}
```

## The CreateDeleteSkillDefinitionTypeProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateDeleteSkillDefinitionTypeProposalRequest":{"properties":{"id":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"}}}}
```

## The CreateDeleteSkillPlanningProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateDeleteSkillPlanningProposalRequest":{"properties":{"id":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"}}}}
```

## The CreateDeleteSkillResultProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateDeleteSkillResultProposalRequest":{"properties":{"id":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"}}}}
```

## The CreateDeleteTypeOfProofProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateDeleteTypeOfProofProposalRequest":{"properties":{"id":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"}}}}
```

## The CreateDocumentProposal object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateDocumentProposal":{"properties":{"contentType":{"type":"string"},"fileID":{"type":"string"},"fileSize":{"format":"int32","type":"integer"},"filename":{"type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","fileID","fileSize"],"type":"object"}}}}
```

## The CreateEmployeeProposal object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateEmployeeProposal":{"properties":{"birthDate":{"format":"date","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"email":{"format":"email","type":"string"},"employeeNumber":{"type":"string"},"firstName":{"type":"string"},"initials":{"type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"},"surname":{"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","surname"],"type":"object"}}}}
```

## The CreateEmployeeRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateEmployeeRequest":{"properties":{"birthDate":{"format":"date","type":"string"},"createdAt":{"format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"email":{"format":"email","type":"string"},"employeeNumber":{"type":"string"},"firstName":{"type":"string"},"initials":{"type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"surname":{"type":"string"}},"required":["createdAt","lastModifiedAt","repositoryID","surname"],"type":"object"}}}}
```

## The CreateEmployeeUnavailabilityProposal object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateEmployeeUnavailabilityProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"employeeID":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"reason":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","activePeriod","employeeID"],"type":"object"}}}}
```

## The CreateEmployeeUnavailabilityRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateEmployeeUnavailabilityRequest":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"createdAt":{"format":"date-time","type":"string"},"employeeID":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"reason":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"}},"required":["createdAt","lastModifiedAt","repositoryID","activePeriod","employeeID"],"type":"object"}}}}
```

## The CreateEmploymentContractProposal object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateEmploymentContractProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"contractTypeID":{"format":"uuid","type":"string"},"employeeID":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","activePeriod","employeeID"],"type":"object"}}}}
```

## The CreateEmploymentContractRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateEmploymentContractRequest":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"contractTypeID":{"format":"uuid","type":"string"},"createdAt":{"format":"date-time","type":"string"},"employeeID":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"repositoryID":{"format":"uuid","type":"string"}},"required":["createdAt","lastModifiedAt","repositoryID","activePeriod","employeeID"],"type":"object"}}}}
```

## The CreateEmploymentContractTypeProposal object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateEmploymentContractTypeProposal":{"properties":{"code":{"type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","code","name"],"type":"object"}}}}
```

## The CreateEmploymentContractTypeRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateEmploymentContractTypeRequest":{"properties":{"code":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["createdAt","lastModifiedAt","repositoryID","code","name"],"type":"object"}}}}
```

## The CreateEmploymentRelationProposal object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateEmploymentRelationProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"fromEmployeeID":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"relationTypeID":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"},"toEmployeeID":{"format":"uuid","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","activePeriod","toEmployeeID","fromEmployeeID","relationTypeID"],"type":"object"}}}}
```

## The CreateEmploymentRelationRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateEmploymentRelationRequest":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"createdAt":{"format":"date-time","type":"string"},"fromEmployeeID":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"relationTypeID":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"toEmployeeID":{"format":"uuid","type":"string"}},"required":["createdAt","lastModifiedAt","repositoryID","activePeriod","toEmployeeID","fromEmployeeID","relationTypeID"],"type":"object"}}}}
```

## The CreateEmploymentRelationTypeProposal object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateEmploymentRelationTypeProposal":{"properties":{"code":{"type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","code","name"],"type":"object"}}}}
```

## The CreateEmploymentRelationTypeRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateEmploymentRelationTypeRequest":{"properties":{"code":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["createdAt","lastModifiedAt","repositoryID","code","name"],"type":"object"}}}}
```

## The CreateEntityDefinitionRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateEntityDefinitionRequest":{"properties":{"code":{"type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"}},"required":["code","name"],"type":"object"}}}}
```

## The CreateGroupingProposal object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateGroupingProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"definedInGroupingID":{"format":"uuid","type":"string"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"},"typeID":{"format":"uuid","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","code","name","activePeriod"],"type":"object"}}}}
```

## The CreateGroupingRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateGroupingRequest":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"definedInGroupingID":{"format":"uuid","type":"string"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"lastModifiedAt":{"format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"},"typeID":{"format":"uuid","type":"string"}},"required":["createdAt","lastModifiedAt","repositoryID","code","name","activePeriod"],"type":"object"}}}}
```

## The CreateGroupingTypeProposal object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateGroupingTypeProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","code","name","activePeriod"],"type":"object"}}}}
```

## The CreateGroupingTypeRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateGroupingTypeRequest":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"lastModifiedAt":{"format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["createdAt","lastModifiedAt","repositoryID","code","name","activePeriod"],"type":"object"}}}}
```

## The CreateMonitoringTraceProposal object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateMonitoringTraceProposal":{"properties":{"executedAt":{"format":"date-time","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"requestedAt":{"format":"date-time","type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID"],"type":"object"}}}}
```

## The CreateMonitoringTraceRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateMonitoringTraceRequest":{"properties":{"createdAt":{"format":"date-time","type":"string"},"executedAt":{"format":"date-time","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestedAt":{"format":"date-time","type":"string"}},"required":["createdAt","lastModifiedAt","repositoryID"],"type":"object"}}}}
```

## The CreatePositionAssignmentProposal object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreatePositionAssignmentProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"employeeID":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"},"tagIDs":{"items":{"format":"uuid","type":"string"},"type":"array"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","employeeID","activePeriod","tagIDs"],"type":"object"}}}}
```

## The CreatePositionAssignmentRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreatePositionAssignmentRequest":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"createdAt":{"format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"employeeID":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"tagIDs":{"items":{"format":"uuid","type":"string"},"type":"array"}},"required":["createdAt","lastModifiedAt","repositoryID","employeeID","activePeriod","tagIDs"],"type":"object"}}}}
```

## The CreateRatingScaleLevelDescriptorProposal object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateRatingScaleLevelDescriptorProposal":{"properties":{"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"ratingScaleLevelID":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"skillDefinitionID":{"format":"uuid","type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","ratingScaleLevelID","skillDefinitionID","description"],"type":"object"}}}}
```

## The CreateRatingScaleLevelDescriptorRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateRatingScaleLevelDescriptorRequest":{"properties":{"createdAt":{"format":"date-time","type":"string"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"lastModifiedAt":{"format":"date-time","type":"string"},"ratingScaleLevelID":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"skillDefinitionID":{"format":"uuid","type":"string"}},"required":["createdAt","lastModifiedAt","repositoryID","ratingScaleLevelID","skillDefinitionID","description"],"type":"object"}}}}
```

## The CreateRatingScaleLevelProposal object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateRatingScaleLevelProposal":{"properties":{"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"ratingScaleID":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"scoreOrder":{"format":"int32","type":"integer"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","ratingScaleID","scoreOrder","code","name"],"type":"object"}}}}
```

## The CreateRatingScaleLevelRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateRatingScaleLevelRequest":{"properties":{"code":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"lastModifiedAt":{"format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"ratingScaleID":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"scoreOrder":{"format":"int32","type":"integer"}},"required":["createdAt","lastModifiedAt","repositoryID","ratingScaleID","scoreOrder","code","name"],"type":"object"}}}}
```

## The CreateRatingScaleProposal object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateRatingScaleProposal":{"properties":{"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","code","name"],"type":"object"}}}}
```

## The CreateRatingScaleRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateRatingScaleRequest":{"properties":{"code":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"lastModifiedAt":{"format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["createdAt","lastModifiedAt","repositoryID","code","name"],"type":"object"}}}}
```

## The CreateRepositoryRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateRepositoryRequest":{"properties":{"code":{"type":"string"}},"required":["code"],"type":"object"}}}}
```

## The CreateSkillCategoryProposal object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateSkillCategoryProposal":{"properties":{"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"definedInCategoryID":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","name"],"type":"object"}}}}
```

## The CreateSkillCategoryRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateSkillCategoryRequest":{"properties":{"code":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"definedInCategoryID":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["createdAt","lastModifiedAt","repositoryID","name"],"type":"object"}}}}
```

## The CreateSkillDefinitionProposal object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateSkillDefinitionProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"ratingScaleID":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"},"tagIDs":{"items":{"format":"uuid","type":"string"},"type":"array"},"typeID":{"format":"uuid","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","name","ratingScaleID","activePeriod","tagIDs"],"type":"object"}}}}
```

## The CreateSkillDefinitionRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateSkillDefinitionRequest":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"lastModifiedAt":{"format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"ratingScaleID":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"tagIDs":{"items":{"format":"uuid","type":"string"},"type":"array"},"typeID":{"format":"uuid","type":"string"}},"required":["createdAt","lastModifiedAt","repositoryID","name","ratingScaleID","activePeriod","tagIDs"],"type":"object"}}}}
```

## The CreateSkillDefinitionTypeProposal object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateSkillDefinitionTypeProposal":{"properties":{"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","code","name"],"type":"object"}}}}
```

## The CreateSkillDefinitionTypeRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateSkillDefinitionTypeRequest":{"properties":{"code":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"lastModifiedAt":{"format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["createdAt","lastModifiedAt","repositoryID","code","name"],"type":"object"}}}}
```

## The CreateSkillPlanningProposal object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateSkillPlanningProposal":{"properties":{"closeDate":{"format":"date","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"deadlineDate":{"format":"date","type":"string"},"employeeID":{"format":"uuid","type":"string"},"fromDate":{"format":"date","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"skillDefinitionID":{"format":"uuid","type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"},"typeOfProofID":{"format":"uuid","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","employeeID","fromDate","skillDefinitionID"],"type":"object"}}}}
```

## The CreateSkillPlanningRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateSkillPlanningRequest":{"properties":{"closeDate":{"format":"date","type":"string"},"createdAt":{"format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"deadlineDate":{"format":"date","type":"string"},"employeeID":{"format":"uuid","type":"string"},"fromDate":{"format":"date","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"skillDefinitionID":{"format":"uuid","type":"string"},"typeOfProofID":{"format":"uuid","type":"string"}},"required":["createdAt","lastModifiedAt","repositoryID","employeeID","fromDate","skillDefinitionID"],"type":"object"}}}}
```

## The CreateSkillResultProposal object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateSkillResultProposal":{"properties":{"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"employeeID":{"format":"uuid","type":"string"},"expirationDate":{"format":"date","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"issueDate":{"format":"date","type":"string"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"scoreID":{"format":"uuid","type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"},"typeOfProofID":{"format":"uuid","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","employeeID","issueDate","typeOfProofID"],"type":"object"}}}}
```

## The CreateSkillResultRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateSkillResultRequest":{"properties":{"createdAt":{"format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"employeeID":{"format":"uuid","type":"string"},"expirationDate":{"format":"date","type":"string"},"issueDate":{"format":"date","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"scoreID":{"format":"uuid","type":"string"},"typeOfProofID":{"format":"uuid","type":"string"}},"required":["createdAt","lastModifiedAt","repositoryID","employeeID","issueDate","typeOfProofID"],"type":"object"}}}}
```

## The CreateTypeOfProofProposal object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateTypeOfProofProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"remark":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"skillDefinitionID":{"format":"uuid","type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"},"trainingCostsAmount":{"format":"int64","type":"integer"},"trainingCostsCurrency":{"type":"string"},"trainingDuration":{"format":"duration","type":"string"},"versionCode":{"type":"string"},"versionRootID":{"format":"uuid","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","name","skillDefinitionID","activePeriod"],"type":"object"}}}}
```

## The CreateTypeOfProofRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateTypeOfProofRequest":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"lastModifiedAt":{"format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"remark":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"},"skillDefinitionID":{"format":"uuid","type":"string"},"trainingCostsAmount":{"format":"int64","type":"integer"},"trainingCostsCurrency":{"type":"string"},"trainingDuration":{"format":"duration","type":"string"},"versionCode":{"type":"string"},"versionRootID":{"format":"uuid","type":"string"}},"required":["createdAt","lastModifiedAt","repositoryID","name","skillDefinitionID","activePeriod"],"type":"object"}}}}
```

## The CreateUpdateCustomFieldDefinitionProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateUpdateCustomFieldDefinitionProposalRequest":{"properties":{"code":{"description":"Omit this field to keep current value","type":"string"},"entityDefinitionID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"isUnique":{"description":"Omit this field to keep current value","type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"}}}}
```

## The CreateUpdateEmployeeProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateUpdateEmployeeProposalRequest":{"properties":{"birthDate":{"description":"Omit this field to keep current value","format":"date","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed (omit to keep current value)","type":"object"},"email":{"description":"Omit this field to keep current value","format":"email","type":"string"},"employeeNumber":{"description":"Omit this field to keep current value","type":"string"},"firstName":{"description":"Omit this field to keep current value","type":"string"},"id":{"format":"uuid","type":"string"},"initials":{"description":"Omit this field to keep current value","type":"string"},"remark":{"description":"Omit this field to keep current value","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"surname":{"description":"Omit this field to keep current value","type":"string"}},"required":["id","repositoryID"],"type":"object"}}}}
```

## The CreateUpdateEmployeeUnavailabilityProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateUpdateEmployeeUnavailabilityProposalRequest":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end) (omit to keep current value)","type":"string"},"employeeID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"reason":{"description":"Omit this field to keep current value","type":"string"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"}}}}
```

## The CreateUpdateEmploymentContractProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateUpdateEmploymentContractProposalRequest":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end) (omit to keep current value)","type":"string"},"contractTypeID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"employeeID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"}}}}
```

## The CreateUpdateEmploymentContractTypeProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateUpdateEmploymentContractTypeProposalRequest":{"properties":{"code":{"description":"Omit this field to keep current value","type":"string"},"id":{"format":"uuid","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"}}}}
```

## The CreateUpdateEmploymentRelationProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateUpdateEmploymentRelationProposalRequest":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end) (omit to keep current value)","type":"string"},"fromEmployeeID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"relationTypeID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"toEmployeeID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"}}}}
```

## The CreateUpdateEmploymentRelationTypeProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateUpdateEmploymentRelationTypeProposalRequest":{"properties":{"code":{"description":"Omit this field to keep current value","type":"string"},"id":{"format":"uuid","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"}}}}
```

## The CreateUpdateGroupingProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateUpdateGroupingProposalRequest":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end) (omit to keep current value)","type":"string"},"code":{"description":"Omit this field to keep current value","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed (omit to keep current value)","type":"object"},"definedInGroupingID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"id":{"format":"uuid","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"repositoryID":{"format":"uuid","type":"string"},"typeID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"}}}}
```

## The CreateUpdateGroupingTypeProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateUpdateGroupingTypeProposalRequest":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end) (omit to keep current value)","type":"string"},"code":{"description":"Omit this field to keep current value","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed (omit to keep current value)","type":"object"},"id":{"format":"uuid","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"}}}}
```

## The CreateUpdateMonitoringTraceProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateUpdateMonitoringTraceProposalRequest":{"properties":{"executedAt":{"description":"Omit this field to keep current value","format":"date-time","type":"string"},"id":{"format":"uuid","type":"string"},"remark":{"description":"Omit this field to keep current value","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestedAt":{"description":"Omit this field to keep current value","format":"date-time","type":"string"}},"required":["id","repositoryID"],"type":"object"}}}}
```

## The CreateUpdatePositionAssignmentProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateUpdatePositionAssignmentProposalRequest":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end) (omit to keep current value)","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed (omit to keep current value)","type":"object"},"employeeID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"remark":{"description":"Omit this field to keep current value","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"tagIDs":{"description":"Omit this field to keep current value","items":{"format":"uuid","type":"string"},"type":"array"}},"required":["id","repositoryID"],"type":"object"}}}}
```

## The CreateUpdateRatingScaleLevelDescriptorProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateUpdateRatingScaleLevelDescriptorProposalRequest":{"properties":{"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"id":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"}}}}
```

## The CreateUpdateRatingScaleLevelProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateUpdateRatingScaleLevelProposalRequest":{"properties":{"code":{"description":"Omit this field to keep current value","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed (omit to keep current value)","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"id":{"format":"uuid","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"}}}}
```

## The CreateUpdateRatingScaleProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateUpdateRatingScaleProposalRequest":{"properties":{"code":{"description":"Omit this field to keep current value","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed (omit to keep current value)","type":"object"},"id":{"format":"uuid","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"}}}}
```

## The CreateUpdateSkillCategoryProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateUpdateSkillCategoryProposalRequest":{"properties":{"code":{"description":"Omit this field to keep current value","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed (omit to keep current value)","type":"object"},"definedInCategoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"}}}}
```

## The CreateUpdateSkillDefinitionProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateUpdateSkillDefinitionProposalRequest":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end) (omit to keep current value)","type":"string"},"code":{"description":"Omit this field to keep current value","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed (omit to keep current value)","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"id":{"format":"uuid","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"ratingScaleID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"tagIDs":{"description":"Omit this field to keep current value","items":{"format":"uuid","type":"string"},"type":"array"},"typeID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"}}}}
```

## The CreateUpdateSkillDefinitionTypeProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateUpdateSkillDefinitionTypeProposalRequest":{"properties":{"code":{"description":"Omit this field to keep current value","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed (omit to keep current value)","type":"object"},"id":{"format":"uuid","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"}}}}
```

## The CreateUpdateSkillPlanningProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateUpdateSkillPlanningProposalRequest":{"properties":{"closeDate":{"description":"Omit this field to keep current value","format":"date","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed (omit to keep current value)","type":"object"},"deadlineDate":{"description":"Omit this field to keep current value","format":"date","type":"string"},"employeeID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"fromDate":{"description":"Omit this field to keep current value","format":"date","type":"string"},"id":{"format":"uuid","type":"string"},"remark":{"description":"Omit this field to keep current value","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"skillDefinitionID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"typeOfProofID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"}}}}
```

## The CreateUpdateSkillResultProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateUpdateSkillResultProposalRequest":{"properties":{"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed (omit to keep current value)","type":"object"},"employeeID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"expirationDate":{"description":"Omit this field to keep current value","format":"date","type":"string"},"id":{"format":"uuid","type":"string"},"issueDate":{"description":"Omit this field to keep current value","format":"date","type":"string"},"remark":{"description":"Omit this field to keep current value","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"scoreID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"typeOfProofID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"}}}}
```

## The CreateUpdateTypeOfProofProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CreateUpdateTypeOfProofProposalRequest":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end) (omit to keep current value)","type":"string"},"code":{"description":"Omit this field to keep current value","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed (omit to keep current value)","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"id":{"format":"uuid","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"remark":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"repositoryID":{"format":"uuid","type":"string"},"skillDefinitionID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"trainingCostsAmount":{"description":"Omit this field to keep current value","format":"int64","type":"integer"},"trainingCostsCurrency":{"description":"Omit this field to keep current value","type":"string"},"trainingDuration":{"description":"Omit this field to keep current value","format":"duration","type":"string"},"versionCode":{"description":"Omit this field to keep current value","type":"string"},"versionRootID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"required":["id","repositoryID"],"type":"object"}}}}
```

## The CustomFieldDefinition object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"CustomFieldDefinition":{"properties":{"code":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"entityDefinitionID":{"format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"isUnique":{"type":"boolean"},"lastModifiedAt":{"format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","code","name","entityDefinitionID","isUnique"],"type":"object"}}}}
```

## The DeleteCustomFieldDefinitionProposal object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"DeleteCustomFieldDefinitionProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The DeleteDocumentProposal object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"DeleteDocumentProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The DeleteEmployeeProposal object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"DeleteEmployeeProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The DeleteEmployeeUnavailabilityProposal object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"DeleteEmployeeUnavailabilityProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The DeleteEmploymentContractProposal object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"DeleteEmploymentContractProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The DeleteEmploymentContractTypeProposal object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"DeleteEmploymentContractTypeProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The DeleteEmploymentRelationProposal object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"DeleteEmploymentRelationProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The DeleteEmploymentRelationTypeProposal object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"DeleteEmploymentRelationTypeProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The DeleteGroupingProposal object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"DeleteGroupingProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The DeleteGroupingTypeProposal object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"DeleteGroupingTypeProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The DeleteMonitoringTraceProposal object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"DeleteMonitoringTraceProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The DeletePositionAssignmentProposal object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"DeletePositionAssignmentProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The DeleteRatingScaleLevelDescriptorProposal object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"DeleteRatingScaleLevelDescriptorProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The DeleteRatingScaleLevelProposal object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"DeleteRatingScaleLevelProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The DeleteRatingScaleProposal object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"DeleteRatingScaleProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The DeleteSkillCategoryProposal object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"DeleteSkillCategoryProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The DeleteSkillDefinitionProposal object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"DeleteSkillDefinitionProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The DeleteSkillDefinitionTypeProposal object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"DeleteSkillDefinitionTypeProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The DeleteSkillPlanningProposal object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"DeleteSkillPlanningProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The DeleteSkillResultProposal object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"DeleteSkillResultProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The DeleteTypeOfProofProposal object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"DeleteTypeOfProofProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The Document object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"Document":{"properties":{"contentType":{"description":"MIME type of the file","type":"string"},"downloadUrl":{"type":"string"},"filename":{"description":"Name of the file","type":"string"},"size":{"description":"Size of the file in bytes","type":"integer"}},"type":"object"}}}}
```

## The Employee object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"Employee":{"properties":{"birthDate":{"format":"date","type":"string"},"createdAt":{"format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"email":{"format":"email","type":"string"},"employeeNumber":{"type":"string"},"firstName":{"type":"string"},"id":{"format":"uuid","type":"string"},"initials":{"type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"surname":{"type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","surname"],"type":"object"}}}}
```

## The EmployeeUnavailability object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"EmployeeUnavailability":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"createdAt":{"format":"date-time","type":"string"},"employeeID":{"format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"reason":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","activePeriod","employeeID"],"type":"object"}}}}
```

## The EmploymentContract object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"EmploymentContract":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"contractTypeID":{"format":"uuid","type":"string"},"createdAt":{"format":"date-time","type":"string"},"employeeID":{"format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","activePeriod","employeeID"],"type":"object"}}}}
```

## The EmploymentContractType object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"EmploymentContractType":{"properties":{"code":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","code","name"],"type":"object"}}}}
```

## The EmploymentRelation object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"EmploymentRelation":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"createdAt":{"format":"date-time","type":"string"},"fromEmployeeID":{"format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"relationTypeID":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"toEmployeeID":{"format":"uuid","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","activePeriod","toEmployeeID","fromEmployeeID","relationTypeID"],"type":"object"}}}}
```

## The EmploymentRelationType object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"EmploymentRelationType":{"properties":{"code":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","code","name"],"type":"object"}}}}
```

## The EntityDefinition object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"EntityDefinition":{"properties":{"code":{"type":"string"},"id":{"format":"uuid","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"}},"required":["id","code","name"],"type":"object"}}}}
```

## The Error object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"Error":{"properties":{"code":{"description":"Machine-readable error code","enum":["INVALID_INPUT","MISSING_AUTH","INVALID_TOKEN","NOT_FOUND","INTERNAL_ERROR","RATE_LIMIT_EXCEEDED","PROPOSAL_CONFLICT","APPROVAL_REQUIRED"],"type":"string"},"details":{"additionalProperties":true,"description":"Additional error details","type":"object"},"message":{"description":"Human-readable error message","type":"string"},"requestId":{"description":"Unique request identifier for support","type":"string"}},"required":["code","message"],"type":"object"}}}}
```

## The Grouping object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"Grouping":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"definedInGroupingID":{"format":"uuid","type":"string"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"},"typeID":{"format":"uuid","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","code","name","activePeriod"],"type":"object"}}}}
```

## The GroupingType object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"GroupingType":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","code","name","activePeriod"],"type":"object"}}}}
```

## The ListCreateCustomFieldDefinitionProposalResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListCreateCustomFieldDefinitionProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/CreateCustomFieldDefinitionProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"CreateCustomFieldDefinitionProposal":{"properties":{"code":{"type":"string"},"entityDefinitionID":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"isUnique":{"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","code","name","entityDefinitionID","isUnique"],"type":"object"}}}}
```

## The ListCreateDocumentProposalResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListCreateDocumentProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/CreateDocumentProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"CreateDocumentProposal":{"properties":{"contentType":{"type":"string"},"fileID":{"type":"string"},"fileSize":{"format":"int32","type":"integer"},"filename":{"type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","fileID","fileSize"],"type":"object"}}}}
```

## The ListCreateEmployeeProposalResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListCreateEmployeeProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/CreateEmployeeProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"CreateEmployeeProposal":{"properties":{"birthDate":{"format":"date","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"email":{"format":"email","type":"string"},"employeeNumber":{"type":"string"},"firstName":{"type":"string"},"initials":{"type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"},"surname":{"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","surname"],"type":"object"}}}}
```

## The ListCreateEmployeeUnavailabilityProposalResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListCreateEmployeeUnavailabilityProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/CreateEmployeeUnavailabilityProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"CreateEmployeeUnavailabilityProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"employeeID":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"reason":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","activePeriod","employeeID"],"type":"object"}}}}
```

## The ListCreateEmploymentContractProposalResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListCreateEmploymentContractProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/CreateEmploymentContractProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"CreateEmploymentContractProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"contractTypeID":{"format":"uuid","type":"string"},"employeeID":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","activePeriod","employeeID"],"type":"object"}}}}
```

## The ListCreateEmploymentContractTypeProposalResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListCreateEmploymentContractTypeProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/CreateEmploymentContractTypeProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"CreateEmploymentContractTypeProposal":{"properties":{"code":{"type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","code","name"],"type":"object"}}}}
```

## The ListCreateEmploymentRelationProposalResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListCreateEmploymentRelationProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/CreateEmploymentRelationProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"CreateEmploymentRelationProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"fromEmployeeID":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"relationTypeID":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"},"toEmployeeID":{"format":"uuid","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","activePeriod","toEmployeeID","fromEmployeeID","relationTypeID"],"type":"object"}}}}
```

## The ListCreateEmploymentRelationTypeProposalResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListCreateEmploymentRelationTypeProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/CreateEmploymentRelationTypeProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"CreateEmploymentRelationTypeProposal":{"properties":{"code":{"type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","code","name"],"type":"object"}}}}
```

## The ListCreateGroupingProposalResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListCreateGroupingProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/CreateGroupingProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"CreateGroupingProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"definedInGroupingID":{"format":"uuid","type":"string"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"},"typeID":{"format":"uuid","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","code","name","activePeriod"],"type":"object"}}}}
```

## The ListCreateGroupingTypeProposalResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListCreateGroupingTypeProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/CreateGroupingTypeProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"CreateGroupingTypeProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","code","name","activePeriod"],"type":"object"}}}}
```

## The ListCreateMonitoringTraceProposalResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListCreateMonitoringTraceProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/CreateMonitoringTraceProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"CreateMonitoringTraceProposal":{"properties":{"executedAt":{"format":"date-time","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"requestedAt":{"format":"date-time","type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID"],"type":"object"}}}}
```

## The ListCreatePositionAssignmentProposalResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListCreatePositionAssignmentProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/CreatePositionAssignmentProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"CreatePositionAssignmentProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"employeeID":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"},"tagIDs":{"items":{"format":"uuid","type":"string"},"type":"array"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","employeeID","activePeriod","tagIDs"],"type":"object"}}}}
```

## The ListCreateRatingScaleLevelDescriptorProposalResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListCreateRatingScaleLevelDescriptorProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/CreateRatingScaleLevelDescriptorProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"CreateRatingScaleLevelDescriptorProposal":{"properties":{"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"ratingScaleLevelID":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"skillDefinitionID":{"format":"uuid","type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","ratingScaleLevelID","skillDefinitionID","description"],"type":"object"}}}}
```

## The ListCreateRatingScaleLevelProposalResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListCreateRatingScaleLevelProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/CreateRatingScaleLevelProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"CreateRatingScaleLevelProposal":{"properties":{"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"ratingScaleID":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"scoreOrder":{"format":"int32","type":"integer"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","ratingScaleID","scoreOrder","code","name"],"type":"object"}}}}
```

## The ListCreateRatingScaleProposalResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListCreateRatingScaleProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/CreateRatingScaleProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"CreateRatingScaleProposal":{"properties":{"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","code","name"],"type":"object"}}}}
```

## The ListCreateSkillCategoryProposalResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListCreateSkillCategoryProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/CreateSkillCategoryProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"CreateSkillCategoryProposal":{"properties":{"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"definedInCategoryID":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","name"],"type":"object"}}}}
```

## The ListCreateSkillDefinitionProposalResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListCreateSkillDefinitionProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/CreateSkillDefinitionProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"CreateSkillDefinitionProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"ratingScaleID":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"},"tagIDs":{"items":{"format":"uuid","type":"string"},"type":"array"},"typeID":{"format":"uuid","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","name","ratingScaleID","activePeriod","tagIDs"],"type":"object"}}}}
```

## The ListCreateSkillDefinitionTypeProposalResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListCreateSkillDefinitionTypeProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/CreateSkillDefinitionTypeProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"CreateSkillDefinitionTypeProposal":{"properties":{"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","code","name"],"type":"object"}}}}
```

## The ListCreateSkillPlanningProposalResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListCreateSkillPlanningProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/CreateSkillPlanningProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"CreateSkillPlanningProposal":{"properties":{"closeDate":{"format":"date","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"deadlineDate":{"format":"date","type":"string"},"employeeID":{"format":"uuid","type":"string"},"fromDate":{"format":"date","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"skillDefinitionID":{"format":"uuid","type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"},"typeOfProofID":{"format":"uuid","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","employeeID","fromDate","skillDefinitionID"],"type":"object"}}}}
```

## The ListCreateSkillResultProposalResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListCreateSkillResultProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/CreateSkillResultProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"CreateSkillResultProposal":{"properties":{"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"employeeID":{"format":"uuid","type":"string"},"expirationDate":{"format":"date","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"issueDate":{"format":"date","type":"string"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"scoreID":{"format":"uuid","type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"},"typeOfProofID":{"format":"uuid","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","employeeID","issueDate","typeOfProofID"],"type":"object"}}}}
```

## The ListCreateTypeOfProofProposalResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListCreateTypeOfProofProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/CreateTypeOfProofProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"CreateTypeOfProofProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"remark":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"skillDefinitionID":{"format":"uuid","type":"string"},"subjectID":{"format":"uuid","readOnly":true,"type":"string"},"trainingCostsAmount":{"format":"int64","type":"integer"},"trainingCostsCurrency":{"type":"string"},"trainingDuration":{"format":"duration","type":"string"},"versionCode":{"type":"string"},"versionRootID":{"format":"uuid","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","subjectID","repositoryID","name","skillDefinitionID","activePeriod"],"type":"object"}}}}
```

## The ListCustomFieldDefinitionResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListCustomFieldDefinitionResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/CustomFieldDefinition"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"CustomFieldDefinition":{"properties":{"code":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"entityDefinitionID":{"format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"isUnique":{"type":"boolean"},"lastModifiedAt":{"format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","code","name","entityDefinitionID","isUnique"],"type":"object"}}}}
```

## The ListDeleteCustomFieldDefinitionProposalResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListDeleteCustomFieldDefinitionProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/DeleteCustomFieldDefinitionProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"DeleteCustomFieldDefinitionProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The ListDeleteDocumentProposalResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListDeleteDocumentProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/DeleteDocumentProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"DeleteDocumentProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The ListDeleteEmployeeProposalResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListDeleteEmployeeProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/DeleteEmployeeProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"DeleteEmployeeProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The ListDeleteEmployeeUnavailabilityProposalResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListDeleteEmployeeUnavailabilityProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/DeleteEmployeeUnavailabilityProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"DeleteEmployeeUnavailabilityProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The ListDeleteEmploymentContractProposalResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListDeleteEmploymentContractProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/DeleteEmploymentContractProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"DeleteEmploymentContractProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The ListDeleteEmploymentContractTypeProposalResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListDeleteEmploymentContractTypeProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/DeleteEmploymentContractTypeProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"DeleteEmploymentContractTypeProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The ListDeleteEmploymentRelationProposalResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListDeleteEmploymentRelationProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/DeleteEmploymentRelationProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"DeleteEmploymentRelationProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The ListDeleteEmploymentRelationTypeProposalResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListDeleteEmploymentRelationTypeProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/DeleteEmploymentRelationTypeProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"DeleteEmploymentRelationTypeProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The ListDeleteGroupingProposalResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListDeleteGroupingProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/DeleteGroupingProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"DeleteGroupingProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The ListDeleteGroupingTypeProposalResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListDeleteGroupingTypeProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/DeleteGroupingTypeProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"DeleteGroupingTypeProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The ListDeleteMonitoringTraceProposalResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListDeleteMonitoringTraceProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/DeleteMonitoringTraceProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"DeleteMonitoringTraceProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The ListDeletePositionAssignmentProposalResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListDeletePositionAssignmentProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/DeletePositionAssignmentProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"DeletePositionAssignmentProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The ListDeleteRatingScaleLevelDescriptorProposalResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListDeleteRatingScaleLevelDescriptorProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/DeleteRatingScaleLevelDescriptorProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"DeleteRatingScaleLevelDescriptorProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The ListDeleteRatingScaleLevelProposalResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListDeleteRatingScaleLevelProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/DeleteRatingScaleLevelProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"DeleteRatingScaleLevelProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The ListDeleteRatingScaleProposalResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListDeleteRatingScaleProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/DeleteRatingScaleProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"DeleteRatingScaleProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The ListDeleteSkillCategoryProposalResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListDeleteSkillCategoryProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/DeleteSkillCategoryProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"DeleteSkillCategoryProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The ListDeleteSkillDefinitionProposalResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListDeleteSkillDefinitionProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/DeleteSkillDefinitionProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"DeleteSkillDefinitionProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The ListDeleteSkillDefinitionTypeProposalResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListDeleteSkillDefinitionTypeProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/DeleteSkillDefinitionTypeProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"DeleteSkillDefinitionTypeProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The ListDeleteSkillPlanningProposalResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListDeleteSkillPlanningProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/DeleteSkillPlanningProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"DeleteSkillPlanningProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The ListDeleteSkillResultProposalResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListDeleteSkillResultProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/DeleteSkillResultProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"DeleteSkillResultProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The ListDeleteTypeOfProofProposalResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListDeleteTypeOfProofProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/DeleteTypeOfProofProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"DeleteTypeOfProofProposal":{"properties":{"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The ListEmployeeResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListEmployeeResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/Employee"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"Employee":{"properties":{"birthDate":{"format":"date","type":"string"},"createdAt":{"format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"email":{"format":"email","type":"string"},"employeeNumber":{"type":"string"},"firstName":{"type":"string"},"id":{"format":"uuid","type":"string"},"initials":{"type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"surname":{"type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","surname"],"type":"object"}}}}
```

## The ListEmployeeUnavailabilityResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListEmployeeUnavailabilityResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/EmployeeUnavailability"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"EmployeeUnavailability":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"createdAt":{"format":"date-time","type":"string"},"employeeID":{"format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"reason":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","activePeriod","employeeID"],"type":"object"}}}}
```

## The ListEmploymentContractResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListEmploymentContractResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/EmploymentContract"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"EmploymentContract":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"contractTypeID":{"format":"uuid","type":"string"},"createdAt":{"format":"date-time","type":"string"},"employeeID":{"format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","activePeriod","employeeID"],"type":"object"}}}}
```

## The ListEmploymentContractTypeResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListEmploymentContractTypeResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/EmploymentContractType"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"EmploymentContractType":{"properties":{"code":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","code","name"],"type":"object"}}}}
```

## The ListEmploymentRelationResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListEmploymentRelationResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/EmploymentRelation"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"EmploymentRelation":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"createdAt":{"format":"date-time","type":"string"},"fromEmployeeID":{"format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"relationTypeID":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"toEmployeeID":{"format":"uuid","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","activePeriod","toEmployeeID","fromEmployeeID","relationTypeID"],"type":"object"}}}}
```

## The ListEmploymentRelationTypeResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListEmploymentRelationTypeResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/EmploymentRelationType"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"EmploymentRelationType":{"properties":{"code":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","code","name"],"type":"object"}}}}
```

## The ListEntityDefinitionResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListEntityDefinitionResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/EntityDefinition"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"EntityDefinition":{"properties":{"code":{"type":"string"},"id":{"format":"uuid","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"}},"required":["id","code","name"],"type":"object"}}}}
```

## The ListGroupingResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListGroupingResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/Grouping"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"Grouping":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"definedInGroupingID":{"format":"uuid","type":"string"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"},"typeID":{"format":"uuid","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","code","name","activePeriod"],"type":"object"}}}}
```

## The ListGroupingTypeResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListGroupingTypeResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/GroupingType"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"GroupingType":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","code","name","activePeriod"],"type":"object"}}}}
```

## The ListMonitoringTraceResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListMonitoringTraceResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/MonitoringTrace"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"MonitoringTrace":{"properties":{"createdAt":{"format":"date-time","type":"string"},"executedAt":{"format":"date-time","type":"string"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestedAt":{"format":"date-time","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID"],"type":"object"}}}}
```

## The ListPositionAssignmentResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListPositionAssignmentResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/PositionAssignment"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"PositionAssignment":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"createdAt":{"format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"employeeID":{"format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"tagIDs":{"items":{"format":"uuid","type":"string"},"type":"array"}},"required":["id","createdAt","lastModifiedAt","repositoryID","employeeID","activePeriod","tagIDs"],"type":"object"}}}}
```

## The ListRatingScaleLevelDescriptorResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListRatingScaleLevelDescriptorResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/RatingScaleLevelDescriptor"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"RatingScaleLevelDescriptor":{"properties":{"createdAt":{"format":"date-time","type":"string"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"ratingScaleLevelID":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"skillDefinitionID":{"format":"uuid","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","ratingScaleLevelID","skillDefinitionID","description"],"type":"object"}}}}
```

## The ListRatingScaleLevelResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListRatingScaleLevelResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/RatingScaleLevel"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"RatingScaleLevel":{"properties":{"code":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"ratingScaleID":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"scoreOrder":{"format":"int32","type":"integer"}},"required":["id","createdAt","lastModifiedAt","repositoryID","ratingScaleID","scoreOrder","code","name"],"type":"object"}}}}
```

## The ListRatingScaleResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListRatingScaleResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/RatingScale"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"RatingScale":{"properties":{"code":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","code","name"],"type":"object"}}}}
```

## The ListRepositoryResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListRepositoryResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/Repository"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"Repository":{"properties":{"code":{"type":"string"},"id":{"format":"uuid","type":"string"}},"required":["id","code"],"type":"object"}}}}
```

## The ListSkillCategoryResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListSkillCategoryResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/SkillCategory"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"SkillCategory":{"properties":{"code":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"definedInCategoryID":{"format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","name"],"type":"object"}}}}
```

## The ListSkillDefinitionResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListSkillDefinitionResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/SkillDefinition"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"SkillDefinition":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"ratingScaleID":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"tagIDs":{"items":{"format":"uuid","type":"string"},"type":"array"},"typeID":{"format":"uuid","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","name","ratingScaleID","activePeriod","tagIDs"],"type":"object"}}}}
```

## The ListSkillDefinitionTypeResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListSkillDefinitionTypeResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/SkillDefinitionType"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"SkillDefinitionType":{"properties":{"code":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","code","name"],"type":"object"}}}}
```

## The ListSkillPlanningResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListSkillPlanningResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/SkillPlanning"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"SkillPlanning":{"properties":{"closeDate":{"format":"date","type":"string"},"createdAt":{"format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"deadlineDate":{"format":"date","type":"string"},"employeeID":{"format":"uuid","type":"string"},"fromDate":{"format":"date","type":"string"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"skillDefinitionID":{"format":"uuid","type":"string"},"typeOfProofID":{"format":"uuid","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","employeeID","fromDate","skillDefinitionID"],"type":"object"}}}}
```

## The ListSkillResultResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListSkillResultResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/SkillResult"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"SkillResult":{"properties":{"createdAt":{"format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"employeeID":{"format":"uuid","type":"string"},"expirationDate":{"format":"date","type":"string"},"id":{"format":"uuid","type":"string"},"issueDate":{"format":"date","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"scoreID":{"format":"uuid","type":"string"},"typeOfProofID":{"format":"uuid","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","employeeID","issueDate","typeOfProofID"],"type":"object"}}}}
```

## The ListTypeOfProofResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListTypeOfProofResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TypeOfProof"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"TypeOfProof":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"remark":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"},"skillDefinitionID":{"format":"uuid","type":"string"},"trainingCostsAmount":{"format":"int64","type":"integer"},"trainingCostsCurrency":{"type":"string"},"trainingDuration":{"format":"duration","type":"string"},"versionCode":{"type":"string"},"versionRootID":{"format":"uuid","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","name","skillDefinitionID","activePeriod"],"type":"object"}}}}
```

## The ListUpdateCustomFieldDefinitionProposalResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListUpdateCustomFieldDefinitionProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UpdateCustomFieldDefinitionProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"UpdateCustomFieldDefinitionProposal":{"properties":{"code":{"type":"string"},"entityDefinitionID":{"format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"isUnique":{"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The ListUpdateEmployeeProposalResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListUpdateEmployeeProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UpdateEmployeeProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"UpdateEmployeeProposal":{"properties":{"birthDate":{"format":"date","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"email":{"format":"email","type":"string"},"employeeNumber":{"type":"string"},"firstName":{"type":"string"},"id":{"format":"uuid","type":"string"},"initials":{"type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"surname":{"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The ListUpdateEmployeeUnavailabilityProposalResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListUpdateEmployeeUnavailabilityProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UpdateEmployeeUnavailabilityProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"UpdateEmployeeUnavailabilityProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"employeeID":{"format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"reason":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The ListUpdateEmploymentContractProposalResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListUpdateEmploymentContractProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UpdateEmploymentContractProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"UpdateEmploymentContractProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"contractTypeID":{"format":"uuid","type":"string"},"employeeID":{"format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The ListUpdateEmploymentContractTypeProposalResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListUpdateEmploymentContractTypeProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UpdateEmploymentContractTypeProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"UpdateEmploymentContractTypeProposal":{"properties":{"code":{"type":"string"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The ListUpdateEmploymentRelationProposalResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListUpdateEmploymentRelationProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UpdateEmploymentRelationProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"UpdateEmploymentRelationProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"fromEmployeeID":{"format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"relationTypeID":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"toEmployeeID":{"format":"uuid","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The ListUpdateEmploymentRelationTypeProposalResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListUpdateEmploymentRelationTypeProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UpdateEmploymentRelationTypeProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"UpdateEmploymentRelationTypeProposal":{"properties":{"code":{"type":"string"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The ListUpdateGroupingProposalResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListUpdateGroupingProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UpdateGroupingProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"UpdateGroupingProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"definedInGroupingID":{"format":"uuid","type":"string"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"typeID":{"format":"uuid","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The ListUpdateGroupingTypeProposalResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListUpdateGroupingTypeProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UpdateGroupingTypeProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"UpdateGroupingTypeProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The ListUpdateMonitoringTraceProposalResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListUpdateMonitoringTraceProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UpdateMonitoringTraceProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"UpdateMonitoringTraceProposal":{"properties":{"executedAt":{"format":"date-time","type":"string"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"requestedAt":{"format":"date-time","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The ListUpdatePositionAssignmentProposalResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListUpdatePositionAssignmentProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UpdatePositionAssignmentProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"UpdatePositionAssignmentProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"employeeID":{"format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"tagIDs":{"items":{"format":"uuid","type":"string"},"type":"array"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The ListUpdateRatingScaleLevelDescriptorProposalResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListUpdateRatingScaleLevelDescriptorProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UpdateRatingScaleLevelDescriptorProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"UpdateRatingScaleLevelDescriptorProposal":{"properties":{"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The ListUpdateRatingScaleLevelProposalResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListUpdateRatingScaleLevelProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UpdateRatingScaleLevelProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"UpdateRatingScaleLevelProposal":{"properties":{"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The ListUpdateRatingScaleProposalResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListUpdateRatingScaleProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UpdateRatingScaleProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"UpdateRatingScaleProposal":{"properties":{"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The ListUpdateSkillCategoryProposalResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListUpdateSkillCategoryProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UpdateSkillCategoryProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"UpdateSkillCategoryProposal":{"properties":{"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"definedInCategoryID":{"format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The ListUpdateSkillDefinitionProposalResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListUpdateSkillDefinitionProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UpdateSkillDefinitionProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"UpdateSkillDefinitionProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"ratingScaleID":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"tagIDs":{"items":{"format":"uuid","type":"string"},"type":"array"},"typeID":{"format":"uuid","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The ListUpdateSkillDefinitionTypeProposalResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListUpdateSkillDefinitionTypeProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UpdateSkillDefinitionTypeProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"UpdateSkillDefinitionTypeProposal":{"properties":{"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The ListUpdateSkillPlanningProposalResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListUpdateSkillPlanningProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UpdateSkillPlanningProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"UpdateSkillPlanningProposal":{"properties":{"closeDate":{"format":"date","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"deadlineDate":{"format":"date","type":"string"},"employeeID":{"format":"uuid","type":"string"},"fromDate":{"format":"date","type":"string"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"skillDefinitionID":{"format":"uuid","type":"string"},"typeOfProofID":{"format":"uuid","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The ListUpdateSkillResultProposalResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListUpdateSkillResultProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UpdateSkillResultProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"UpdateSkillResultProposal":{"properties":{"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"employeeID":{"format":"uuid","type":"string"},"expirationDate":{"format":"date","type":"string"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"issueDate":{"format":"date","type":"string"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"scoreID":{"format":"uuid","type":"string"},"typeOfProofID":{"format":"uuid","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The ListUpdateTypeOfProofProposalResponse object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"ListUpdateTypeOfProofProposalResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UpdateTypeOfProofProposal"},"type":"array"},"pagination":{"properties":{"hasMore":{"description":"Indicates if there are more items to fetch","type":"boolean"},"limit":{"description":"Maximum number of items requested for this page","format":"int64","type":"integer"},"nextCursor":{"description":"Cursor for the next page. Pass this value in the 'cursor' parameter to get the next page.","type":"string"},"total":{"description":"Total number of items matching the query","format":"int64","type":"integer"}},"required":["total","limit","hasMore"],"type":"object"}},"required":["data","pagination"],"type":"object"},"UpdateTypeOfProofProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"remark":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"skillDefinitionID":{"format":"uuid","type":"string"},"trainingCostsAmount":{"format":"int64","type":"integer"},"trainingCostsCurrency":{"type":"string"},"trainingDuration":{"format":"duration","type":"string"},"versionCode":{"type":"string"},"versionRootID":{"format":"uuid","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The MonitoringTrace object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"MonitoringTrace":{"properties":{"createdAt":{"format":"date-time","type":"string"},"executedAt":{"format":"date-time","type":"string"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestedAt":{"format":"date-time","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID"],"type":"object"}}}}
```

## The PaginationInfo object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"PaginationInfo":{"properties":{"limit":{"description":"Maximum number of items returned","type":"integer"},"nextCursor":{"description":"Cursor for the next page (if available)","type":"string"},"total":{"description":"Total number of items available","type":"integer"}},"required":["total","limit"],"type":"object"}}}}
```

## The PositionAssignment object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"PositionAssignment":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"createdAt":{"format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"employeeID":{"format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"tagIDs":{"items":{"format":"uuid","type":"string"},"type":"array"}},"required":["id","createdAt","lastModifiedAt","repositoryID","employeeID","activePeriod","tagIDs"],"type":"object"}}}}
```

## The RatingScale object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"RatingScale":{"properties":{"code":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","code","name"],"type":"object"}}}}
```

## The RatingScaleLevel object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"RatingScaleLevel":{"properties":{"code":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"ratingScaleID":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"scoreOrder":{"format":"int32","type":"integer"}},"required":["id","createdAt","lastModifiedAt","repositoryID","ratingScaleID","scoreOrder","code","name"],"type":"object"}}}}
```

## The RatingScaleLevelDescriptor object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"RatingScaleLevelDescriptor":{"properties":{"createdAt":{"format":"date-time","type":"string"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"ratingScaleLevelID":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"skillDefinitionID":{"format":"uuid","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","ratingScaleLevelID","skillDefinitionID","description"],"type":"object"}}}}
```

## The Repository object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"Repository":{"properties":{"code":{"type":"string"},"id":{"format":"uuid","type":"string"}},"required":["id","code"],"type":"object"}}}}
```

## The SkillCategory object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"SkillCategory":{"properties":{"code":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"definedInCategoryID":{"format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","name"],"type":"object"}}}}
```

## The SkillDefinition object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"SkillDefinition":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"ratingScaleID":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"tagIDs":{"items":{"format":"uuid","type":"string"},"type":"array"},"typeID":{"format":"uuid","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","name","ratingScaleID","activePeriod","tagIDs"],"type":"object"}}}}
```

## The SkillDefinitionType object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"SkillDefinitionType":{"properties":{"code":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","code","name"],"type":"object"}}}}
```

## The SkillPlanning object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"SkillPlanning":{"properties":{"closeDate":{"format":"date","type":"string"},"createdAt":{"format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"deadlineDate":{"format":"date","type":"string"},"employeeID":{"format":"uuid","type":"string"},"fromDate":{"format":"date","type":"string"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"skillDefinitionID":{"format":"uuid","type":"string"},"typeOfProofID":{"format":"uuid","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","employeeID","fromDate","skillDefinitionID"],"type":"object"}}}}
```

## The SkillResult object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"SkillResult":{"properties":{"createdAt":{"format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"employeeID":{"format":"uuid","type":"string"},"expirationDate":{"format":"date","type":"string"},"id":{"format":"uuid","type":"string"},"issueDate":{"format":"date","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"scoreID":{"format":"uuid","type":"string"},"typeOfProofID":{"format":"uuid","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","employeeID","issueDate","typeOfProofID"],"type":"object"}}}}
```

## The TypeOfProof object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"TypeOfProof":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"createdAt":{"format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"id":{"format":"uuid","type":"string"},"lastModifiedAt":{"format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"remark":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"},"skillDefinitionID":{"format":"uuid","type":"string"},"trainingCostsAmount":{"format":"int64","type":"integer"},"trainingCostsCurrency":{"type":"string"},"trainingDuration":{"format":"duration","type":"string"},"versionCode":{"type":"string"},"versionRootID":{"format":"uuid","type":"string"}},"required":["id","createdAt","lastModifiedAt","repositoryID","name","skillDefinitionID","activePeriod"],"type":"object"}}}}
```

## The UpdateCreateCustomFieldDefinitionProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateCreateCustomFieldDefinitionProposalRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"code":{"description":"Omit this field to keep current value","type":"string"},"entityDefinitionID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"isUnique":{"description":"Omit this field to keep current value","type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateCreateDocumentProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateCreateDocumentProposalRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"contentType":{"description":"Omit this field to keep current value","type":"string"},"fileSize":{"description":"Omit this field to keep current value","format":"int32","type":"integer"},"filename":{"description":"Omit this field to keep current value","type":"string"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"subjectID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateCreateEmployeeProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateCreateEmployeeProposalRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"birthDate":{"description":"Omit this field to keep current value","format":"date","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed (omit to keep current value)","type":"object"},"email":{"description":"Omit this field to keep current value","format":"email","type":"string"},"employeeNumber":{"description":"Omit this field to keep current value","type":"string"},"firstName":{"description":"Omit this field to keep current value","type":"string"},"initials":{"description":"Omit this field to keep current value","type":"string"},"remark":{"description":"Omit this field to keep current value","type":"string"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"surname":{"description":"Omit this field to keep current value","type":"string"}},"type":"object"}}}}
```

## The UpdateCreateEmployeeUnavailabilityProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateCreateEmployeeUnavailabilityProposalRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end) (omit to keep current value)","type":"string"},"employeeID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"reason":{"description":"Omit this field to keep current value","type":"string"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateCreateEmploymentContractProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateCreateEmploymentContractProposalRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end) (omit to keep current value)","type":"string"},"contractTypeID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"employeeID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateCreateEmploymentContractTypeProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateCreateEmploymentContractTypeProposalRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"code":{"description":"Omit this field to keep current value","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateCreateEmploymentRelationProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateCreateEmploymentRelationProposalRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end) (omit to keep current value)","type":"string"},"fromEmployeeID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"relationTypeID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"toEmployeeID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateCreateEmploymentRelationTypeProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateCreateEmploymentRelationTypeProposalRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"code":{"description":"Omit this field to keep current value","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateCreateGroupingProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateCreateGroupingProposalRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end) (omit to keep current value)","type":"string"},"code":{"description":"Omit this field to keep current value","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed (omit to keep current value)","type":"object"},"definedInGroupingID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"typeID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateCreateGroupingTypeProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateCreateGroupingTypeProposalRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end) (omit to keep current value)","type":"string"},"code":{"description":"Omit this field to keep current value","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed (omit to keep current value)","type":"object"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateCreateMonitoringTraceProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateCreateMonitoringTraceProposalRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"executedAt":{"description":"Omit this field to keep current value","format":"date-time","type":"string"},"remark":{"description":"Omit this field to keep current value","type":"string"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"requestedAt":{"description":"Omit this field to keep current value","format":"date-time","type":"string"}},"type":"object"}}}}
```

## The UpdateCreatePositionAssignmentProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateCreatePositionAssignmentProposalRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end) (omit to keep current value)","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed (omit to keep current value)","type":"object"},"employeeID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"remark":{"description":"Omit this field to keep current value","type":"string"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"tagIDs":{"description":"Omit this field to keep current value","items":{"format":"uuid","type":"string"},"type":"array"}},"type":"object"}}}}
```

## The UpdateCreateRatingScaleLevelDescriptorProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateCreateRatingScaleLevelDescriptorProposalRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"ratingScaleLevelID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"skillDefinitionID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateCreateRatingScaleLevelProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateCreateRatingScaleLevelProposalRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"code":{"description":"Omit this field to keep current value","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed (omit to keep current value)","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"ratingScaleID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"scoreOrder":{"description":"Omit this field to keep current value","format":"int32","type":"integer"}},"type":"object"}}}}
```

## The UpdateCreateRatingScaleProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateCreateRatingScaleProposalRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"code":{"description":"Omit this field to keep current value","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed (omit to keep current value)","type":"object"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateCreateSkillCategoryProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateCreateSkillCategoryProposalRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"code":{"description":"Omit this field to keep current value","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed (omit to keep current value)","type":"object"},"definedInCategoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateCreateSkillDefinitionProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateCreateSkillDefinitionProposalRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end) (omit to keep current value)","type":"string"},"code":{"description":"Omit this field to keep current value","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed (omit to keep current value)","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"ratingScaleID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"tagIDs":{"description":"Omit this field to keep current value","items":{"format":"uuid","type":"string"},"type":"array"},"typeID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateCreateSkillDefinitionTypeProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateCreateSkillDefinitionTypeProposalRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"code":{"description":"Omit this field to keep current value","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed (omit to keep current value)","type":"object"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateCreateSkillPlanningProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateCreateSkillPlanningProposalRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"closeDate":{"description":"Omit this field to keep current value","format":"date","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed (omit to keep current value)","type":"object"},"deadlineDate":{"description":"Omit this field to keep current value","format":"date","type":"string"},"employeeID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"fromDate":{"description":"Omit this field to keep current value","format":"date","type":"string"},"remark":{"description":"Omit this field to keep current value","type":"string"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"skillDefinitionID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"typeOfProofID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateCreateSkillResultProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateCreateSkillResultProposalRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed (omit to keep current value)","type":"object"},"employeeID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"expirationDate":{"description":"Omit this field to keep current value","format":"date","type":"string"},"issueDate":{"description":"Omit this field to keep current value","format":"date","type":"string"},"remark":{"description":"Omit this field to keep current value","type":"string"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"scoreID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"typeOfProofID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateCreateTypeOfProofProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateCreateTypeOfProofProposalRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end) (omit to keep current value)","type":"string"},"code":{"description":"Omit this field to keep current value","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed (omit to keep current value)","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"remark":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"skillDefinitionID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"trainingCostsAmount":{"description":"Omit this field to keep current value","format":"int64","type":"integer"},"trainingCostsCurrency":{"description":"Omit this field to keep current value","type":"string"},"trainingDuration":{"description":"Omit this field to keep current value","format":"duration","type":"string"},"versionCode":{"description":"Omit this field to keep current value","type":"string"},"versionRootID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateCustomFieldDefinitionProposal object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateCustomFieldDefinitionProposal":{"properties":{"code":{"type":"string"},"entityDefinitionID":{"format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"isUnique":{"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The UpdateCustomFieldDefinitionRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateCustomFieldDefinitionRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"code":{"description":"Omit this field to keep current value","type":"string"},"createdAt":{"description":"Omit this field to keep current value","format":"date-time","type":"string"},"entityDefinitionID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"isUnique":{"description":"Omit this field to keep current value","type":"boolean"},"lastModifiedAt":{"description":"Omit this field to keep current value","format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateDeleteCustomFieldDefinitionProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateDeleteCustomFieldDefinitionProposalRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"id":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateDeleteDocumentProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateDeleteDocumentProposalRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"id":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateDeleteEmployeeProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateDeleteEmployeeProposalRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"id":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateDeleteEmployeeUnavailabilityProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateDeleteEmployeeUnavailabilityProposalRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"id":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateDeleteEmploymentContractProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateDeleteEmploymentContractProposalRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"id":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateDeleteEmploymentContractTypeProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateDeleteEmploymentContractTypeProposalRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"id":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateDeleteEmploymentRelationProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateDeleteEmploymentRelationProposalRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"id":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateDeleteEmploymentRelationTypeProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateDeleteEmploymentRelationTypeProposalRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"id":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateDeleteGroupingProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateDeleteGroupingProposalRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"id":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateDeleteGroupingTypeProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateDeleteGroupingTypeProposalRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"id":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateDeleteMonitoringTraceProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateDeleteMonitoringTraceProposalRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"id":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateDeletePositionAssignmentProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateDeletePositionAssignmentProposalRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"id":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateDeleteRatingScaleLevelDescriptorProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateDeleteRatingScaleLevelDescriptorProposalRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"id":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateDeleteRatingScaleLevelProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateDeleteRatingScaleLevelProposalRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"id":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateDeleteRatingScaleProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateDeleteRatingScaleProposalRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"id":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateDeleteSkillCategoryProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateDeleteSkillCategoryProposalRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"id":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateDeleteSkillDefinitionProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateDeleteSkillDefinitionProposalRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"id":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateDeleteSkillDefinitionTypeProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateDeleteSkillDefinitionTypeProposalRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"id":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateDeleteSkillPlanningProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateDeleteSkillPlanningProposalRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"id":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateDeleteSkillResultProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateDeleteSkillResultProposalRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"id":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateDeleteTypeOfProofProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateDeleteTypeOfProofProposalRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"id":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateEmployeeProposal object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateEmployeeProposal":{"properties":{"birthDate":{"format":"date","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"email":{"format":"email","type":"string"},"employeeNumber":{"type":"string"},"firstName":{"type":"string"},"id":{"format":"uuid","type":"string"},"initials":{"type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"surname":{"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The UpdateEmployeeRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateEmployeeRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"birthDate":{"description":"Omit this field to keep current value","format":"date","type":"string"},"createdAt":{"description":"Omit this field to keep current value","format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed (omit to keep current value)","type":"object"},"email":{"description":"Omit this field to keep current value","format":"email","type":"string"},"employeeNumber":{"description":"Omit this field to keep current value","type":"string"},"firstName":{"description":"Omit this field to keep current value","type":"string"},"initials":{"description":"Omit this field to keep current value","type":"string"},"lastModifiedAt":{"description":"Omit this field to keep current value","format":"date-time","type":"string"},"remark":{"description":"Omit this field to keep current value","type":"string"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"surname":{"description":"Omit this field to keep current value","type":"string"}},"type":"object"}}}}
```

## The UpdateEmployeeUnavailabilityProposal object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateEmployeeUnavailabilityProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"employeeID":{"format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"reason":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The UpdateEmployeeUnavailabilityRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateEmployeeUnavailabilityRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end) (omit to keep current value)","type":"string"},"createdAt":{"description":"Omit this field to keep current value","format":"date-time","type":"string"},"employeeID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"lastModifiedAt":{"description":"Omit this field to keep current value","format":"date-time","type":"string"},"reason":{"description":"Omit this field to keep current value","type":"string"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateEmploymentContractProposal object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateEmploymentContractProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"contractTypeID":{"format":"uuid","type":"string"},"employeeID":{"format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The UpdateEmploymentContractRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateEmploymentContractRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end) (omit to keep current value)","type":"string"},"contractTypeID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"createdAt":{"description":"Omit this field to keep current value","format":"date-time","type":"string"},"employeeID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"lastModifiedAt":{"description":"Omit this field to keep current value","format":"date-time","type":"string"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateEmploymentContractTypeProposal object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateEmploymentContractTypeProposal":{"properties":{"code":{"type":"string"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The UpdateEmploymentContractTypeRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateEmploymentContractTypeRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"code":{"description":"Omit this field to keep current value","type":"string"},"createdAt":{"description":"Omit this field to keep current value","format":"date-time","type":"string"},"lastModifiedAt":{"description":"Omit this field to keep current value","format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateEmploymentRelationProposal object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateEmploymentRelationProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"fromEmployeeID":{"format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"relationTypeID":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"toEmployeeID":{"format":"uuid","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The UpdateEmploymentRelationRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateEmploymentRelationRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end) (omit to keep current value)","type":"string"},"createdAt":{"description":"Omit this field to keep current value","format":"date-time","type":"string"},"fromEmployeeID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"lastModifiedAt":{"description":"Omit this field to keep current value","format":"date-time","type":"string"},"relationTypeID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"toEmployeeID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateEmploymentRelationTypeProposal object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateEmploymentRelationTypeProposal":{"properties":{"code":{"type":"string"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The UpdateEmploymentRelationTypeRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateEmploymentRelationTypeRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"code":{"description":"Omit this field to keep current value","type":"string"},"createdAt":{"description":"Omit this field to keep current value","format":"date-time","type":"string"},"lastModifiedAt":{"description":"Omit this field to keep current value","format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateEntityDefinitionRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateEntityDefinitionRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"code":{"description":"Omit this field to keep current value","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"}},"type":"object"}}}}
```

## The UpdateGroupingProposal object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateGroupingProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"definedInGroupingID":{"format":"uuid","type":"string"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"typeID":{"format":"uuid","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The UpdateGroupingRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateGroupingRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end) (omit to keep current value)","type":"string"},"code":{"description":"Omit this field to keep current value","type":"string"},"createdAt":{"description":"Omit this field to keep current value","format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed (omit to keep current value)","type":"object"},"definedInGroupingID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"lastModifiedAt":{"description":"Omit this field to keep current value","format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"typeID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateGroupingTypeProposal object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateGroupingTypeProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The UpdateGroupingTypeRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateGroupingTypeRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end) (omit to keep current value)","type":"string"},"code":{"description":"Omit this field to keep current value","type":"string"},"createdAt":{"description":"Omit this field to keep current value","format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed (omit to keep current value)","type":"object"},"lastModifiedAt":{"description":"Omit this field to keep current value","format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateMonitoringTraceProposal object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateMonitoringTraceProposal":{"properties":{"executedAt":{"format":"date-time","type":"string"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"requestedAt":{"format":"date-time","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The UpdateMonitoringTraceRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateMonitoringTraceRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"createdAt":{"description":"Omit this field to keep current value","format":"date-time","type":"string"},"executedAt":{"description":"Omit this field to keep current value","format":"date-time","type":"string"},"lastModifiedAt":{"description":"Omit this field to keep current value","format":"date-time","type":"string"},"remark":{"description":"Omit this field to keep current value","type":"string"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"requestedAt":{"description":"Omit this field to keep current value","format":"date-time","type":"string"}},"type":"object"}}}}
```

## The UpdatePositionAssignmentProposal object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdatePositionAssignmentProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"employeeID":{"format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"tagIDs":{"items":{"format":"uuid","type":"string"},"type":"array"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The UpdatePositionAssignmentRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdatePositionAssignmentRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end) (omit to keep current value)","type":"string"},"createdAt":{"description":"Omit this field to keep current value","format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed (omit to keep current value)","type":"object"},"employeeID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"lastModifiedAt":{"description":"Omit this field to keep current value","format":"date-time","type":"string"},"remark":{"description":"Omit this field to keep current value","type":"string"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"tagIDs":{"description":"Omit this field to keep current value","items":{"format":"uuid","type":"string"},"type":"array"}},"type":"object"}}}}
```

## The UpdateRatingScaleLevelDescriptorProposal object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateRatingScaleLevelDescriptorProposal":{"properties":{"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The UpdateRatingScaleLevelDescriptorRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateRatingScaleLevelDescriptorRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"createdAt":{"description":"Omit this field to keep current value","format":"date-time","type":"string"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"lastModifiedAt":{"description":"Omit this field to keep current value","format":"date-time","type":"string"},"ratingScaleLevelID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"skillDefinitionID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateRatingScaleLevelProposal object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateRatingScaleLevelProposal":{"properties":{"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The UpdateRatingScaleLevelRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateRatingScaleLevelRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"code":{"description":"Omit this field to keep current value","type":"string"},"createdAt":{"description":"Omit this field to keep current value","format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed (omit to keep current value)","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"lastModifiedAt":{"description":"Omit this field to keep current value","format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"ratingScaleID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"scoreOrder":{"description":"Omit this field to keep current value","format":"int32","type":"integer"}},"type":"object"}}}}
```

## The UpdateRatingScaleProposal object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateRatingScaleProposal":{"properties":{"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The UpdateRatingScaleRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateRatingScaleRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"code":{"description":"Omit this field to keep current value","type":"string"},"createdAt":{"description":"Omit this field to keep current value","format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed (omit to keep current value)","type":"object"},"lastModifiedAt":{"description":"Omit this field to keep current value","format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateRepositoryRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateRepositoryRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"code":{"description":"Omit this field to keep current value","type":"string"}},"type":"object"}}}}
```

## The UpdateSkillCategoryProposal object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateSkillCategoryProposal":{"properties":{"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"definedInCategoryID":{"format":"uuid","type":"string"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The UpdateSkillCategoryRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateSkillCategoryRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"code":{"description":"Omit this field to keep current value","type":"string"},"createdAt":{"description":"Omit this field to keep current value","format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed (omit to keep current value)","type":"object"},"definedInCategoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"lastModifiedAt":{"description":"Omit this field to keep current value","format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateSkillDefinitionProposal object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateSkillDefinitionProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"ratingScaleID":{"format":"uuid","type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"tagIDs":{"items":{"format":"uuid","type":"string"},"type":"array"},"typeID":{"format":"uuid","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The UpdateSkillDefinitionRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateSkillDefinitionRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end) (omit to keep current value)","type":"string"},"code":{"description":"Omit this field to keep current value","type":"string"},"createdAt":{"description":"Omit this field to keep current value","format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed (omit to keep current value)","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"lastModifiedAt":{"description":"Omit this field to keep current value","format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"ratingScaleID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"tagIDs":{"description":"Omit this field to keep current value","items":{"format":"uuid","type":"string"},"type":"array"},"typeID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateSkillDefinitionTypeProposal object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateSkillDefinitionTypeProposal":{"properties":{"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The UpdateSkillDefinitionTypeRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateSkillDefinitionTypeRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"code":{"description":"Omit this field to keep current value","type":"string"},"createdAt":{"description":"Omit this field to keep current value","format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed (omit to keep current value)","type":"object"},"lastModifiedAt":{"description":"Omit this field to keep current value","format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateSkillPlanningProposal object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateSkillPlanningProposal":{"properties":{"closeDate":{"format":"date","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"deadlineDate":{"format":"date","type":"string"},"employeeID":{"format":"uuid","type":"string"},"fromDate":{"format":"date","type":"string"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"skillDefinitionID":{"format":"uuid","type":"string"},"typeOfProofID":{"format":"uuid","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The UpdateSkillPlanningRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateSkillPlanningRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"closeDate":{"description":"Omit this field to keep current value","format":"date","type":"string"},"createdAt":{"description":"Omit this field to keep current value","format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed (omit to keep current value)","type":"object"},"deadlineDate":{"description":"Omit this field to keep current value","format":"date","type":"string"},"employeeID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"fromDate":{"description":"Omit this field to keep current value","format":"date","type":"string"},"lastModifiedAt":{"description":"Omit this field to keep current value","format":"date-time","type":"string"},"remark":{"description":"Omit this field to keep current value","type":"string"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"skillDefinitionID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"typeOfProofID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateSkillResultProposal object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateSkillResultProposal":{"properties":{"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"employeeID":{"format":"uuid","type":"string"},"expirationDate":{"format":"date","type":"string"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"issueDate":{"format":"date","type":"string"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"remark":{"type":"string"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"scoreID":{"format":"uuid","type":"string"},"typeOfProofID":{"format":"uuid","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The UpdateSkillResultRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateSkillResultRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"createdAt":{"description":"Omit this field to keep current value","format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed (omit to keep current value)","type":"object"},"employeeID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"expirationDate":{"description":"Omit this field to keep current value","format":"date","type":"string"},"issueDate":{"description":"Omit this field to keep current value","format":"date","type":"string"},"lastModifiedAt":{"description":"Omit this field to keep current value","format":"date-time","type":"string"},"remark":{"description":"Omit this field to keep current value","type":"string"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"scoreID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"typeOfProofID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateTypeOfProofProposal object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateTypeOfProofProposal":{"properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end)","type":"string"},"code":{"type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"id":{"format":"uuid","type":"string"},"isProposalExecutionFailed":{"readOnly":true,"type":"boolean"},"isProposalResolved":{"readOnly":true,"type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"proposalExecutionErrorText":{"readOnly":true,"type":"string"},"remark":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys","type":"object"},"repositoryID":{"format":"uuid","type":"string"},"requestID":{"format":"uuid","readOnly":true,"type":"string"},"skillDefinitionID":{"format":"uuid","type":"string"},"trainingCostsAmount":{"format":"int64","type":"integer"},"trainingCostsCurrency":{"type":"string"},"trainingDuration":{"format":"duration","type":"string"},"versionCode":{"type":"string"},"versionRootID":{"format":"uuid","type":"string"}},"required":["requestID","isProposalResolved","isProposalExecutionFailed","id","repositoryID"],"type":"object"}}}}
```

## The UpdateTypeOfProofRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateTypeOfProofRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end) (omit to keep current value)","type":"string"},"code":{"description":"Omit this field to keep current value","type":"string"},"createdAt":{"description":"Omit this field to keep current value","format":"date-time","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed (omit to keep current value)","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"lastModifiedAt":{"description":"Omit this field to keep current value","format":"date-time","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"remark":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"skillDefinitionID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"trainingCostsAmount":{"description":"Omit this field to keep current value","format":"int64","type":"integer"},"trainingCostsCurrency":{"description":"Omit this field to keep current value","type":"string"},"trainingDuration":{"description":"Omit this field to keep current value","format":"duration","type":"string"},"versionCode":{"description":"Omit this field to keep current value","type":"string"},"versionRootID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateUpdateCustomFieldDefinitionProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateUpdateCustomFieldDefinitionProposalRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"code":{"description":"Omit this field to keep current value","type":"string"},"entityDefinitionID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"id":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"isUnique":{"description":"Omit this field to keep current value","type":"boolean"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateUpdateEmployeeProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateUpdateEmployeeProposalRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"birthDate":{"description":"Omit this field to keep current value","format":"date","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed (omit to keep current value)","type":"object"},"email":{"description":"Omit this field to keep current value","format":"email","type":"string"},"employeeNumber":{"description":"Omit this field to keep current value","type":"string"},"firstName":{"description":"Omit this field to keep current value","type":"string"},"id":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"initials":{"description":"Omit this field to keep current value","type":"string"},"remark":{"description":"Omit this field to keep current value","type":"string"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"surname":{"description":"Omit this field to keep current value","type":"string"}},"type":"object"}}}}
```

## The UpdateUpdateEmployeeUnavailabilityProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateUpdateEmployeeUnavailabilityProposalRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end) (omit to keep current value)","type":"string"},"employeeID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"id":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"reason":{"description":"Omit this field to keep current value","type":"string"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateUpdateEmploymentContractProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateUpdateEmploymentContractProposalRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end) (omit to keep current value)","type":"string"},"contractTypeID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"employeeID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"id":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateUpdateEmploymentContractTypeProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateUpdateEmploymentContractTypeProposalRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"code":{"description":"Omit this field to keep current value","type":"string"},"id":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateUpdateEmploymentRelationProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateUpdateEmploymentRelationProposalRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end) (omit to keep current value)","type":"string"},"fromEmployeeID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"id":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"relationTypeID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"toEmployeeID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateUpdateEmploymentRelationTypeProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateUpdateEmploymentRelationTypeProposalRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"code":{"description":"Omit this field to keep current value","type":"string"},"id":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateUpdateGroupingProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateUpdateGroupingProposalRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end) (omit to keep current value)","type":"string"},"code":{"description":"Omit this field to keep current value","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed (omit to keep current value)","type":"object"},"definedInGroupingID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"id":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"typeID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateUpdateGroupingTypeProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateUpdateGroupingTypeProposalRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end) (omit to keep current value)","type":"string"},"code":{"description":"Omit this field to keep current value","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed (omit to keep current value)","type":"object"},"id":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateUpdateMonitoringTraceProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateUpdateMonitoringTraceProposalRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"executedAt":{"description":"Omit this field to keep current value","format":"date-time","type":"string"},"id":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"remark":{"description":"Omit this field to keep current value","type":"string"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"requestedAt":{"description":"Omit this field to keep current value","format":"date-time","type":"string"}},"type":"object"}}}}
```

## The UpdateUpdatePositionAssignmentProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateUpdatePositionAssignmentProposalRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end) (omit to keep current value)","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed (omit to keep current value)","type":"object"},"employeeID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"id":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"remark":{"description":"Omit this field to keep current value","type":"string"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"tagIDs":{"description":"Omit this field to keep current value","items":{"format":"uuid","type":"string"},"type":"array"}},"type":"object"}}}}
```

## The UpdateUpdateRatingScaleLevelDescriptorProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateUpdateRatingScaleLevelDescriptorProposalRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"id":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateUpdateRatingScaleLevelProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateUpdateRatingScaleLevelProposalRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"code":{"description":"Omit this field to keep current value","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed (omit to keep current value)","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"id":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateUpdateRatingScaleProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateUpdateRatingScaleProposalRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"code":{"description":"Omit this field to keep current value","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed (omit to keep current value)","type":"object"},"id":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateUpdateSkillCategoryProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateUpdateSkillCategoryProposalRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"code":{"description":"Omit this field to keep current value","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed (omit to keep current value)","type":"object"},"definedInCategoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"id":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateUpdateSkillDefinitionProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateUpdateSkillDefinitionProposalRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end) (omit to keep current value)","type":"string"},"code":{"description":"Omit this field to keep current value","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed (omit to keep current value)","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"id":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"ratingScaleID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"tagIDs":{"description":"Omit this field to keep current value","items":{"format":"uuid","type":"string"},"type":"array"},"typeID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateUpdateSkillDefinitionTypeProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateUpdateSkillDefinitionTypeProposalRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"code":{"description":"Omit this field to keep current value","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed (omit to keep current value)","type":"object"},"id":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateUpdateSkillPlanningProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateUpdateSkillPlanningProposalRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"closeDate":{"description":"Omit this field to keep current value","format":"date","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed (omit to keep current value)","type":"object"},"deadlineDate":{"description":"Omit this field to keep current value","format":"date","type":"string"},"employeeID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"fromDate":{"description":"Omit this field to keep current value","format":"date","type":"string"},"id":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"remark":{"description":"Omit this field to keep current value","type":"string"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"skillDefinitionID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"typeOfProofID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateUpdateSkillResultProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateUpdateSkillResultProposalRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed (omit to keep current value)","type":"object"},"employeeID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"expirationDate":{"description":"Omit this field to keep current value","format":"date","type":"string"},"id":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"issueDate":{"description":"Omit this field to keep current value","format":"date","type":"string"},"remark":{"description":"Omit this field to keep current value","type":"string"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"scoreID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"typeOfProofID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```

## The UpdateUpdateTypeOfProofProposalRequest object

```json
{"openapi":"3.0.3","info":{"title":"AG5 Skills Management API","version":{"build":0,"name":"","minor":0}},"components":{"schemas":{"UpdateUpdateTypeOfProofProposalRequest":{"description":"Update request object. All fields are optional - omitted fields will not be changed. Only include fields you want to update. Setting a field to null will clear its value (where applicable).","properties":{"activePeriod":{"description":"Date range in PostgreSQL format [start,end) (omit to keep current value)","type":"string"},"code":{"description":"Omit this field to keep current value","type":"string"},"customValues":{"additionalProperties":{"type":"string"},"description":"Custom field values - only declared custom fields for this entity type are allowed (omit to keep current value)","type":"object"},"description":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"id":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"name":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"remark":{"additionalProperties":{"type":"string"},"description":"Internationalized string (IString) - object with language codes as keys (omit to keep current value)","type":"object"},"repositoryID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"skillDefinitionID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"},"trainingCostsAmount":{"description":"Omit this field to keep current value","format":"int64","type":"integer"},"trainingCostsCurrency":{"description":"Omit this field to keep current value","type":"string"},"trainingDuration":{"description":"Omit this field to keep current value","format":"duration","type":"string"},"versionCode":{"description":"Omit this field to keep current value","type":"string"},"versionRootID":{"description":"Omit this field to keep current value","format":"uuid","type":"string"}},"type":"object"}}}}
```


# Version 3 - Deprecated


# Achievements

{% openapi src="<https://raw.githubusercontent.com/ag5/openapi/main/spec/v3/openapi.json>" path="/achievements" method="get" %}
<https://raw.githubusercontent.com/ag5/openapi/main/spec/v3/openapi.json>
{% endopenapi %}

{% openapi src="<https://raw.githubusercontent.com/ag5/openapi/main/spec/v3/openapi.json>" path="/achievements/{id}" method="get" %}
<https://raw.githubusercontent.com/ag5/openapi/main/spec/v3/openapi.json>
{% endopenapi %}


# ContractTypes

{% openapi src="<https://raw.githubusercontent.com/ag5/openapi/main/spec/v3/openapi.json>" path="/contractTypes" method="get" %}
<https://raw.githubusercontent.com/ag5/openapi/main/spec/v3/openapi.json>
{% endopenapi %}

{% openapi src="<https://raw.githubusercontent.com/ag5/openapi/main/spec/v3/openapi.json>" path="/contractTypes/{id}" method="get" %}
<https://raw.githubusercontent.com/ag5/openapi/main/spec/v3/openapi.json>
{% endopenapi %}


# EmploymentContracts

{% openapi src="<https://raw.githubusercontent.com/ag5/openapi/main/spec/v3/openapi.json>" path="/contractTypes/{id}/employmentContracts" method="get" %}
<https://raw.githubusercontent.com/ag5/openapi/main/spec/v3/openapi.json>
{% endopenapi %}


# EmploymentContracts

{% openapi src="<https://raw.githubusercontent.com/ag5/openapi/main/spec/v3/openapi.json>" path="/employmentContracts" method="get" %}
<https://raw.githubusercontent.com/ag5/openapi/main/spec/v3/openapi.json>
{% endopenapi %}

{% openapi src="<https://raw.githubusercontent.com/ag5/openapi/main/spec/v3/openapi.json>" path="/employmentContracts/{id}" method="get" %}
<https://raw.githubusercontent.com/ag5/openapi/main/spec/v3/openapi.json>
{% endopenapi %}


# EmploymentRelations

{% openapi src="<https://raw.githubusercontent.com/ag5/openapi/main/spec/v3/openapi.json>" path="/employmentRelations" method="get" %}
<https://raw.githubusercontent.com/ag5/openapi/main/spec/v3/openapi.json>
{% endopenapi %}

{% openapi src="<https://raw.githubusercontent.com/ag5/openapi/main/spec/v3/openapi.json>" path="/employmentRelations/{id}" method="get" %}
<https://raw.githubusercontent.com/ag5/openapi/main/spec/v3/openapi.json>
{% endopenapi %}


# Employments

{% openapi src="<https://raw.githubusercontent.com/ag5/openapi/main/spec/v3/openapi.json>" path="/employments" method="get" %}
<https://raw.githubusercontent.com/ag5/openapi/main/spec/v3/openapi.json>
{% endopenapi %}

{% openapi src="<https://raw.githubusercontent.com/ag5/openapi/main/spec/v3/openapi.json>" path="/employments/{id}" method="get" %}
<https://raw.githubusercontent.com/ag5/openapi/main/spec/v3/openapi.json>
{% endopenapi %}


# Achievements

{% openapi src="<https://raw.githubusercontent.com/ag5/openapi/main/spec/v3/openapi.json>" path="/employments/{id}/achievements" method="get" %}
<https://raw.githubusercontent.com/ag5/openapi/main/spec/v3/openapi.json>
{% endopenapi %}


# ApprovedAchievements

{% openapi src="<https://raw.githubusercontent.com/ag5/openapi/main/spec/v3/openapi.json>" path="/employments/{id}/approvedAchievements" method="get" %}
<https://raw.githubusercontent.com/ag5/openapi/main/spec/v3/openapi.json>
{% endopenapi %}


# InProgressEntries

{% openapi src="<https://raw.githubusercontent.com/ag5/openapi/main/spec/v3/openapi.json>" path="/employments/{id}/inProgressEntries" method="get" %}
<https://raw.githubusercontent.com/ag5/openapi/main/spec/v3/openapi.json>
{% endopenapi %}


# Positions

{% openapi src="<https://raw.githubusercontent.com/ag5/openapi/main/spec/v3/openapi.json>" path="/employments/{id}/positions" method="get" %}
<https://raw.githubusercontent.com/ag5/openapi/main/spec/v3/openapi.json>
{% endopenapi %}




---

[Next Page](/llms-full.txt/1)

