# 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"]}}}}
```
