openapi: 3.1.0 info: contact: email: support@konghq.com name: Kong Inc url: https://konghq.com description: 'OpenAPI 3.0 spec for Kong Gateway''s Admin API. You can learn more about Kong Gateway at [developer.konghq.com](https://developer.konghq.com). Give Kong a star at the [Kong/kong](https://github.com/kong/kong) repository.' license: name: Apache 2.0 url: https://www.apache.org/licenses/LICENSE-2.0.html title: Kong Enterprise Admin ACLs Team Membership API version: 3.14.0 servers: - description: Default Admin API URL url: '{protocol}://{hostname}:{port}{path}' variables: hostname: default: localhost description: Hostname for Kong's Admin API path: default: / description: Base path for Kong's Admin API port: default: '8001' description: Port for Kong's Admin API protocol: default: http description: Protocol for requests to Kong's Admin API enum: - http - https security: - adminToken: [] tags: - name: Team Membership paths: /v3/teams/{teamId}/users: parameters: - name: teamId in: path description: ID of the team. required: true schema: type: string format: uuid example: d32d905a-ed33-46a3-a093-d8f536af9a8a get: operationId: list-team-users summary: List Team Users description: Returns a paginated list of users that belong to the team specified in the path parameter. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' - name: filter in: query description: Filter users returned in the response. required: false schema: type: object properties: id: $ref: '#/components/schemas/StringFieldEqualsFilter' email: $ref: '#/components/schemas/LegacyStringFieldFilter' full_name: $ref: '#/components/schemas/LegacyStringFieldFilter' active: $ref: '#/components/schemas/BooleanFieldFilter' style: deepObject responses: '200': $ref: '#/components/responses/UserCollection' '400': $ref: '#/components/responses/IdentityBadRequest' '404': $ref: '#/components/responses/IdentityNotFound' servers: - url: https://global.api.konghq.com/ tags: - Team Membership post: x-speakeasy-entity-operation: terraform-resource: TeamUser#create terraform-datasource: null operationId: add-user-to-team summary: Add User description: Adds a user to a team. requestBody: $ref: '#/components/requestBodies/AddUserToTeam' responses: '201': description: Created '400': $ref: '#/components/responses/IdentityBadRequest' '404': $ref: '#/components/responses/IdentityNotFound' '409': $ref: '#/components/responses/IdentityConflict' servers: - url: https://global.api.konghq.com/ tags: - Team Membership /v3/teams/{teamId}/users/{userId}: parameters: - name: userId in: path description: User ID required: true schema: type: string format: uuid example: d32d905a-ed33-46a3-a093-d8f536af9a8a - name: teamId in: path description: Team ID. required: true schema: type: string format: uuid example: d32d905a-ed33-46a3-a093-d8f536af9a8a delete: x-speakeasy-entity-operation: terraform-resource: TeamUser#delete terraform-datasource: null operationId: remove-user-from-team summary: Remove User description: 'Removes a user from a team. If the user was removed, returns a 204 empty response. Returns 404 if the user or team were not found.' responses: '204': description: No Content '400': $ref: '#/components/responses/IdentityBadRequest' '404': $ref: '#/components/responses/IdentityNotFound' servers: - url: https://global.api.konghq.com/ tags: - Team Membership /v3/users/{userId}/teams: parameters: - name: userId in: path description: The user ID. required: true schema: type: string format: uuid example: d32d905a-ed33-46a3-a093-d8f536af9a8a get: operationId: list-user-teams summary: List User Teams description: Returns a paginated list of a teams that the user belongs to. parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' - name: filter in: query description: Filter teams returned in the response. required: false schema: type: object properties: name: $ref: '#/components/schemas/LegacyStringFieldFilter' style: deepObject responses: '200': $ref: '#/components/responses/TeamCollection' '404': $ref: '#/components/responses/IdentityNotFound' servers: - url: https://global.api.konghq.com/ tags: - Team Membership components: schemas: InvalidParameterMinimumLength: type: object properties: field: type: string example: name readOnly: true rule: description: invalid parameters rules type: string enum: - min_length - min_digits - min_lowercase - min_uppercase - min_symbols - min_items - min nullable: false readOnly: true x-speakeasy-unknown-values: allow minimum: type: integer example: 8 source: type: string example: body reason: type: string example: must have at least 8 characters readOnly: true additionalProperties: false required: - field - reason - rule - minimum StringFieldEqualsFilter: description: Filters on the given string field value by exact match. properties: eq: type: string title: StringFieldEqualsFilter InvalidParameterChoiceItem: type: object properties: field: type: string example: name readOnly: true rule: description: invalid parameters rules type: string enum: - enum nullable: false readOnly: true reason: type: string example: is a required field readOnly: true choices: type: array items: {} minItems: 1 nullable: false readOnly: true uniqueItems: true source: type: string example: body additionalProperties: false required: - field - reason - rule - choices ConflictError: allOf: - $ref: '#/components/schemas/BaseError' - type: object properties: status: example: 409 title: example: Conflict type: example: https://httpstatuses.com/409 instance: example: kong:trace:1234567890 detail: example: Conflict InvalidParameterMaximumLength: type: object properties: field: type: string example: name readOnly: true rule: description: invalid parameters rules type: string enum: - max_length - max_items - max nullable: false readOnly: true x-speakeasy-unknown-values: allow maximum: type: integer example: 8 source: type: string example: body reason: type: string example: must not have more than 8 characters readOnly: true additionalProperties: false required: - field - reason - rule - maximum LegacyStringFieldFilter: description: 'Filter using **one** of the following operators: `eq`, `contains`' type: object properties: eq: description: The field exactly matches the provided value. type: string contains: description: The field contains the provided value. type: string additionalProperties: false Labels: description: "Labels store metadata of an entity that can be used for filtering an entity list or for searching across entity types. \n\nKeys must be of length 1-63 characters, and cannot start with \"kong\", \"konnect\", \"mesh\", \"kic\", or \"_\".\n" type: object example: env: test additionalProperties: type: string pattern: ^[a-z0-9A-Z]{1}([a-z0-9A-Z-._]*[a-z0-9A-Z]+)?$ minLength: 1 maxLength: 63 maxProperties: 50 title: Labels Team: x-speakeasy-entity: Team description: The team object contains information about a group of users. type: object properties: id: description: The team ID. type: string format: uuid example: 7f9fd312-a987-4628-b4c5-bb4f4fddd5f7 readOnly: true name: description: The name of the team. type: string example: IDM - Developers maxLength: 250 pattern: ^[\w \W]+$ description: description: The team description in Konnect. type: string example: The developers for the IDM API. maxLength: 250 system_team: description: Returns True if a user belongs to a `system_team`. System teams are teams that can manage Konnect objects, like "Organization Admin", or "Service" type: boolean default: false readOnly: true labels: $ref: '#/components/schemas/Labels' created_at: description: A Unix timestamp representation of team creation. type: string format: date-time example: '1992-02-07T17:46:57.52Z' readOnly: true updated_at: description: 'A Unix timestamp representation of the most recent change to the team object in Konnect. ' type: string format: date-time example: '2022-02-07T17:00:00.52Z' readOnly: true example: id: 7f9fd312-a987-4628-b4c5-bb4f4fddd5f7 name: IDM - Developers description: The developers for the IDM API. system_team: false labels: env: test created_at: '1992-02-07T17:46:57.52Z' updated_at: '2022-08-31T17:00:00.52Z' title: Team PaginatedMeta: description: returns the pagination information type: object properties: page: $ref: '#/components/schemas/PageMeta' required: - page title: PaginatedMeta x-speakeasy-terraform-ignore: true BaseError: description: standard error type: object properties: status: description: 'The HTTP status code of the error. Useful when passing the response body to child properties in a frontend UI. Must be returned as an integer. ' type: integer readOnly: true title: description: 'A short, human-readable summary of the problem. It should not change between occurences of a problem, except for localization. Should be provided as "Sentence case" for direct use in the UI. ' type: string readOnly: true type: description: The error type. type: string readOnly: true instance: description: 'Used to return the correlation ID back to the user, in the format kong:trace:. This helps us find the relevant logs when a customer reports an issue. ' type: string readOnly: true detail: description: 'A human readable explanation specific to this occurence of the problem. This field may contain request/entity data to help the user understand what went wrong. Enclose variable values in square brackets. Should be provided as "Sentence case" for direct use in the UI. ' type: string readOnly: true required: - status - title - instance - detail title: Error InvalidParameterDependentItem: type: object properties: field: type: string example: name readOnly: true rule: description: invalid parameters rules type: string enum: - dependent_fields nullable: true readOnly: true reason: type: string example: is a required field readOnly: true dependents: type: array items: {} nullable: true readOnly: true uniqueItems: true source: type: string example: body additionalProperties: false required: - field - rule - reason - dependents InvalidRules: description: invalid parameters rules type: string enum: - required - is_array - is_base64 - is_boolean - is_date_time - is_integer - is_null - is_number - is_object - is_string - is_uuid - is_fqdn - is_arn - unknown_property - missing_reference - is_label - matches_regex - invalid - is_supported_network_availability_zone_list - is_supported_network_cidr_block - is_supported_provider_region - type nullable: true readOnly: true x-speakeasy-unknown-values: allow InvalidParameters: description: invalid parameters type: array items: oneOf: - $ref: '#/components/schemas/InvalidParameterStandard' - $ref: '#/components/schemas/InvalidParameterMinimumLength' - $ref: '#/components/schemas/InvalidParameterMaximumLength' - $ref: '#/components/schemas/InvalidParameterChoiceItem' - $ref: '#/components/schemas/InvalidParameterDependentItem' minItems: 1 nullable: false uniqueItems: true BadRequestError: allOf: - $ref: '#/components/schemas/BaseError' - type: object required: - invalid_parameters properties: invalid_parameters: $ref: '#/components/schemas/InvalidParameters' User: description: The user object contains information about an individual user who can use the Konnect application and API. type: object properties: id: description: The User ID. type: string format: uuid example: 7f9fd312-a987-4628-b4c5-bb4f4fddd5f7 readOnly: true email: description: The email registered to the user. type: string format: email example: user@email.com maxLength: 250 full_name: description: The User's full name. type: string example: Jane Doe maxLength: 250 pattern: ^[\w \W]+$ preferred_name: description: The User's preferred name. type: string example: Jane maxLength: 250 active: description: Returns True if a user has verified their email address. type: boolean default: true readOnly: true inferred_region: description: The Konnect region closest to the user's IP address. This property might only be set for users on signup through Konnect’s build-in native authentication. type: string example: us readOnly: true created_at: description: The time stamp for the date the account was registered. type: string format: date-time example: '2022-02-07T17:46:57.52Z' readOnly: true updated_at: description: A Unix timestamp representation of the most recent change to the User account. type: string format: date-time example: '2022-10-08T17:00:00.52Z' readOnly: true example: id: 7f9fd312-a987-4628-b4c5-bb4f4fddd5f7 email: user@email.com full_name: Test User preferred_name: test active: true inferred_region: us created_at: '2022-02-07T17:46:57.52Z' updated_at: '2022-10-08T17:00:00.52Z' title: User InvalidParameterStandard: type: object properties: field: type: string example: name readOnly: true rule: $ref: '#/components/schemas/InvalidRules' source: type: string example: body reason: type: string example: is a required field readOnly: true additionalProperties: false required: - field - reason PageMeta: description: Contains pagination query parameters and the total number of objects returned. type: object properties: number: type: number example: 1 x-speakeasy-terraform-ignore: true size: type: number example: 10 x-speakeasy-terraform-ignore: true total: type: number example: 100 x-speakeasy-terraform-ignore: true required: - number - size - total NotFoundError: allOf: - $ref: '#/components/schemas/BaseError' - type: object properties: status: example: 404 title: example: Not Found type: example: https://httpstatuses.com/404 instance: example: kong:trace:1234567890 detail: example: Not found BooleanFieldFilter: description: Filter by a boolean value (true/false). type: boolean title: BooleanFieldFilter responses: IdentityConflict: description: Conflict content: application/problem+json: schema: $ref: '#/components/schemas/ConflictError' TeamCollection: description: A paginated list response for a collection of users. content: application/json: schema: type: object properties: meta: $ref: '#/components/schemas/PaginatedMeta' data: type: array items: $ref: '#/components/schemas/Team' title: Team Collection Response IdentityBadRequest: description: Bad Request content: application/problem+json: schema: $ref: '#/components/schemas/BadRequestError' IdentityNotFound: description: Not Found content: application/problem+json: schema: $ref: '#/components/schemas/NotFoundError' UserCollection: description: A paginated list response for a collection of users. content: application/json: schema: type: object properties: meta: $ref: '#/components/schemas/PaginatedMeta' data: type: array items: $ref: '#/components/schemas/User' title: User Collection Response parameters: PageSize: name: page[size] description: The maximum number of items to include per page. The last page of a collection may include fewer items. required: false in: query allowEmptyValue: true schema: type: integer example: 10 x-speakeasy-terraform-ignore: true PageNumber: name: page[number] description: Determines which page of the entities to retrieve. required: false in: query allowEmptyValue: true schema: type: integer example: 1 x-speakeasy-terraform-ignore: true requestBodies: AddUserToTeam: description: The request schema for adding a user to a team. content: application/json: schema: type: object properties: id: description: The user ID for the user being added to a team. type: string format: uuid example: df120cb4-f60b-47bc-a2f8-6a28e6a3c63b writeOnly: true x-speakeasy-name-override: user_id required: - id securitySchemes: adminToken: in: header name: Kong-Admin-Token type: apiKey externalDocs: description: Documentation for Kong Gateway and its APIs url: https://developer.konghq.com