openapi: 3.2.0 info: title: Content Gateway Groups API version: 1.0.0 servers: - url: https://content-gateway-example.com/v1 description: https://content-gateway-example.com/v1 tags: - name: Groups paths: /groups: get: operationId: list-groups summary: List groups description: Retrieve a paginated list of groups using OData parameters. tags: - Groups parameters: - name: $top in: query description: Number of items to return per page (default pagination) required: false schema: type: integer - name: $skip in: query description: Number of items to skip (default pagination offset) required: false schema: type: integer - name: $skiptoken in: query description: Used when the query parameters can be memoized into an encoded string containing filtering and pagination parameters. If the endpoint supports memoized paging, the first call can use $top and $skip, while @odata.nextLink will return with $skiptoken. If memoized querying is not supported, $top and $skip should be sufficient. required: false schema: type: string - name: $filter in: query required: false schema: type: string - name: $select in: query required: false schema: type: string - name: $orderby in: query required: false schema: type: string responses: '200': description: Group list response content: application/json: schema: $ref: '#/components/schemas/GroupCollection' '400': description: Bad Request - The request was invalid or cannot be served. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized - The request requires user authentication. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Forbidden - The server understood the request but refuses to authorize it. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Not Found - The requested resource could not be found. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '429': description: Too Many Requests - Rate limit exceeded. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Internal Server Error - The server encountered an unexpected condition. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '503': description: Service Unavailable - The server is currently unable to handle the request. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' /groups/{groupId}/members: get: operationId: list-group-members summary: List group members description: List direct members (users or groups) of a group. No recursion supported. tags: - Groups parameters: - name: groupId in: path required: true schema: type: string - name: $top in: query description: Number of items to return per page (default pagination) required: false schema: type: integer - name: $skiptoken in: query description: Used when the query parameters can be memoized into an encoded string containing filtering and pagination parameters. If the endpoint supports memoized paging, the first call can use $top and $skip, while @odata.nextLink will return with $skiptoken. If memoized querying is not supported, $top and $skip should be sufficient. required: false schema: type: string - name: $filter in: query required: false schema: type: string - name: $select in: query required: false schema: type: string responses: '200': description: Group members list response content: application/json: schema: $ref: '#/components/schemas/GroupMemberCollection' '400': description: Bad Request - The request was invalid or cannot be served. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized - The request requires user authentication. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '403': description: Forbidden - The server understood the request but refuses to authorize it. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Not Found - The requested resource could not be found. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '429': description: Too Many Requests - Rate limit exceeded. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Internal Server Error - The server encountered an unexpected condition. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '503': description: Service Unavailable - The server is currently unable to handle the request. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' components: schemas: GroupCollection: type: object properties: '@odata.context': type: string value: type: array items: $ref: '#/components/schemas/Group' '@odata.nextLink': type: string title: GroupCollection GroupMemberCollection: type: object properties: '@odata.context': type: string value: type: array items: $ref: '#/components/schemas/GroupMember' '@odata.nextLink': type: string title: GroupMemberCollection GroupMetadata: type: object properties: {} description: Custom key-value metadata for the group. title: GroupMetadata ErrorResponse: type: object properties: error: $ref: '#/components/schemas/ErrorResponseError' required: - error title: ErrorResponse ErrorResponseError: type: object properties: code: type: string description: Standard error code (e.g., UNAUTHORIZED, INVALID_ARGUMENT, NOT_FOUND). message: type: string description: Human-readable explanation of the error. required: - code - message title: ErrorResponseError GroupMember: type: object properties: type: type: string description: 'Entity type. Enum: USER | GROUP' id: type: string description: ID of the member (user or group). name: type: string description: Name of the member (optional). title: GroupMember Group: type: object properties: id: type: string description: Unique identifier for the group. name: type: string description: Name of the group. created_datetime: type: string description: Timestamp when the group was created. last_modified_datetime: type: string description: Timestamp when the group was last updated. metadata: $ref: '#/components/schemas/GroupMetadata' description: Custom key-value metadata for the group. title: Group