diff --git a/api-specs/Konnect/v2/yaml/api-products.yaml b/api-specs/Konnect/v2/yaml/api-products.yaml index d7d954edc6b1..d7890ee5d81c 100644 --- a/api-specs/Konnect/v2/yaml/api-products.yaml +++ b/api-specs/Konnect/v2/yaml/api-products.yaml @@ -658,6 +658,8 @@ components: $ref: '#/components/schemas/StringFieldFilter' publish_status: $ref: '#/components/schemas/StringFieldFilter' + gateway_service_id: + $ref: '#/components/schemas/UuidFieldFilter' title: APIProductVersionFilterParameters SortQuery: description: | @@ -2142,6 +2144,21 @@ components: required: - checked - type + UuidFieldFilter: + description: Filters on the given UUID field value by exact match. + oneOf: + - $ref: '#/components/schemas/StringFieldEqualsFilter' + - $ref: '#/components/schemas/StringFieldOEQFilter' + - $ref: '#/components/schemas/StringFieldNEQFilter' + title: UuidFieldFilter + x-examples: + example-1: 3bbfd3a-e9ab-48a9-9881-ed589e4615d1 + example-2: + eq: 3bbfd3a-e9ab-48a9-9881-ed589e4615d1 + example-3: + oeq: 3bbfd3a-e9ab-48a9-9881-ed589e4615d1 + example-4: + neq: 3bbfd3a-e9ab-48a9-9881-ed589e4615d1 ConflictError: allOf: - $ref: '#/components/schemas/BaseError' diff --git a/api-specs/Konnect/v2/yaml/control-planes.yaml b/api-specs/Konnect/v2/yaml/control-planes.yaml index da9701350ae3..c8946d0dc331 100644 --- a/api-specs/Konnect/v2/yaml/control-planes.yaml +++ b/api-specs/Konnect/v2/yaml/control-planes.yaml @@ -22,16 +22,7 @@ paths: parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' - - $ref: '#/components/parameters/FilterByNameEquality' - - $ref: '#/components/parameters/FilterByNameEqualityShort' - - $ref: '#/components/parameters/FilterByNameContains' - - $ref: '#/components/parameters/FilterByNameNotEquals' - - $ref: '#/components/parameters/FilterByIdEquality' - - $ref: '#/components/parameters/FilterByIdEqualityShort' - - $ref: '#/components/parameters/FilterByIdsEquality' - - $ref: '#/components/parameters/FilterByClusterTypeEquality' - - $ref: '#/components/parameters/FilterByClusterTypeEqualityShort' - - $ref: '#/components/parameters/FilterByClusterTypeNotEquals' + - $ref: '#/components/parameters/ControlPlaneFilter' - $ref: '#/components/parameters/FilterByLabels' - $ref: '#/components/parameters/ControlPlaneSort' responses: @@ -323,6 +314,14 @@ paths: - Control Plane Groups components: parameters: + ControlPlaneFilter: + name: filter + description: Filters a collection of control-planes. + required: false + in: query + schema: + $ref: '#/components/schemas/ControlPlaneFilterParameters' + style: deepObject ControlPlaneSort: name: sort description: | @@ -332,54 +331,6 @@ components: in: query schema: $ref: '#/components/schemas/SortQuery' - FilterByClusterTypeEquality: - name: 'filter[cluster_type][eq]' - description: Filter by direct equality comparison of the cluster_type property with a supplied value. - in: query - required: false - schema: - type: string - example: CLUSTER_TYPE_CONTROL_PLANE - FilterByClusterTypeEqualityShort: - name: 'filter[cluster_type]' - description: Filter by direct equality comparison (short-hand) of the cluster_type property with a supplied value. - in: query - required: false - schema: - type: string - example: CLUSTER_TYPE_CONTROL_PLANE - FilterByClusterTypeNotEquals: - name: 'filter[cluster_type][neq]' - description: Filter by non-equality comparison of the cluster_type property with a supplied value. - in: query - required: false - schema: - type: string - example: test - FilterByIdEquality: - name: 'filter[id][eq]' - description: Filter by direct equality comparison of the id property with a supplied value. - in: query - required: false - schema: - type: string - example: 7f9fd312-a987-4628-b4c5-bb4f4fddd5f7 - FilterByIdEqualityShort: - name: 'filter[id]' - description: Filter by direct equality comparison (short-hand) of the id property with a supplied value. - in: query - required: false - schema: - type: string - example: 7f9fd312-a987-4628-b4c5-bb4f4fddd5f7 - FilterByIdsEquality: - name: 'filter[id][oeq]' - description: Filter by direct equality comparison of id property with multiple supplied values. - in: query - required: false - schema: - type: string - example: 'some-value,some-other-value' FilterByLabels: name: labels description: Filter control planes in the response by associated labels. @@ -388,38 +339,6 @@ components: schema: type: string example: 'key:value,existCheck' - FilterByNameContains: - name: 'filter[name][contains]' - description: Filter by contains comparison of the name property with a supplied substring. - in: query - required: false - schema: - type: string - example: test - FilterByNameEquality: - name: 'filter[name][eq]' - description: Filter by direct equality comparison of the name property with a supplied value. - in: query - required: false - schema: - type: string - example: test - FilterByNameEqualityShort: - name: 'filter[name]' - description: Filter by direct equality comparison (short-hand) of the name property with a supplied value. - in: query - required: false - schema: - type: string - example: test - FilterByNameNotEquals: - name: 'filter[name][neq]' - description: Filter by non-equality comparison of the name property with a supplied value. - in: query - required: false - schema: - type: string - example: test PageAfter: name: 'page[after]' description: 'Request the next page of data, starting with the item after this parameter.' @@ -476,7 +395,6 @@ components: example: CLUSTER_TYPE_CONTROL_PLANE enum: - CLUSTER_TYPE_CONTROL_PLANE - - CLUSTER_TYPE_HYBRID - CLUSTER_TYPE_K8S_INGRESS_CONTROLLER - CLUSTER_TYPE_CONTROL_PLANE_GROUP - CLUSTER_TYPE_SERVERLESS @@ -525,60 +443,6 @@ components: additionalProperties: false title: UpdateControlPlaneRequest ControlPlane: - allOf: - - $ref: '#/components/schemas/ControlPlaneSummary' - - type: object - properties: - labels: - $ref: '#/components/schemas/Labels' - config: - description: CP configuration object for related access endpoints. - type: object - properties: - control_plane_endpoint: - description: Control Plane Endpoint. - type: string - format: url - example: 'https://acfe5f253f.cp0.konghq.com' - readOnly: true - telemetry_endpoint: - description: Telemetry Endpoint. - type: string - format: url - example: 'https://acfe5f253f.tp0.konghq.com' - readOnly: true - created_at: - description: An ISO-8604 timestamp representation of control plane creation date. - type: string - format: date-time - example: '2022-11-04T20:10:06.927Z' - readOnly: true - updated_at: - description: An ISO-8604 timestamp representation of control plane update date. - type: string - format: date-time - example: '2022-11-04T20:10:06.927Z' - readOnly: true - x-examples: - Example 1: - id: 7f9fd312-a987-4628-b4c5-bb4f4fddd5f7 - name: Test Control Plane - description: A test control plane for exploration. - labels: - env: test - config: - control_plane_endpoint: 'https://acfe5f253f.cp0.konghq.com' - telemetry_endpoint: 'https://acfe5f253f.tp0.konghq.com' - cluster_type: CLUSTER_TYPE_CONTROL_PLANE - auth_type: pinned_client_certs - cloud_gateway: false - proxy_urls: - - host: example.com - port: 443 - protocol: https - created_at: '2022-11-04T20:10:06.927Z' - updated_at: '2022-11-04T20:10:06.927Z' - ControlPlaneSummary: description: The control plane object contains information about a Kong control plane. type: object properties: @@ -647,13 +511,43 @@ components: - auth_type - cloud_gateway created_at: + description: An ISO-8604 timestamp representation of control plane creation date. type: string format: date-time + example: '2022-11-04T20:10:06.927Z' + readOnly: true updated_at: + description: An ISO-8604 timestamp representation of control plane update date. type: string format: date-time + example: '2022-11-04T20:10:06.927Z' + readOnly: true additionalProperties: false - title: ControlPlaneSummary + required: + - id + - name + - config + - created_at + - updated_at + x-examples: + Example 1: + id: 7f9fd312-a987-4628-b4c5-bb4f4fddd5f7 + name: Test Control Plane + description: A test control plane for exploration. + labels: + env: test + config: + control_plane_endpoint: 'https://acfe5f253f.cp0.konghq.com' + telemetry_endpoint: 'https://acfe5f253f.tp0.konghq.com' + cluster_type: CLUSTER_TYPE_CONTROL_PLANE + auth_type: pinned_client_certs + cloud_gateway: false + proxy_urls: + - host: example.com + port: 443 + protocol: https + created_at: '2022-11-04T20:10:06.927Z' + updated_at: '2022-11-04T20:10:06.927Z' GroupStatus: description: The Group Status object contains information about the status of a control plane group. type: object @@ -785,6 +679,88 @@ components: port: 443 protocol: https title: ProxyURLs + ControlPlaneFilterParameters: + type: object + properties: + id: + oneOf: + - $ref: '#/components/schemas/StringFieldEqualsFilter' + - $ref: '#/components/schemas/StringFieldOEQFilter' + name: + oneOf: + - $ref: '#/components/schemas/StringFieldEqualsFilter' + - $ref: '#/components/schemas/StringFieldContainsFilter' + - $ref: '#/components/schemas/StringFieldNEQFilter' + cluster_type: + oneOf: + - $ref: '#/components/schemas/StringFieldEqualsFilter' + - $ref: '#/components/schemas/StringFieldNEQFilter' + cloud_gateway: + $ref: '#/components/schemas/BooleanFieldFilter' + additionalProperties: false + title: ControlPlaneFilterParameters + StringFieldEqualsFilter: + description: Filters on the given string field value by exact match. + oneOf: + - type: string + - type: object + title: StringFieldEqualsComparison + additionalProperties: false + properties: + eq: + type: string + required: + - eq + title: StringFieldEqualsFilter + x-examples: + example-1: equals-some-value + example-2: + eq: some-value + StringFieldOEQFilter: + description: Returns entities that exact match any of the comma-delimited phrases in the filter string. + type: object + properties: + oeq: + type: string + additionalProperties: false + required: + - oeq + title: StringFieldOEQFilter + x-examples: + example-1: + oeq: 'some-value,some-other-value' + StringFieldContainsFilter: + description: Filters on the given string field value by fuzzy match. + type: object + properties: + contains: + type: string + additionalProperties: false + required: + - contains + title: StringFieldContainsFilter + x-examples: + example-1: + contains: some-value + StringFieldNEQFilter: + description: Filters on the given string field value by exact match inequality. + type: object + properties: + neq: + type: string + additionalProperties: false + required: + - neq + title: StringFieldNEQFilter + x-examples: + example-1: + neq: not-this-value + BooleanFieldFilter: + description: Filter by a boolean value (true/false). + type: boolean + title: BooleanFieldFilter + x-examples: + example-1: true SortQuery: description: | The `asc` suffix is optional as the default sort order is ascending. @@ -1236,6 +1212,8 @@ components: - host: example.com port: 443 protocol: https + created_at: '2022-11-04T20:10:06.927Z' + updated_at: '2022-11-04T20:10:06.927Z' GroupConflictStatusExample: value: id: 7f9fd312-a987-4628-b4c5-bb4f4fddd5f7 @@ -1551,7 +1529,7 @@ components: description: Array of control planes summary who are a child to this control plane group. type: array items: - $ref: '#/components/schemas/ControlPlaneSummary' + $ref: '#/components/schemas/ControlPlane' examples: List Group Memberships Example: $ref: '#/components/examples/ListGroupMembershipsExample' diff --git a/api-specs/Konnect/v2/yaml/portal-management.yaml b/api-specs/Konnect/v2/yaml/portal-management.yaml index dc4f91dc5103..530c1fda07cd 100644 --- a/api-specs/Konnect/v2/yaml/portal-management.yaml +++ b/api-specs/Konnect/v2/yaml/portal-management.yaml @@ -209,7 +209,7 @@ paths: - Portals '/portals/{portalId}/publish': parameters: - - $ref: '#/components/parameters/parameters-PortalId' + - $ref: '#/components/parameters/PortalId' post: operationId: publish-api-products summary: Publish Multiples Products @@ -235,7 +235,7 @@ paths: - API Products '/portals/{portalId}/products': parameters: - - $ref: '#/components/parameters/parameters-PortalId' + - $ref: '#/components/parameters/PortalId' get: operationId: list-portal-products summary: List Portal Products @@ -387,14 +387,14 @@ paths: - Portal Product Versions '/portals/{portalId}/developers/{developerId}': parameters: - - $ref: '#/components/parameters/parameters-PortalId' + - $ref: '#/components/parameters/PortalId' - $ref: '#/components/parameters/DeveloperId' get: operationId: get-developer summary: Get Developer description: 'Returns information about a single developer in this portal. Each developer manages a set applications, providing them credentials to access registered API product versions. Developer registration access can be limited to specific API products using RBAC.' parameters: - - $ref: '#/components/parameters/parameters-PortalId' + - $ref: '#/components/parameters/PortalId' - $ref: '#/components/parameters/DeveloperId' responses: '200': @@ -454,7 +454,7 @@ paths: summary: List Applications description: 'Lists applications created by developers in this portal. Each application can be registered for various API Products (by version), issuing credentials for API request access. If using DCR, an application will be linked to an Identity Provider''s application by its `reference_id`.' parameters: - - $ref: '#/components/parameters/parameters-PortalId' + - $ref: '#/components/parameters/PortalId' - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' - $ref: '#/components/parameters/SortApplications' @@ -506,7 +506,7 @@ paths: summary: Get Application by Portal description: 'Returns the configuration of a single application in this portal. If an application is linked to a DCR Provider, the `dcr_provider.id` and `reference_id` can be used to correlate it. An application manages a set of credentials and registrations for specific API product versions.' parameters: - - $ref: '#/components/parameters/parameters-PortalId' + - $ref: '#/components/parameters/PortalId' - $ref: '#/components/parameters/ApplicationId' responses: '200': @@ -524,7 +524,7 @@ paths: summary: Delete Application by Portal description: 'Delete a single application in this portal, along with its registrations and credentials.' parameters: - - $ref: '#/components/parameters/parameters-PortalId' + - $ref: '#/components/parameters/PortalId' - $ref: '#/components/parameters/ApplicationId' responses: '204': @@ -557,7 +557,7 @@ paths: - Portal Applications '/portals/{portalId}/audit-log-replay-job': parameters: - - $ref: '#/components/parameters/parameters-PortalId' + - $ref: '#/components/parameters/PortalId' put: operationId: update-portal-audit-log-replay-job summary: Update Portal Audit Log Replay Job @@ -596,7 +596,7 @@ paths: - Portal Audit Logs '/portals/{portalId}/audit-log-webhook': parameters: - - $ref: '#/components/parameters/parameters-PortalId' + - $ref: '#/components/parameters/PortalId' patch: operationId: update-portal-audit-log-webhook summary: Update Portal Audit Log Webhook @@ -633,7 +633,7 @@ paths: - Portal Audit Logs '/portals/{portalId}/audit-log-webhook/status': parameters: - - $ref: '#/components/parameters/parameters-PortalId' + - $ref: '#/components/parameters/PortalId' get: operationId: get-portal-audit-log-webhook-status summary: Get Portal Audit Log Webhook Status @@ -655,7 +655,7 @@ paths: summary: List Application Registrations by Portal description: 'Lists all of the application registrations and their current status (e.g., approved or pending) for this portal. Each registration is associated with a single API product version. Access is provided through the credentials issued to the application that contains each registration.' parameters: - - $ref: '#/components/parameters/parameters-PortalId' + - $ref: '#/components/parameters/PortalId' - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' - $ref: '#/components/parameters/SortListAllApplicationRegistrations' @@ -707,7 +707,7 @@ paths: summary: List Registrations by Application description: 'Lists each API product version that this application is registered for and their current status (e.g., pending, approved, rejected, revoked).' parameters: - - $ref: '#/components/parameters/parameters-PortalId' + - $ref: '#/components/parameters/PortalId' - $ref: '#/components/parameters/ApplicationId' - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' @@ -750,7 +750,7 @@ paths: - Portal Application Registrations '/portals/{portalId}/applications/{applicationId}/registrations/{registrationId}': parameters: - - $ref: '#/components/parameters/parameters-PortalId' + - $ref: '#/components/parameters/PortalId' - $ref: '#/components/parameters/ApplicationId' - $ref: '#/components/parameters/RegistrationId' get: @@ -817,7 +817,7 @@ paths: summary: List Granted Scopes description: Lists the granted scopes for this application registration. This is the list of scopes that will be sent to the API when making requests. parameters: - - $ref: '#/components/parameters/parameters-PortalId' + - $ref: '#/components/parameters/PortalId' - $ref: '#/components/parameters/ApplicationId' - $ref: '#/components/parameters/RegistrationId' responses: @@ -851,7 +851,7 @@ paths: summary: Get Appearance Configuration description: 'Returns the current portal appearance configuration including any custom theme, colors, fonts, and image settings. Portals using the fully-customizable portal client may override or ignore these settings by disregarding them in the code.' parameters: - - $ref: '#/components/parameters/parameters-PortalId' + - $ref: '#/components/parameters/PortalId' responses: '200': $ref: '#/components/responses/GetPortalAppearance' @@ -868,7 +868,7 @@ paths: summary: Update Appearance Configuration description: 'Updates the current appearance configuration for this portal including setting pre-defined or custom themes, fonts, colors, and images. Note that portals using the fully-customizable portal client may override or ignore these settings by disregarding them in the code.' parameters: - - $ref: '#/components/parameters/parameters-PortalId' + - $ref: '#/components/parameters/PortalId' requestBody: $ref: '#/components/requestBodies/UpdatePortalAppearance' responses: @@ -899,7 +899,7 @@ paths: summary: Get Portal Logo description: Returns the portal logo or returns the default parameters: - - $ref: '#/components/parameters/parameters-PortalId' + - $ref: '#/components/parameters/PortalId' responses: '200': $ref: '#/components/responses/GetPortalLogoResponse' @@ -917,7 +917,7 @@ paths: summary: Get Portal Catalog Cover description: Returns the portal catalog cover or returns the default parameters: - - $ref: '#/components/parameters/parameters-PortalId' + - $ref: '#/components/parameters/PortalId' responses: '200': $ref: '#/components/responses/GetPortalCatalogCoverResponse' @@ -935,7 +935,7 @@ paths: summary: Verify Custom Domains description: 'Verifies the current status of the custom hosted domain for this portal, indicating whether the appropriate CNAME properties have propagated and if a corresponding SSL certificate has been generated.' parameters: - - $ref: '#/components/parameters/parameters-PortalId' + - $ref: '#/components/parameters/PortalId' responses: '200': $ref: '#/components/responses/VerifyPortalDomains' @@ -958,7 +958,7 @@ paths: - Portals '/portals/{portalId}/authentication-settings': parameters: - - $ref: '#/components/parameters/parameters-PortalId' + - $ref: '#/components/parameters/PortalId' get: operationId: get-portal-authentication-settings summary: Get Auth Settings @@ -1010,7 +1010,7 @@ paths: - Portal Auth Settings '/portals/{portalId}/identity-provider/team-group-mappings': parameters: - - $ref: '#/components/parameters/parameters-PortalId' + - $ref: '#/components/parameters/PortalId' get: operationId: list-portal-team-group-mappings summary: List Team Group Mappings @@ -1066,7 +1066,7 @@ paths: - Portal Auth Settings '/portals/{portalId}/teams': parameters: - - $ref: '#/components/parameters/parameters-PortalId' + - $ref: '#/components/parameters/PortalId' get: operationId: list-portal-teams summary: List Teams @@ -1128,7 +1128,7 @@ paths: '/portals/{portalId}/teams/{teamId}': parameters: - $ref: '#/components/parameters/TeamId' - - $ref: '#/components/parameters/parameters-PortalId' + - $ref: '#/components/parameters/PortalId' get: operationId: get-portal-team summary: Get Team @@ -1178,7 +1178,7 @@ paths: - Portal Teams '/portals/{portalId}/teams/{teamId}/developers': parameters: - - $ref: '#/components/parameters/parameters-PortalId' + - $ref: '#/components/parameters/PortalId' - $ref: '#/components/parameters/TeamId' get: operationId: list-portal-team-developers @@ -1228,7 +1228,7 @@ paths: - Portal Team Membership '/portals/{portalId}/teams/{teamId}/developers/{developerId}': parameters: - - $ref: '#/components/parameters/parameters-PortalId' + - $ref: '#/components/parameters/PortalId' - $ref: '#/components/parameters/parameters-DeveloperId' - $ref: '#/components/parameters/TeamId' delete: @@ -1248,7 +1248,7 @@ paths: - Portal Team Membership '/portals/{portalId}/teams/{teamId}/assigned-roles': parameters: - - $ref: '#/components/parameters/parameters-PortalId' + - $ref: '#/components/parameters/PortalId' - $ref: '#/components/parameters/TeamId' - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageNumber' @@ -1304,7 +1304,7 @@ paths: '/portals/{portalId}/teams/{teamId}/assigned-roles/{roleId}': parameters: - $ref: '#/components/parameters/RoleId' - - $ref: '#/components/parameters/parameters-PortalId' + - $ref: '#/components/parameters/PortalId' - $ref: '#/components/parameters/TeamId' delete: operationId: remove-role-from-portal-team @@ -1323,7 +1323,7 @@ paths: - Portal Team Roles '/portals/{portalId}/developers': parameters: - - $ref: '#/components/parameters/parameters-PortalId' + - $ref: '#/components/parameters/PortalId' get: operationId: list-portal-developers summary: List Developers @@ -1375,7 +1375,7 @@ paths: '/portals/{portalId}/developers/{developerId}/teams': parameters: - $ref: '#/components/parameters/parameters-DeveloperId' - - $ref: '#/components/parameters/parameters-PortalId' + - $ref: '#/components/parameters/PortalId' get: operationId: list-portal-developer-teams summary: List Developer Teams @@ -1443,12 +1443,13 @@ components: type: integer example: 10 PortalId: + schema: + type: string + format: uuid name: portalId - description: portal identifier in: path required: true - schema: - $ref: '#/components/schemas/schemas-UUID' + description: ID of the portal. PortalProductFilter: name: filter description: Filters a collection of Portal Products. @@ -1598,14 +1599,6 @@ components: in: path required: true description: ID of the developer. - parameters-PortalId: - schema: - type: string - format: uuid - name: portalId - in: path - required: true - description: ID of the portal. schemas: AuthStrategy: type: object @@ -4722,12 +4715,6 @@ components: example: 'kong:trace:1234567890' detail: example: Conflict - schemas-UUID: - description: Contains a unique identifier used by the API for this resource. - type: string - format: uuid - example: 5f9fd312-a987-4628-b4c5-bb4f4fddd5f7 - readOnly: true DateTimeFieldFilter: description: Filters on the given datetime (RFC-3339) field value. oneOf: @@ -4803,6 +4790,12 @@ components: gt: '2022-03-30T07:20:50Z' datetime_field_6: gte: '2022-03-30T07:20:50Z' + schemas-UUID: + description: Contains a unique identifier used by the API for this resource. + type: string + format: uuid + example: 5f9fd312-a987-4628-b4c5-bb4f4fddd5f7 + readOnly: true UUID_RW: description: Contains a unique identifier used by the API for this resource. type: string diff --git a/api-specs/Konnect/v3/yaml/identity.yaml b/api-specs/Konnect/v3/yaml/identity.yaml index e1f869e8c3de..957e7cb8a4e9 100644 --- a/api-specs/Konnect/v3/yaml/identity.yaml +++ b/api-specs/Konnect/v3/yaml/identity.yaml @@ -2384,6 +2384,7 @@ components: type: string example: Control Planes enum: + - APIs - API Products - Application Auth Strategies - Audit Logs