---
title: "Konnect Service Catalog"
url: "https://dev-portal.dehaven.org/apis/konnect-service-catalog-1-2-0/versions/5f6559bf-d7ba-429c-95c4-cbf2371e663f"
---

# Konnect Service Catalog

OpenAPI specification document.

```json
{"openapi":"3.0.3","info":{"title":"Konnect Service Catalog","version":"1.2.0","description":"The platform API for Konnect Service Catalog.","contact":{"name":"Kong","url":"https://konghq.com"}},"tags":[{"name":"Services","x-bundled-name":"Catalog Services"},{"name":"Integrations","x-bundled-name":"Catalog Integrations"},{"name":"Integration Instances"},{"name":"Integration Instance Auth Credentials"},{"name":"Integration Instance Auth Config"},{"name":"Resources","x-bundled-name":"Catalog Resources"},{"name":"Resource Mappings","x-bundled-name":"Catalog Resource Mappings"},{"name":"Service Resources","x-bundled-name":"Catalog Service Resources"},{"name":"Resource Services","x-bundled-name":"Catalog Resource Services"},{"name":"Criteria Templates"},{"name":"Scorecards"}],"servers":[{"url":"https://us.api.konghq.com/v1","description":"US Region Base URL"},{"url":"https://eu.api.konghq.com/v1","description":"EU Region Base URL"},{"url":"https://au.api.konghq.com/v1","description":"AU Region Base URL"},{"url":"https://me.api.konghq.com/v1","description":"ME Region Base URL"},{"url":"https://in.api.konghq.com/v1","description":"IN Region Base URL"}],"security":[{"konnectAccessToken":[]},{"personalAccessToken":[]},{"systemAccountAccessToken":[]}],"paths":{"/services":{"post":{"x-speakeasy-entity-operation":"Service#create","x-unstable":true,"x-internal":true,"summary":"Create Service","description":"Creates a service.","operationId":"create-catalog-service","requestBody":{"$ref":"#/components/requestBodies/CreateCatalogServiceRequest"},"responses":{"201":{"$ref":"#/components/responses/CatalogServiceResponse"}},"tags":["Services"]},"get":{"x-unstable":true,"x-internal":true,"parameters":[{"$ref":"#/components/parameters/CatalogServiceFilter"},{"$ref":"#/components/parameters/CatalogServiceSort"}],"summary":"List Services","description":"Returns a paginated collection of services.","operationId":"list-catalog-services","responses":{"200":{"$ref":"#/components/responses/ListCatalogServicesResponse"}},"tags":["Services"]}},"/services/{id}":{"parameters":[{"schema":{"type":"string","example":"7f9fd312-a987-4628-b4c5-bb4f4fddd5f7"},"name":"id","in":"path","required":true,"description":"The `id` of the service."}],"get":{"x-speakeasy-entity-operation":"Service#read","x-unstable":true,"x-internal":true,"summary":"Fetch Service","description":"Fetches a service.","operationId":"fetch-catalog-service","responses":{"200":{"$ref":"#/components/responses/CatalogServiceResponse"}},"tags":["Services"]},"patch":{"x-speakeasy-entity-operation":"CatalogService#update","x-unstable":true,"x-internal":true,"summary":"Update Service","operationId":"update-catalog-service","description":"Updates a service.","requestBody":{"$ref":"#/components/requestBodies/UpdateCatalogServiceRequest"},"responses":{"200":{"$ref":"#/components/responses/CatalogServiceResponse"}},"tags":["Services"]},"delete":{"x-speakeasy-entity-operation":"Service#delete","x-unstable":true,"x-internal":true,"summary":"Delete Service","description":"Deletes a service.","operationId":"delete-catalog-service","responses":{"204":{"description":"Service was deleted successfully."}},"tags":["Services"]}},"/integrations":{"get":{"x-unstable":true,"x-internal":true,"parameters":[{"$ref":"#/components/parameters/CatalogIntegrationFilter"},{"$ref":"#/components/parameters/CatalogIntegrationSort"}],"summary":"List Integrations","description":"Returns a paginated collection of all catalog integrations available to connect.\nEach integration represents a built-in connector that extends the platform's capabilities;\nenabling discovery, resource management, event ingestion, and more.\nIntegrations expose metadata that describes how they authenticate, what configuration they\nrequire, and how they interact with catalog entities like Resources and Services.\n\nCurrently, integrations are platform-defined and cannot be extend or registered by customers.\n","operationId":"list-catalog-integrations","responses":{"200":{"$ref":"#/components/responses/ListCatalogIntegrationsResponse"}},"tags":["Integrations"]}},"/integration-instances":{"post":{"x-speakeasy-entity-operation":"IntegrationInstance#create","x-unstable":true,"x-internal":true,"summary":"Create Integration Instance","description":"Creates an integration instance.","operationId":"create-integration-instance","requestBody":{"$ref":"#/components/requestBodies/CreateIntegrationInstanceRequest"},"responses":{"201":{"$ref":"#/components/responses/IntegrationInstanceResponse"}},"tags":["Integration Instances"]},"get":{"x-unstable":true,"x-internal":true,"summary":"List Integration Instances","description":"Returns a paginated collection of integration instances.","operationId":"list-integration-instances","parameters":[{"$ref":"#/components/parameters/IntegrationInstanceFilter"},{"$ref":"#/components/parameters/IntegrationInstanceSort"}],"responses":{"200":{"$ref":"#/components/responses/ListIntegrationInstancesResponse"}},"tags":["Integration Instances"]}},"/integration-instances/{id}":{"parameters":[{"schema":{"type":"string","example":"3f51fa25-310a-421d-bd1a-007f859021a3"},"name":"id","in":"path","required":true,"description":"The `id` of the integration instance."}],"get":{"x-speakeasy-entity-operation":"IntegrationInstance#read","x-unstable":true,"x-internal":true,"summary":"Fetch Integration Instance","description":"Fetches a integration instance.","operationId":"fetch-integration-instance","responses":{"200":{"$ref":"#/components/responses/IntegrationInstanceResponse"}},"tags":["Integration Instances"]},"patch":{"x-speakeasy-entity-operation":"IntegrationInstance#update","x-unstable":true,"x-internal":true,"summary":"Update Integration Instance","operationId":"update-integration-instance","description":"Updates an integration instance.","requestBody":{"$ref":"#/components/requestBodies/UpdateIntegrationInstanceRequest"},"responses":{"200":{"$ref":"#/components/responses/IntegrationInstanceResponse"}},"tags":["Integration Instances"]},"delete":{"x-speakeasy-entity-operation":"IntegrationInstance#delete","x-unstable":true,"x-internal":true,"summary":"Delete Integration Instance","description":"Deletes an integration instance.","operationId":"delete-integration-instance","responses":{"204":{"description":"Integration Instance was deleted successfully."}},"tags":["Integration Instances"]}},"/integration-instances/{id}/auth-credential":{"parameters":[{"schema":{"type":"string","example":"3f51fa25-310a-421d-bd1a-007f859021a3"},"name":"id","in":"path","required":true,"description":"The `id` of the integration instance."}],"post":{"x-speakeasy-entity-operation":"IntegrationInstanceAuthCredential#create","x-unstable":true,"x-internal":true,"summary":"Create Integration Instance Auth Credential","operationId":"create-integration-instance-auth-credential","description":"Creates an auth credential scoped to the given integration instance.\nAuth credentials are singleton resources that have a 1-to-1 relationship with\nan integration instance.\n\nAn attempt to create subsequent auth credentials for an instance will result in a 409 response.\n","requestBody":{"$ref":"#/components/requestBodies/CreateIntegrationInstanceAuthCredentialRequest"},"responses":{"201":{"$ref":"#/components/responses/IntegrationInstanceAuthCredentialResponse"}},"tags":["Integration Instance Auth Credentials"]},"get":{"x-speakeasy-entity-operation":"IntegrationInstanceAuthCredential#read","x-unstable":true,"x-internal":true,"summary":"Get Integration Instance Auth Credential","operationId":"get-integration-instance-auth-credential","description":"Fetches the auth credential scoped to the given integration instance.","responses":{"200":{"$ref":"#/components/responses/IntegrationInstanceAuthCredentialResponse"}},"tags":["Integration Instance Auth Credentials"]},"delete":{"x-speakeasy-entity-operation":"IntegrationInstanceAuthCredential#delete","x-unstable":true,"x-internal":true,"summary":"Delete Integration Instance Auth Credential","operationId":"delete-integration-instance-auth-credential","description":"Deletes the auth credential scoped to the given integration instance.","responses":{"204":{"description":"Integration Instance Auth Credential was deleted successfully."}},"tags":["Integration Instance Auth Credentials"]}},"/integration-instances/{id}/auth-config":{"parameters":[{"schema":{"type":"string","example":"3f51fa25-310a-421d-bd1a-007f859021a3"},"name":"id","in":"path","required":true,"description":"The `id` of the integration instance."}],"get":{"x-speakeasy-entity-operation":"IntegrationInstanceAuthConfig#read","x-unstable":true,"x-internal":true,"summary":"Get Integration Instance Auth Config","operationId":"get-integration-instance-auth-config","description":"Fetches auth config scoped to the given integration instance.","responses":{"200":{"$ref":"#/components/responses/IntegrationInstanceAuthConfigResponse"}},"tags":["Integration Instance Auth Config"]},"put":{"x-speakeasy-entity-operation":"IntegrationInstanceAuthConfig#upsert","x-unstable":true,"x-internal":true,"summary":"Upsert Integration Instance Auth Config","operationId":"upsert-integration-instance-auth-config","description":"Upserts auth config scoped to the given integration instance.","requestBody":{"$ref":"#/components/requestBodies/UpsertIntegrationInstanceAuthConfigRequest"},"responses":{"200":{"$ref":"#/components/responses/IntegrationInstanceAuthConfigResponse"}},"tags":["Integration Instance Auth Config"]},"delete":{"x-speakeasy-entity-operation":"IntegrationInstanceAuthConfig#delete","x-unstable":true,"x-internal":true,"summary":"Delete Integration Instance Auth Config","operationId":"delete-integration-instance-auth-config","description":"Deletes the auth config scoped to the given integration instance.","responses":{"204":{"description":"Integration Instance Auth Config was deleted successfully."}},"tags":["Integration Instance Auth Config"]}},"/resources":{"get":{"x-unstable":true,"x-internal":true,"parameters":[{"$ref":"#/components/parameters/CatalogResourceFilter"},{"$ref":"#/components/parameters/CatalogResourceSort"}],"summary":"List Resources","description":"Returns a paginated collection of resources.","operationId":"list-resources","responses":{"200":{"$ref":"#/components/responses/ListCatalogResourcesResponse"}},"tags":["Resources"]}},"/resources/{id}":{"parameters":[{"schema":{"type":"string","example":"AflTNLY0tTQhv2my"},"name":"id","in":"path","required":true,"description":"The `id` of the resource."}],"get":{"x-speakeasy-entity-operation":"Resource#read","x-unstable":true,"x-internal":true,"summary":"Fetch Resource","description":"Fetches a resource by ID.","operationId":"fetch-resource","responses":{"200":{"$ref":"#/components/responses/CatalogResourceResponse"}},"tags":["Resources"]}},"/integration-instances/{id}/resources":{"parameters":[{"schema":{"type":"string","example":"3f51fa25-310a-421d-bd1a-007f859021a3"},"name":"id","in":"path","required":true,"description":"The `id` of the integration instance."}],"post":{"x-speakeasy-entity-operation":"Resource#initialize","x-unstable":true,"x-internal":true,"summary":"Initialize Resource","description":"Initializes a placeholder resource. This operation is typically used in GitOps workflows or other infrastructure-as-code setups where a resource is declared before it is fully discovered.\nThe initialized resource acts as a stub — it contains minimal identifying metadata and does not yet include the full set of attributes typically populated by integration-based discovery.\nAfter initialization, the resource will be automatically hydrated with additional data by catalog integrations responsible for discovering and maintaining its up-to-date state.\nThis API is not intended for direct resource management, but rather for signaling the intent to track a given resource, allowing integrations to take over and populate it asynchronously.\n","operationId":"initialize-resource","requestBody":{"$ref":"#/components/requestBodies/InitializeCatalogResourceRequest"},"responses":{"201":{"$ref":"#/components/responses/CatalogResourceResponse"}},"tags":["Resources"]}},"/integration-instances/{integrationInstanceId}/resources/{resourceId}":{"parameters":[{"schema":{"type":"string","example":"3f51fa25-310a-421d-bd1a-007f859021a3"},"name":"integrationInstanceId","in":"path","required":true,"description":"The `id` of the integration instance."},{"schema":{"type":"string","example":"AflTNLY0tTQhv2my"},"name":"resourceId","in":"path","required":true,"description":"The `id` of the resource."}],"patch":{"x-speakeasy-entity-operation":"Resource#Update","x-unstable":true,"x-internal":true,"summary":"Update Resource","description":"Updates a resource.","operationId":"update-resource","requestBody":{"$ref":"#/components/requestBodies/UpdateCatalogResourceRequest"},"responses":{"200":{"$ref":"#/components/responses/CatalogResourceResponse"}},"tags":["Resources"]}},"/resources/{id}/services":{"parameters":[{"schema":{"type":"string","example":"AflTNLY0tTQhv2my"},"name":"id","in":"path","required":true,"description":"The `id` of the resource."}],"get":{"x-unstable":true,"x-internal":true,"summary":"List Resource Services","operationId":"list-catalog-resource-services","description":"Returns a paginated collection of services the given resource is mapped to.","parameters":[{"$ref":"#/components/parameters/CatalogServiceFilter"},{"$ref":"#/components/parameters/CatalogServiceSort"}],"responses":{"200":{"$ref":"#/components/responses/ListCatalogServicesResponse"}},"tags":["Resource Services"]}},"/resource-mappings":{"post":{"x-speakeasy-entity-operation":"ResourceMapping#create","x-unstable":true,"x-internal":true,"summary":"Create Resource Mapping","description":"Creates a mapping between a catalog resource and service.","operationId":"create-resource-mapping","requestBody":{"$ref":"#/components/requestBodies/CreateCatalogResourceMappingRequest"},"responses":{"201":{"$ref":"#/components/responses/CatalogResourceMappingResponse"}},"tags":["Resource Mappings"]},"get":{"x-unstable":true,"x-internal":true,"summary":"List Resource Mappings","description":"Returns a paginated collection of catalog resource mappings.","operationId":"list-resource-mappings","parameters":[{"$ref":"#/components/parameters/CatalogResourceMappingFilter"},{"$ref":"#/components/parameters/CatalogResourceMappingSort"}],"responses":{"200":{"$ref":"#/components/responses/ListCatalogResourceMappingsResponse"}},"tags":["Resource Mappings"]}},"/resource-mappings/{id}":{"parameters":[{"schema":{"type":"string","format":"uuid","example":"d277faad-ed4e-4c56-a0fb-acce065dee34"},"name":"id","in":"path","required":true,"description":"The `id` of the resource mapping."}],"get":{"x-speakeasy-entity-operation":"ResourceMapping#read","x-unstable":true,"x-internal":true,"summary":"Fetch Resource Mapping","description":"Fetches a resource mapping by ID.","operationId":"fetch-resource-mapping","responses":{"200":{"$ref":"#/components/responses/CatalogResourceMappingResponse"}},"tags":["Resource Mappings"]},"delete":{"x-speakeasy-entity-operation":"ResourceMapping#delete","x-unstable":true,"x-internal":true,"summary":"Delete Resource Mapping","description":"Removes an existing mapping between a catalog resource and service.","operationId":"delete-resource-mapping","responses":{"204":{"description":"Resource Mapping was deleted successfully."}},"tags":["Resource Mappings"]}},"/services/{id}/resources":{"parameters":[{"schema":{"type":"string","example":"7f9fd312-a987-4628-b4c5-bb4f4fddd5f7"},"name":"id","in":"path","required":true,"description":"The `id` of the service."}],"get":{"x-unstable":true,"x-internal":true,"summary":"List Service Resources","operationId":"list-catalog-service-resources","description":"Returns a paginated collection of resources mapped to a service.","parameters":[{"$ref":"#/components/parameters/CatalogResourceFilter"}],"responses":{"200":{"$ref":"#/components/responses/ListCatalogServiceResourcesResponse"}},"tags":["Service Resources"]}},"/criteria-templates":{"get":{"x-unstable":true,"x-internal":true,"summary":"List Criteria Templates","operationId":"list-criteria-templates","description":"Returns a paginated collection of criteria templates.","parameters":[{"$ref":"#/components/parameters/CriteriaTemplateFilter"},{"$ref":"#/components/parameters/CriteriaTemplateSort"}],"responses":{"200":{"$ref":"#/components/responses/ListCriteriaTemplatesResponse"}},"tags":["Criteria Templates"]}},"/scorecard-templates":{"get":{"x-unstable":true,"x-internal":true,"summary":"List Scorecard Templates","operationId":"list-scorecard-templates","description":"Returns a paginated collection of scorecard templates.","parameters":[{"$ref":"#/components/parameters/ScorecardTemplateFilter"},{"$ref":"#/components/parameters/ScorecardTemplateSort"}],"responses":{"200":{"$ref":"#/components/responses/ListScorecardTemplatesResponse"}},"tags":["Scorecards"]}},"/scorecards":{"post":{"x-speakeasy-entity-operation":"Scorecard#create","x-unstable":true,"x-internal":true,"summary":"Create Scorecard","operationId":"create-scorecard","description":"Creates a scorecard.","requestBody":{"$ref":"#/components/requestBodies/CreateScorecardRequest"},"responses":{"201":{"$ref":"#/components/responses/ScorecardResponse"}},"tags":["Scorecards"]},"get":{"x-unstable":true,"x-internal":true,"summary":"List Scorecards","operationId":"list-scorecards","description":"Returns a paginated collection of scorecards.","parameters":[{"$ref":"#/components/parameters/ScorecardFilter"},{"$ref":"#/components/parameters/ScorecardSort"}],"responses":{"200":{"$ref":"#/components/responses/ListScorecardsResponse"}},"tags":["Scorecards"]}},"/scorecards/{id}":{"parameters":[{"schema":{"type":"string","format":"uuid","example":"f3704e4c-104d-4f21-998a-20d4364c893f"},"name":"id","in":"path","required":true,"description":"The `id` of the scorecard."}],"get":{"x-speakeasy-entity-operation":"Scorecard#read","x-unstable":true,"x-internal":true,"summary":"Fetch Scorecard","description":"Fetches a scorecard.","operationId":"fetch-scorecard","responses":{"200":{"$ref":"#/components/responses/ScorecardResponse"}},"tags":["Scorecards"]},"put":{"x-speakeasy-entity-operation":"Scorecard#update","x-unstable":true,"x-internal":true,"summary":"Update Scorecard","operationId":"update-scorecard","description":"Updates a scorecard.","requestBody":{"$ref":"#/components/requestBodies/UpdateScorecardRequest"},"responses":{"200":{"$ref":"#/components/responses/ScorecardResponse"}},"tags":["Scorecards"]},"delete":{"x-speakeasy-entity-operation":"Scorecard#delete","x-unstable":true,"x-internal":true,"summary":"Delete Scorecard","description":"Deletes a scorecard.","operationId":"delete-scorecard","responses":{"204":{"description":"Scorecard was deleted successfully."}},"tags":["Scorecards"]}},"/scorecards/{id}/services":{"parameters":[{"schema":{"type":"string","format":"uuid","example":"f3704e4c-104d-4f21-998a-20d4364c893f"},"name":"id","in":"path","required":true,"description":"The `id` of the scorecard."}],"get":{"x-unstable":true,"x-internal":true,"summary":"List Scorecard Services","description":"Lists services targeted by a scorecard.","operationId":"list-scorecard-services","parameters":[{"$ref":"#/components/parameters/ScorecardServiceFilter"},{"$ref":"#/components/parameters/ScorecardServiceSort"}],"responses":{"200":{"$ref":"#/components/responses/ListScorecardServicesResponse"}},"tags":["Scorecards"]}},"/scorecards/{id}/criteria":{"parameters":[{"schema":{"type":"string","format":"uuid","example":"f3704e4c-104d-4f21-998a-20d4364c893f"},"name":"id","in":"path","required":true,"description":"The `id` of the scorecard."}],"get":{"x-unstable":true,"x-internal":true,"summary":"List Scorecard Criteria","description":"Lists criteria, including passing service counts, belonging to a scorecard.","operationId":"list-scorecard-criteria","parameters":[{"$ref":"#/components/parameters/ScorecardCriteriaFilter"},{"$ref":"#/components/parameters/ScorecardCriteriaSort"}],"responses":{"200":{"$ref":"#/components/responses/ListScorecardCriteriaResponse"}},"tags":["Scorecards"]}},"/scorecards/{scorecardId}/criteria/{criteriaId}/services":{"parameters":[{"schema":{"type":"string","format":"uuid","example":"f3704e4c-104d-4f21-998a-20d4364c893f"},"name":"scorecardId","in":"path","required":true,"description":"The `id` of the scorecard."},{"schema":{"type":"string","format":"uuid","example":"5c1121f9-3f3a-47c7-9bb6-c81a51128714"},"name":"criteriaId","in":"path","required":true,"description":"The `id` of the criteria."}],"get":{"x-unstable":true,"x-internal":true,"summary":"List Scorecard Criteria Services","description":"Lists services targeted by a scorecard criteria with evaluation results per-service.","operationId":"list-scorecard-criteria-services","parameters":[{"$ref":"#/components/parameters/ScorecardCriteriaServiceFilter"},{"$ref":"#/components/parameters/ScorecardCriteriaServiceSort"}],"responses":{"200":{"$ref":"#/components/responses/ListScorecardCriteriaServicesResponse"}},"tags":["Scorecards"]}},"/services/{id}/scorecards":{"parameters":[{"schema":{"type":"string","example":"7f9fd312-a987-4628-b4c5-bb4f4fddd5f7"},"name":"id","in":"path","required":true,"description":"The `id` of the service."}],"get":{"x-unstable":true,"x-internal":true,"summary":"List Catalog Service Scorecards","operationId":"list-catalog-service-scorecards","description":"Returns a paginated collection of scorecards targeting the given service.","parameters":[{"$ref":"#/components/parameters/ScorecardFilter"},{"$ref":"#/components/parameters/ScorecardSort"}],"responses":{"200":{"$ref":"#/components/responses/ListCatalogServiceScorecardsResponse"}},"tags":["Scorecards"]}},"/services/{serviceId}/scorecards/{scorecardId}":{"parameters":[{"schema":{"type":"string","example":"7f9fd312-a987-4628-b4c5-bb4f4fddd5f7"},"name":"serviceId","in":"path","required":true,"description":"The `id` of the service."},{"schema":{"type":"string","format":"uuid","example":"f3704e4c-104d-4f21-998a-20d4364c893f"},"name":"scorecardId","in":"path","required":true,"description":"The `id` of the scorecard."}],"get":{"x-speakeasy-entity-operation":"CatalogServiceScorecard#read","x-unstable":true,"x-internal":true,"summary":"Fetch Catalog Service Scorecard","operationId":"fetch-catalog-service-scorecard","description":"Fetches the given scorecard targeting the service.","responses":{"200":{"$ref":"#/components/responses/CatalogServiceScorecardResponse"}},"tags":["Scorecards"]}}},"components":{"parameters":{"CatalogServiceFilter":{"name":"filter","description":"Filters a collection of services.","required":false,"in":"query","style":"deepObject","schema":{"$ref":"#/components/schemas/CatalogServiceFilterParameters"}},"CatalogServiceSort":{"name":"sort","description":"Sorts a collection of services. Supported sort attributes are:\n  - `display_name`\n  - `name`\n  - `created_at`\n  - `updated_at`\n\nDefault sort is `display_name` in ascending order.\n","required":false,"in":"query","schema":{}},"CatalogIntegrationFilter":{"name":"filter","description":"Filters a collection of integrations.","required":false,"in":"query","style":"deepObject","schema":{"$ref":"#/components/schemas/CatalogIntegrationFilterParameters"}},"CatalogIntegrationSort":{"name":"sort","description":"Sorts a collection of integrations. Supported sort attributes are:\n  - `display_name`\n  - `name`\n\nDefault sort is `display_name` in ascending order.\n","required":false,"in":"query","schema":{}},"IntegrationInstanceFilter":{"name":"filter","description":"Filters a collection of integration instances.","required":false,"in":"query","style":"deepObject","schema":{"$ref":"#/components/schemas/IntegrationInstanceFilterParameters"}},"IntegrationInstanceSort":{"name":"sort","description":"Sorts a collection of integration instances. Supported sort attributes are:\n  - `display_name`\n  - `name`\n  - `created_at`\n  - `updated_at`\n  - `integration.display_name`\n\nDefault sort is `integration.display_name` in ascending order.\n","required":false,"in":"query","schema":{}},"CatalogResourceFilter":{"name":"filter","description":"Filters a collection of resources.","required":false,"in":"query","style":"deepObject","schema":{"$ref":"#/components/schemas/CatalogResourceFilterParameters"}},"CatalogResourceSort":{"name":"sort","description":"Sorts a collection of resources. Supported sort attributes are:\n  - `created_at`\n  - `updated_at`\n\nDefault sort is `created_at` in descending order.\n","required":false,"in":"query","schema":{}},"CatalogResourceMappingFilter":{"name":"filter","description":"Filters a collection of resource mappings.","required":false,"in":"query","style":"deepObject","schema":{"$ref":"#/components/schemas/CatalogResourceMappingFilterParameters"}},"CatalogResourceMappingSort":{"name":"sort","description":"Sorts a collection of resource mappings. Supported sort attributes are:\n  - `created_at`\n\nDefault sort is `created_at` in descending order.\n","required":false,"in":"query","schema":{}},"CriteriaTemplateFilter":{"name":"filter","description":"Filters a collection of criteria templates.","required":false,"in":"query","style":"deepObject","schema":{"$ref":"#/components/schemas/CriteriaTemplateFilterParameters"}},"CriteriaTemplateSort":{"name":"sort","description":"Sorts a collection of criteria templates. Supported sort attributes are:\n  - `display_name`\n  - `name`\n\nDefault sort is `display_name` in ascending order.\n","required":false,"in":"query","schema":{}},"ScorecardTemplateFilter":{"name":"filter","description":"Filters a collection of scorecard templates.","required":false,"in":"query","style":"deepObject","schema":{"$ref":"#/components/schemas/ScorecardTemplateFilterParameters"}},"ScorecardTemplateSort":{"name":"sort","description":"Sorts a collection of scorecard templates. Supported sort attributes are:\n  - `display_name`\n  - `name`\n\nDefault sort is `display_name` in ascending order.\n","required":false,"in":"query","schema":{}},"ScorecardFilter":{"name":"filter","description":"Filters a collection of scorecards.","required":false,"in":"query","style":"deepObject","schema":{"$ref":"#/components/schemas/ScorecardFilterParameters"}},"ScorecardSort":{"name":"sort","description":"Sorts a collection of scorecards. Supported sort attributes are:\n  - `name`\n  - `score.value`\n  - `score.raw_value`\n\nDefault sort is `name` in ascending order.\n","required":false,"in":"query","schema":{}},"ScorecardCriteriaFilter":{"name":"filter","description":"Filters a collection of criteria belonging to a scorecard.","required":false,"in":"query","style":"deepObject","schema":{"$ref":"#/components/schemas/ScorecardCriteriaFilterParameters"}},"ScorecardCriteriaSort":{"name":"sort","description":"Sorts a collection of criteria belonging to a scorecard. Supported sort attributes are:\n  - `evaluation.passing_services_count`\n\nBy default, criteria will be returned in the order that they are configured in the scorecard.\n","required":false,"in":"query","schema":{}},"ScorecardServiceFilter":{"name":"filter","description":"Filters a collection of services targeted by a scorecard.","required":false,"in":"query","style":"deepObject","schema":{"$ref":"#/components/schemas/ScorecardServiceFilterParameters"}},"ScorecardServiceSort":{"name":"sort","description":"Sorts a collection of services targeted by a scorecard. Supported sort attributes are:\n  - `display_name`\n  - `name`\n  - `score.value`\n  - `score.raw_value`\n\nDefault sort is `display_name` in ascending order.\n","required":false,"in":"query","schema":{}},"ScorecardCriteriaServiceFilter":{"name":"filter","description":"Filters a collection of services targeted by a scorecard criteria.","required":false,"in":"query","style":"deepObject","schema":{"$ref":"#/components/schemas/ScorecardCriteriaServiceFilterParameters"}},"ScorecardCriteriaServiceSort":{"name":"sort","description":"Sorts a collection of services targeted by a scorecard criteria. Supported sort attributes are:\n  - `display_name`\n  - `name`\n  - `evaluation.is_passing`\n  - `evaluation.successfully_evaluated_at`\n  - `evaluation.attempted_at`\n\nDefault sort is `display_name` in ascending order.\n","required":false,"in":"query","schema":{}}},"requestBodies":{"CreateCatalogServiceRequest":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCatalogService"}}}},"UpdateCatalogServiceRequest":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCatalogService"}}}},"CreateIntegrationInstanceRequest":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateIntegrationInstance"}}}},"UpdateIntegrationInstanceRequest":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateIntegrationInstance"}}}},"CreateIntegrationInstanceAuthCredentialRequest":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateIntegrationInstanceAuthCredential"}}}},"UpsertIntegrationInstanceAuthConfigRequest":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpsertIntegrationInstanceAuthConfig"}}}},"InitializeCatalogResourceRequest":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitializeCatalogResource"}}}},"UpdateCatalogResourceRequest":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCatalogResource"}}}},"CreateCatalogResourceMappingRequest":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCatalogResourceMapping"}}}},"CreateScorecardRequest":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateScorecard"}}}},"UpdateScorecardRequest":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateScorecard"}}}}},"responses":{"CatalogServiceResponse":{"description":"A response containing a single service object.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogService"}}}},"ListCatalogServicesResponse":{"description":"A paginated list response for a collection of services.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"meta":{},"data":{"type":"array","items":{"$ref":"#/components/schemas/CatalogService"}}},"required":["meta","data"]}}}},"ListCatalogIntegrationsResponse":{"description":"A paginated list response for a collection of integrations.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"meta":{},"data":{"type":"array","items":{"$ref":"#/components/schemas/CatalogIntegration"}}},"required":["meta","data"]}}}},"IntegrationInstanceResponse":{"description":"A response containing a single integration instance object.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationInstance"}}}},"ListIntegrationInstancesResponse":{"description":"A paginated list response for a collection of integration instances.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"meta":{},"data":{"type":"array","items":{"$ref":"#/components/schemas/IntegrationInstance"}}},"required":["meta","data"]}}}},"CatalogResourceMappingResponse":{"description":"A response containing a single catalog resource mapping.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogResourceMapping"}}}},"ListCatalogResourceMappingsResponse":{"description":"A paginated list response for a collection of catalog resource mappings.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"meta":{},"data":{"type":"array","items":{"$ref":"#/components/schemas/CatalogResourceMapping"}}},"required":["meta","data"]}}}},"IntegrationInstanceAuthCredentialResponse":{"description":"A response containing an integration instance auth credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationInstanceAuthCredential"}}}},"IntegrationInstanceAuthConfigResponse":{"description":"A response containing integration instance auth config.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationInstanceAuthConfig"}}}},"ListCatalogResourcesResponse":{"description":"A paginated list response for a collection of resources.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"meta":{},"data":{"type":"array","items":{"$ref":"#/components/schemas/CatalogResource"}}},"required":["meta","data"]}}}},"ListCatalogServiceResourcesResponse":{"description":"A paginated list response for a collection of resources mapped to a service.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"meta":{},"data":{"type":"array","items":{"$ref":"#/components/schemas/CatalogResource"}}},"required":["meta","data"]}}}},"CatalogResourceResponse":{"description":"A response containing a single resource object.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogResource"}}}},"ListCriteriaTemplatesResponse":{"description":"A paginated list response for a collection of criteria templates.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"meta":{},"data":{"type":"array","items":{"$ref":"#/components/schemas/CriteriaTemplate"}}},"required":["meta","data"]}}}},"ListScorecardTemplatesResponse":{"description":"A paginated list response for a collection of scorecard templates.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"meta":{},"data":{"type":"array","items":{"$ref":"#/components/schemas/ScorecardTemplate"}}},"required":["meta","data"]}}}},"ListScorecardsResponse":{"description":"A paginated list response for a collection of scorecards.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"meta":{},"data":{"type":"array","items":{"$ref":"#/components/schemas/Scorecard"}}},"required":["meta","data"]}}}},"ScorecardResponse":{"description":"A response containing a single scorecard.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScorecardWithCriteria"}}}},"ListScorecardCriteriaResponse":{"description":"A paginated list response for a collection of criteria belonging to a scorecard.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"meta":{},"data":{"type":"array","items":{"$ref":"#/components/schemas/ScorecardCriteriaWithEvaluation"}}},"required":["meta","data"]}}}},"ListCatalogServiceScorecardsResponse":{"description":"A paginated list response for a collection of scorecards targeting a service.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"meta":{},"data":{"type":"array","items":{"$ref":"#/components/schemas/Scorecard"}}},"required":["meta","data"]}}}},"CatalogServiceScorecardResponse":{"description":"A response containing a scorecard targeting a service.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogServiceScorecard"}}}},"ListScorecardServicesResponse":{"description":"A paginated list response for a collection of services targeted by a scorecard.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"meta":{},"data":{"type":"array","items":{"$ref":"#/components/schemas/ScorecardService"}}},"required":["meta","data"]}}}},"ListScorecardCriteriaServicesResponse":{"description":"A paginated list response for a collection of services targeted by a scorecard criteria.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"meta":{},"data":{"type":"array","items":{"$ref":"#/components/schemas/ScorecardCriteriaService"}}},"required":["meta","data"]}}}}},"schemas":{"CreateCatalogService":{"type":"object","additionalProperties":false,"required":["name","display_name"],"properties":{"name":{"type":"string","description":"The machine name of the Service that uniquely identifies it within the catalog.\n","minLength":1,"maxLength":120,"pattern":"^[0-9a-z.-]+$","example":"user-svc"},"display_name":{"type":"string","description":"The display name of the Service.","minLength":1,"maxLength":120,"example":"User Service"},"description":{"type":"string","description":"Optionally provide a description of the Service.","nullable":true,"maxLength":2048},"labels":{},"custom_fields":{"$ref":"#/components/schemas/CustomFields"}}},"UpdateCatalogService":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","description":"The machine name of the Service that uniquely identifies it within the catalog.\n","minLength":1,"maxLength":120,"pattern":"^[0-9a-z.-]+$","example":"user-svc"},"display_name":{"type":"string","description":"The display name of the Service.","minLength":1,"maxLength":120,"example":"User Service"},"description":{"type":"string","description":"Optionally provide a description of the Service.","nullable":true,"maxLength":2048},"labels":{},"custom_fields":{"$ref":"#/components/schemas/CustomFields"}}},"CatalogServiceFilterParameters":{"type":"object","properties":{"id":{},"name":{},"display_name":{},"custom_fields":{"description":"Filter by custom fields using dot-notation to specify the custom field.\nFilter operators are dictated by the custom field type. For example:\n  - `filter[custom_fields.owner]`\n  - `filter[custom_fields.owner][neq]=kong`\n  - `filter[custom_fields.dashboard.link][contains]=https`\n","oneOf":[]},"labels":{}}},"CatalogService":{"title":"CatalogService","description":"The service object contains information about a Service Catalog service.","type":"object","required":["id","name","display_name","description","custom_fields","labels","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"7f9fd312-a987-4628-b4c5-bb4f4fddd5f7","description":"The service ID.","readOnly":true},"name":{"type":"string","description":"The machine name of the Service that uniquely identifies it within the catalog.\n","minLength":1,"maxLength":120,"pattern":"^[0-9a-z.-]+$","example":"user-svc"},"display_name":{"type":"string","description":"The display name of the Service.","minLength":1,"maxLength":120,"example":"User Service"},"description":{"type":"string","description":"Optionally provide a description of the Service.","nullable":true,"maxLength":2048},"custom_fields":{"$ref":"#/components/schemas/CustomFields"},"labels":{}}},"CatalogIntegrationFilterParameters":{"type":"object","properties":{"name":{}}},"CatalogIntegration":{"type":"object","required":["built_in","name","display_name","version","authorization","config_schema","resource_types","discovery","api_spec_provider","events"],"properties":{"name":{"type":"string","description":"The machine name of the integration that uniquely identifies it within the catalog.","example":"gateway-manager","readOnly":true},"display_name":{"type":"string","description":"The display name of the integration.","example":"Gateway Manager","readOnly":true},"description":{"type":"string","description":"The description of the integration.","readOnly":true},"built_in":{"type":"boolean","description":"Denotes whether the integration is built-in to the catalog.\nBuilt-in integrations are always connected and available by default.\n","example":true,"readOnly":true},"version":{"type":"string","description":"The integration version.","example":"v1","readOnly":true},"authorization":{"$ref":"#/components/schemas/CatalogIntegrationAuthorization"},"config_schema":{"$ref":"#/components/schemas/CatalogIntegrationConfigSchema"},"resource_types":{"$ref":"#/components/schemas/CatalogIntegrationResourceTypes"},"discovery":{"$ref":"#/components/schemas/CatalogIntegrationDiscovery"},"api_spec_provider":{"$ref":"#/components/schemas/CatalogIntegrationApiSpecProvider"},"events":{"$ref":"#/components/schemas/CatalogIntegrationEvents"}}},"CatalogIntegrationAuthorization":{"x-flatten-allOf":true,"allOf":[{"oneOf":[{"nullable":true},{"$ref":"#/components/schemas/OAuth"},{"$ref":"#/components/schemas/MultiKeyAuth"},{"$ref":"#/components/schemas/GitHubAppInstallationAuth"}]},{"title":"CatalogIntegrationAuthorization","description":"Defines the authorization strategy for an integration."}]},"OAuth":{"type":"object","description":"Defines the OAuth 2.0 authorization strategy used by an integration.\nThis schema provides all necessary information for the platform to initiate\nand manage OAuth-based authorization flows on behalf of customers.\n","required":["type","config"],"properties":{"type":{"type":"string","enum":["oauth"]},"overridable_config":{"description":"A list of field names from the `config` object (e.g., `client_id`, `authorization_endpoint`, etc)\nthat can be overridden on a per-customer basis. When a field is listed here, the catalog allows\ncustomer-defined values to take precedence over the default configuration provided by the integration.\nThis supports flexible deployment models, including both SaaS-based and self-hosted OAuth authorization flows. \n","type":"array","items":{"type":"string","enum":["client_id","client_secret","authorization_endpoint","token_endpoint"]}},"config":{"type":"object","required":["grant_type","client_id","authorization_endpoint","token_endpoint","scope","rolling_refresh_exp_seconds"],"properties":{"grant_type":{"type":"string","enum":["authorization_code"],"description":"The OAuth 2.0 grant type used for authorization (e.g., `authorization_code`).\nDetermines the flow the integration uses to request access tokens.\n"},"client_id":{"type":"string","example":"d745213a-b7e8-4998-abe3-41f164001970","description":"The OAuth client identifier registered with the integration provider."},"authorization_endpoint":{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri","example":"https://identity.service.com/oauth/authorize","description":"The URL where users are redirected to authorize access."}}},"token_endpoint":{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri","example":"https://identity.service.com/oauth/token","description":"The URL used to retrieve access tokens."}}},"scope":{"type":"array","items":{"type":"string"},"example":["read","write"],"description":"A list of permission scopes requested by the integration. \nDefines what level of access the token will grant.\n"},"rolling_refresh_exp_seconds":{"type":"number","nullable":true,"description":"Number of seconds before the refresh token grant can no longer be used to mint\na new access token. Once expired clients must re-authenticate to restart the\nwindow interval.\n","example":15780000}}}}},"MultiKeyAuth":{"type":"object","description":"Defines an authentication strategy based on one or more API keys passed via HTTP headers. \nThis strategy supports integrations that require custom headers for credential-based access, \nallowing flexibility across providers with different authentication header requirements.\n","required":["type","config"],"properties":{"type":{"type":"string","enum":["multi_key_auth"]},"config":{"type":"object","required":["headers"],"properties":{"headers":{"type":"array","minItems":1,"description":"A list of header definitions used to transmit API credentials to the integration's external API. \nEach header represents a unique key required by the provider.\n","items":{"type":"object","title":"KeyAuthHeader","required":["name","display_name","description"],"properties":{"name":{"description":"The exact name of the HTTP request header where the credential should be inserted.","type":"string","example":"X-API-Key"},"display_name":{"description":"An optional user-friendly label for the key, used in UI forms to guide users.","type":"string","example":"API Key","nullable":true},"description":{"description":"An optional brief explanation of the purpose or usage of the key.","type":"string","nullable":true}}}}}}}},"GitHubAppInstallationAuth":{"type":"object","description":"Defines the GitHub App authorization strategy used by the GitHub integration.\nThis strategy enables secure access to GitHub APIs using app installation tokens.\nIt supports both API-based interactions and real-time event delivery via GitHub webhooks.\nUnlike standard OAuth flows, this strategy leverages GitHub's custom app installation flow\nand token lifecycle, making it ideal for deep, organization-level GitHub integration.\n","required":["type","config"],"properties":{"type":{"type":"string","enum":["github_app_installation"]},"config":{"type":"object","required":["app_install_url","app_manage_url","authorize_app_installation_endpoint","pending_app_installs_endpoint"],"properties":{"app_install_url":{"type":"object","additionalProperties":false,"required":["url"],"properties":{"url":{"type":"string","format":"uri","example":"https://global.api.konghq.com/service-catalog-integrations/github/app/install","description":"The URL where customers are directed to install the GitHub App into their\nGitHub organization.\n"}}},"app_manage_url":{"type":"object","additionalProperties":false,"required":["url"],"properties":{"url":{"type":"string","format":"uri","example":"https://global.api.konghq.com/service-catalog-integrations/github/app/manage","description":"The GitHub App management page URL where users can view, configure, or uninstall the app after installation."}}},"authorize_app_installation_endpoint":{"type":"object","additionalProperties":false,"required":["url"],"properties":{"url":{"type":"string","format":"uri","example":"https://global.api.konghq.com/service-catalog-integrations/github/app/authorize-installation","description":"The endpoint used to link a completed GitHub App installation with a customer account in the catalog.\nThis step finalizes the integration by exchanging metadata from the GitHub installation event.\n"}}},"pending_app_installs_endpoint":{"type":"object","additionalProperties":false,"required":["url"],"properties":{"url":{"type":"string","format":"uri","example":"https://global.api.konghq.com/service-catalog-integrations/github/app/pending-installs","description":"The endpoint used to return a list of in-progress or unlinked GitHub App installations awaiting user confirmation.\n"}}}}}}},"CatalogIntegrationConfigSchema":{"description":"Defines the configuration schema for the integration.","additionalProperties":{"oneOf":[{"nullable":true},{"$ref":"#/components/schemas/StringConfigFieldSchema"},{"$ref":"#/components/schemas/EnumConfigFieldSchema"},{"$ref":"#/components/schemas/BooleanConfigFieldSchema"}]},"example":{"base_url":{"type":"string","display_name":"Base URL","description":"The customer-specific API URL","required":true}}},"StringConfigFieldSchema":{"x-flatten-allOf":true,"allOf":[{"$ref":"#/components/schemas/BaseConfigFieldSchema"},{"title":"StringConfigFieldSchema","description":"Defines a string value integration config field.","type":"object","required":["type"],"properties":{"type":{"type":"string","description":"The field type of the config value.","enum":["string"]},"default":{"type":"string","description":"The default value for the config field."}}}]},"EnumConfigFieldSchema":{"x-flatten-allOf":true,"allOf":[{"$ref":"#/components/schemas/BaseConfigFieldSchema"},{"type":"object","title":"EnumConfigFieldSchema","description":"Defines an enum value integration config field.","required":["type","choices"],"properties":{"type":{"type":"string","description":"The field type of config value.","enum":["enum"]},"choices":{"type":"array","description":"List of enumerated choices that can be selected as the config field value.","items":{"type":"object","required":["value","display_name"],"properties":{"value":{"type":"string","description":"The value represented by this option."},"display_name":{"type":"string","description":"user-friendly name of the option."},"description":{"type":"string","description":"Optional brief description of the option."}}}},"default":{"type":"string","description":"The default value for the config field.\nMust reference the value of an option listed in `choices`.\n"}}}]},"BooleanConfigFieldSchema":{"x-flatten-allOf":true,"allOf":[{"$ref":"#/components/schemas/BaseConfigFieldSchema"},{"title":"BooleanConfigFieldSchema","description":"Defines a boolean value integration config field.","type":"object","required":["type"],"properties":{"type":{"type":"string","description":"The field type of the config value.","enum":["boolean"]},"default":{"type":"boolean","description":"The default value for the config field."}}}]},"BaseConfigFieldSchema":{"type":"object","properties":{"display_name":{"type":"string","description":"user-friendly name of the configuration field."},"description":{"type":"string","description":"Optional brief description of the configuration field."},"required":{"type":"boolean","description":"Denotes whether the config field is a required value.","default":false},"mutable_condition":{"$ref":"#/components/schemas/MutableCondition"}}},"MutableCondition":{"description":"Defines the condition under which this configuration field is allowed to be modified.\nWhen specified, the platform will restrict updates to this field unless the integration\nmeets the given condition.\n\nFor example, setting `mutable_condition: unauthorized` means the field can only be \nchanged while the integration is in an unauthorized state.\n","type":"string","enum":["unauthorized"]},"CatalogIntegrationResourceTypes":{"type":"object","description":"Defines the resource types that the integration manages within the catalog.\n\nThis schema is a key-value object where:\n  - Keys are globally unique, machine-readable identifiers for each resource type.\n  - Values are objects describing metadata about the resource type.\n\nThis declaration enables the platform to understand the structure, identity, and behavior of resources discovered by the integration.\nBy registering resource types, integrations communicate the kinds of entities they will ingest and maintain, \nallowing the catalog to enforce consistency, validation, and visibility across all integrations.\n","additionalProperties":{"type":"object","title":"ResourceType","required":["schema"],"properties":{"display_name":{"type":"string","description":"The user-friendly resource type name."},"schema":{"$ref":"#/components/schemas/SimpleSchema"}}},"example":{"gateway_svc":{"display_name":"Gateway Service","schema":{"type":"simple","definition":{"control_plane_id":"string","gatway_service_id":"string"}}},"analytics_dashboard":{"display_name":"Dashboard","schema":{"type":"simple","definition":{"dashboard_id":"string"}}}}},"CatalogIntegrationDiscovery":{"type":"object","description":"Defines how the integration participates in Discovery.\nDiscovery enables integrations to automatically ingest and update resources in the catalog.\n","nullable":true,"required":["resource_attribute_examples"],"properties":{"resource_attribute_examples":{"description":"A map of example resource `attributes` payloads by resource type.\n\n  - Keys are the machine-readable, globally unique names of resource types registered by this integration.\n  - Values are example `attributes` payloads.\n","type":"object","additionalProperties":{"type":"object","additionalProperties":true,"description":"An example `attributes` payload for the given resource type."},"example":{"gateway_service":{"control_plane":{"id":"00000000-0000-0000-0000-000000000000","name":"dev-ext","labels":{"env":"development"}},"gateway_service":{"id":"11111111-1111-1111-1111-111111111111","name":"gateway-service","host":"konghq.com","path":"/example","type":"service","port":443,"protocol":"https","enabled":true}}}}}},"CatalogIntegrationApiSpecProvider":{"description":"Defines how an integration behaves as a source provider of Catalog Service API specs.\nAPI specs are entities that can be attached to Catalog Services.\nWhen an integration implements this capability, it can act as a source type for API spec contents.\nIn this role, the integration becomes the source of truth for the spec.\nWhen a spec is attached to a Catalog Service using this source type, the platform relies on the external system to provide and update the spec data.\nA null value indicates the given integration does not act as a source provider of API specs.\n","type":"object","nullable":true,"required":["name","display_name","description","config_schema","resource_type"],"properties":{"name":{"type":"string","example":"konnect_api","description":"The globally unique name of the API spec provider that identifies it within the catalog.\nCorresponds to the API spec provider `type` when creating API specs.\n"},"display_name":{"type":"string","example":"Konnect API","description":"A user-friendly name for the API spec provider."},"description":{"type":"string","description":"An brief description of the API spec provider."},"config_schema":{"x-flatten-allOf":true,"allOf":[{"$ref":"#/components/schemas/SimpleSchema"},{"description":"Defines the shape of the API spec provider config.","example":{"type":"simple","definition":{"api_id":"string"}}}]},"resource_type":{"type":"string","nullable":true,"description":"When non-null, denotes that the API spec provider is bound to the given Resource type.\nThis means that API specs are auto-created when a Resource of the given type is mapped to a service.\nFurthermore, it couples the lifecycle of the API Spec with the given Resource mapping.\nWhen the given Resource is removed, the API spec will be deleted.\n"}}},"CatalogIntegrationEvents":{"description":"Defines the event types across all resource types belonging to the integration that will be ingested into the catalog.\n\n  - Keys are the machine-readable, globally unique names of resource types registered by this integration.\n  - Values are a map of event type definitions.\n","type":"object","nullable":true,"additionalProperties":{"$ref":"#/components/schemas/IntegrationResourceEvents"},"example":{"gateway_svc":{"plugin_added":{"display_name":"Plugin Added","description":"Event triggered when a new plugin is added to a gateway service.","events_feed":{"enabled":true}}}}},"IntegrationResourceEvents":{"description":"Defines the event types for a given resource type belonging to the integration that will be ingested in the catalog.\n\n  - Keys are the machine-readable, globally unique names of resource types registered by this integration.\n  - Values are the event type definition.\n","type":"object","additionalProperties":{"$ref":"#/components/schemas/IntegrationResourceEvent"}},"IntegrationResourceEvent":{"description":"Defines a registered event type for a given resource.","type":"object","required":["display_name","description","events_feed"],"properties":{"display_name":{"type":"string","description":"User-friendly display name for the event type."},"description":{"type":"string","description":"Optional, brief description of the integration event type.","nullable":true},"events_feed":{"type":"object","required":["enabled"],"properties":{"enabled":{"type":"boolean","description":"Whether this event type is returned by default in the Events API."}}}}},"CreateIntegrationInstance":{"type":"object","additionalProperties":false,"required":["integration_name","name","display_name","config"],"properties":{"integration_name":{"type":"string","description":"The type of integration instance to create.","minLength":1,"maxLength":120,"pattern":"^[0-9a-z.-]+$","example":"aws-lambda"},"name":{"type":"string","description":"The machine name of the integration instance that uniquely identifies it within the catalog.\n","minLength":1,"maxLength":120,"pattern":"^[0-9a-z.-]+$","example":"aws-lambda-prod"},"display_name":{"type":"string","description":"The display name of the integration instance.","minLength":1,"maxLength":120,"example":"AWS (prod)"},"description":{"type":"string","description":"Optionally provide a description of the integration instance.","nullable":true,"maxLength":2048},"config":{"$ref":"#/components/schemas/IntegrationInstanceConfig"}}},"UpdateIntegrationInstance":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","description":"The machine name of the integration instance that uniquely identifies it within the catalog.\n","minLength":1,"maxLength":120,"pattern":"^[0-9a-z.-]+$","example":"aws-lambda-prod"},"display_name":{"type":"string","description":"The display name of the integration instance.","minLength":1,"maxLength":120,"example":"AWS (prod)"},"description":{"type":"string","description":"Optionally provide a description of the integration instance.","nullable":true,"maxLength":2048},"config":{"$ref":"#/components/schemas/IntegrationInstanceConfig"}}},"IntegrationInstanceFilterParameters":{"type":"object","properties":{}},"IntegrationInstance":{"description":"Information about an integration instance.","type":"object","required":["id","name","display_name","description","integration","authorized","config","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"3f51fa25-310a-421d-bd1a-007f859021a3","description":"The integration instance ID.","readOnly":true},"name":{"type":"string","description":"The machine name of the integration instance that uniquely identifies it within the catalog.\n","minLength":1,"maxLength":120,"pattern":"^[0-9a-z.-]+$","example":"aws-lambda-prod"},"display_name":{"type":"string","description":"The display name of the integration instance.","minLength":1,"maxLength":120,"example":"AWS (prod)"},"description":{"type":"string","description":"The description of the integration instance.","nullable":true,"maxLength":2048},"integration":{"$ref":"#/components/schemas/IntegrationRefWithoutInstance"},"authorized":{"type":"boolean","description":"Denotes whether the integration instance has been authorized within the catalog.","example":true,"readOnly":true},"config":{"$ref":"#/components/schemas/IntegrationInstanceConfig"}}},"IntegrationInstanceConfig":{"type":"object","description":"JSON object representing configuration specific to the integration instance.\nThe expected schema depends on the integration type and is dynamically registered at runtime.\n","additionalProperties":true,"default":{},"example":{"account_region":"eu"}},"CreateIntegrationInstanceAuthCredential":{"title":"CreateIntegrationInstanceAuthCredential","oneOf":[{"$ref":"#/components/schemas/CreateOAuthCredential"},{"$ref":"#/components/schemas/CreateGitHubAppInstallationCredential"},{"$ref":"#/components/schemas/CreateMultiKeyAuthCredential"}]},"IntegrationInstanceAuthCredential":{"title":"IntegrationInstanceAuthCredential","description":"Object containing metadata for an integration instance auth credential.","oneOf":[{"$ref":"#/components/schemas/OAuthCredential"},{"$ref":"#/components/schemas/GitHubAppInstallationCredential"},{"$ref":"#/components/schemas/MultiKeyAuthCredential"}]},"CreateOAuthCredential":{"type":"object","description":"Payload used to create an `OAuth` credential for an integration instance.","additionalProperties":false,"required":["type","config"],"properties":{"type":{"type":"string","enum":["oauth"]},"config":{"type":"object","title":"CreateOAuthCredentialConfig","additionalProperties":false,"required":["grant_type","code","redirect_uri"],"properties":{"grant_type":{"type":"string","description":"The OAuth 2.0 grant type used for authorization (e.g., `authorization_code`).","enum":["authorization_code"]},"code":{"type":"string","description":"The authorization code used to exchange for an access token with the identity server.","example":"Yzk5ZDczMzRlNDEwY"},"redirect_uri":{"type":"string","format":"uri","description":"The redirect URI submitted to the authorization server during the authentication request \nto retrieve the authorization code.\n","example":"https://cloud.konghq.com/us/service-catalog/integrations/pagerduty/oauth"}}}}},"CreateGitHubAppInstallationCredential":{"type":"object","description":"Payload used to create an `GitHub App Installation` credential for an integration instance.","additionalProperties":false,"required":["type","config"],"properties":{"type":{"type":"string","enum":["github_app_installation"]},"config":{"type":"object","title":"CreateGitHubAppInstallationCredentialConfig","additionalProperties":false,"required":["installation_id","code"],"properties":{"installation_id":{"type":"string","description":"The GitHub App installation ID.","example":"46952218"},"code":{"type":"string","description":"The authorization code used to exchange for a GitHub user-scoped access token.","example":"Yzk5ZDczMzRlNDEwY"},"app_installed_by":{"type":"string","description":"The GitHub user who installed the app"}}}}},"CreateMultiKeyAuthCredential":{"type":"object","description":"Payload used to create an `Multi Key` credential for an integration instance.","additionalProperties":false,"required":["type","config"],"properties":{"type":{"type":"string","enum":["multi_key_auth"]},"config":{"type":"object","title":"CreateMultiKeyAuthCredentialConfig","additionalProperties":false,"required":["headers"],"properties":{"headers":{"type":"array","description":"A list of header key/value pairs used to transmit API credentials to the integration's external API.\nHeader names are defined by the integration within its `Multi Key` authorization strategy definition.\n","items":{"type":"object","required":["name","key"],"properties":{"name":{"description":"Name of the request header","type":"string"},"key":{"description":"The key used to populate the request header","type":"string"}}},"example":[{"name":"x-api-key","key":"9f2a3b4c8d6e7f00112233445566778899aabbccddeeff001122334455667788"}]}}}}},"OAuthCredential":{"x-flatten-allOf":true,"allOf":[{"$ref":"#/components/schemas/AuthCredentialBase"},{"type":"object","title":"OAuthCredential","description":"Represents a credential scoped to an integration instance that supports the `OAuth` authorization strategy.","required":["type"],"properties":{"type":{"type":"string","enum":["oauth"]}}}]},"GitHubAppInstallationCredential":{"x-flatten-allOf":true,"allOf":[{"$ref":"#/components/schemas/AuthCredentialBase"},{"type":"object","title":"GitHubAppInstallationCredential","description":"Represents a credential scoped to an integration instance that supports the `GitHub App Installation` authorization strategy.","required":["type","config"],"properties":{"type":{"type":"string","enum":["github_app_installation"]},"config":{"title":"GitHubAppInstallationCredentialConfig","type":"object","required":["installation_id","app_installed_by"],"properties":{"installation_id":{"type":"string","description":"The GitHub App installation ID"},"app_installed_by":{"type":"string","description":"The GitHub user who installed the app."}}}}}]},"MultiKeyAuthCredential":{"x-flatten-allOf":true,"allOf":[{"$ref":"#/components/schemas/AuthCredentialBase"},{"type":"object","title":"MultiKeyAuthCredential","description":"Represents a credential scoped to an integration instance that supports the `Multi Key` authorization strategy.","required":["type"],"properties":{"type":{"type":"string","enum":["multi_key_auth"]}}}]},"AuthCredentialBase":{"type":"object","required":["id","integration_instance","missing_permissions","tainted","expires_at","created_at"],"properties":{"id":{"$ref":"#/components/schemas/CatalogResourceId"},"integration_instance":{"$ref":"#/components/schemas/IntegrationInstanceRef"},"missing_permissions":{"type":"array","description":"List of detected missing permissions required to enable the full functionality of the given integration instance.","items":{"$ref":"#/components/schemas/MissingPermission"}},"tainted":{"type":"boolean","description":"Indicates that the credential is no longer valid and must be replaced with a new valid credential.","example":false},"expires_at":{"type":"string","format":"date-time","nullable":true,"example":"2025-04-01T07:20:50Z","description":"Timestamp denoting when the when the credential will expire in RFC-3339 format with a \"T\" character separating date from time within the field value.\nWhen expired, the credential must be replaced with a new valid credential to re-enable full functionality for the given integration instance.\n\nA `null` value indicates no known expiration time.\n"},"created_at":{}}},"MissingPermission":{"type":"object","required":["scopes","message"],"properties":{"scopes":{"type":"array","items":{"type":"string","nullable":true},"example":["incident:read"]},"message":{"type":"string","description":"Describes the degraded experience of the integration instance due to the missing permission.\nMay also include a message on how to resolve the missing permission.\n"}}},"UpsertIntegrationInstanceAuthConfig":{"title":"UpsertIntegrationInstanceAuthConfig","oneOf":[{"$ref":"#/components/schemas/UpsertOAuthAuthConfig"}]},"IntegrationInstanceAuthConfig":{"title":"IntegrationInstanceAuthConfig","oneOf":[{"$ref":"#/components/schemas/OAuthAuthConfig"}]},"UpsertOAuthAuthConfig":{"type":"object","additionalProperties":false,"required":["type","client_id","client_secret","authorization_endpoint","token_endpoint"],"properties":{"type":{"type":"string","enum":["oauth"]},"client_id":{"type":"string","description":"The OAuth client identifier.","example":"d745213a-b7e8-4998-abe3-41f164001970"},"client_secret":{"type":"string","description":"The OAuth client secret.","example":"s3cr3t4p1cl13ntt0k3n1234567890abcdef"},"authorization_endpoint":{"type":"string","format":"uri","description":"The URL where users are redirected to authorize access.","example":"https://identity.service.com/oauth/authorize"},"token_endpoint":{"type":"string","format":"uri","description":"The URL used to retrieve access tokens.","example":"https://identity.service.com/oauth/token"}}},"OAuthAuthConfig":{"type":"object","required":["type","client_id","authorization_endpoint","token_endpoint"],"properties":{"type":{"type":"string","enum":["oauth"]},"client_id":{"type":"string","description":"The OAuth client identifier.","example":"d745213a-b7e8-4998-abe3-41f164001970"},"authorization_endpoint":{"type":"string","format":"uri","description":"The URL where users are redirected to authorize access.","example":"https://identity.service.com/oauth/authorize"},"token_endpoint":{"type":"string","format":"uri","description":"The URL used to retrieve access tokens.","example":"https://identity.service.com/oauth/token"}}},"InitializeCatalogResource":{"type":"object","additionalProperties":false,"required":["type","config"],"properties":{"type":{"$ref":"#/components/schemas/CatalogResourceType"},"config":{"$ref":"#/components/schemas/CatalogResourceConfig"}}},"UpdateCatalogResource":{"type":"object","additionalProperties":false,"properties":{"archived":{"type":"boolean","example":false,"description":"Whether or not to archive the resource.\nWhen a resource is archived, all catalog service mappings will be removed.\n"}}},"CatalogResourceFilterParameters":{"type":"object","properties":{}},"CatalogResourceConfigFieldFilter":{"x-flatten-allOf":true,"allOf":[]},"CatalogResourceAttributesFieldFilter":{"x-flatten-allOf":true,"allOf":[]},"CatalogResource":{"description":"Information about a catalog resource.","type":"object","required":["id","name","integration","type","config","attributes","archived","service_associations","created_at","updated_at"],"properties":{"id":{"$ref":"#/components/schemas/CatalogResourceId"},"name":{"type":"string","description":"The name of the resource.\nWill be `null` when the resource has not yet been hydrated by the integration.\n","nullable":true,"minLength":1,"maxLength":255},"integration":{"$ref":"#/components/schemas/IntegrationRef"},"type":{"$ref":"#/components/schemas/CatalogResourceType"},"config":{"$ref":"#/components/schemas/CatalogResourceConfig"},"attributes":{"readOnly":true,"type":"object","nullable":true,"description":"JSON object containing schemaless attributes of the resource.\nThis field is always populated by the system backing the integration.\nWhen `null`, the resource has been manually initialized via API but has\nyet to be hydrated by the integration.\n","additionalProperties":true},"archived":{"type":"boolean","description":"Whether or not the resource has been archived.","example":false},"service_associations":{"readOnly":true,"type":"number","description":"The number of catalog services this resource is mapped to.","minimum":0,"example":2}}},"CatalogResourceId":{"type":"string","format":"base64url","example":"4UdXnoaDYYJsH_Ir","description":"The resource ID.","minLength":16,"maxLength":16},"CatalogResourceConfig":{"type":"object","description":"JSON object representing the properties used to identify the resource in the third-party system.\nThe schema depends on the resource type and is dynamically registered at runtime.\n","additionalProperties":true,"example":{"control_plane_id":"ccadfb0a-56cd-4f74-955d-aec1d87157c8","gateway_service_id":"94896d05-0c4d-45eb-aae3-de754885dd58"}},"CatalogResourceType":{"type":"string","description":"The resource type. Available resource types are compiled from the integrations installed within the catalog.\n","minLength":1,"maxLength":120,"example":"gateway_svc"},"CreateCatalogResourceMapping":{"type":"object","additionalProperties":false,"required":["service","resource"],"properties":{"service":{"type":"string","description":"The `id` or `name` of the service to map the resource to.","example":"user-svc"},"resource":{"oneOf":[{"$ref":"#/components/schemas/CatalogResourceId"},{"type":"object","title":"CreateCatalogResourceMappingResourceByConfig","additionalProperties":false,"required":["integration_instance","type","config"],"properties":{"integration_instance":{"type":"string","description":"The `id` or `name` of the integration instance the resource belongs to.","example":"aws-lambda-prod"},"type":{"$ref":"#/components/schemas/CatalogResourceType"},"config":{"$ref":"#/components/schemas/CatalogResourceConfig"}}}]}}},"CatalogResourceMappingFilterParameters":{"type":"object","properties":{}},"CatalogResourceMapping":{"description":"Describes a mapping between a catalog resource and a service.","type":"object","required":["id","resource","service","created_at"],"properties":{"id":{"type":"string","format":"uuid","example":"d277faad-ed4e-4c56-a0fb-acce065dee34","description":"The resource mapping ID."},"resource":{"$ref":"#/components/schemas/CatalogResourceRef"},"service":{"$ref":"#/components/schemas/CatalogServiceRef"}}},"CriteriaTemplateFilterParameters":{"type":"object","properties":{}},"CriteriaTemplate":{"type":"object","description":"Representation of a criteria template.","required":["name","display_name","template_string","integration_name","installed","schema"],"properties":{"name":{"type":"string","description":"Unique name that identifies the template.","example":"time_to_merge"},"display_name":{"type":"string","description":"The human-readable display name of the template."},"template_string":{"type":"string","nullable":true,"description":"[Liquid](https://shopify.github.io/liquid/) template string used to render the criteria interpolated by parameters."},"integration_name":{"type":"string","nullable":true,"description":"The catalog integration who registered the given criteria template.\nThis will be `null` when a template is always available independent of connected integrations.\n"},"installed":{"type":"boolean","description":"Whether the template is available given the current state of the catalog.\nFor example, this will be `false` when the template is provided by an integrastion\nthat is not currently connected.\n"},"schema":{"$ref":"#/components/schemas/CriteriaTemplateSchema"}}},"CriteriaTemplateSchema":{"oneOf":[{"nullable":true},{"x-flatten-allOf":true,"allOf":[{"$ref":"#/components/schemas/SimpleSchema"},{"type":"object","title":"CriteriaTemplateSimpleSchema","nullable":true,"description":"Defines the parameters required to evaluate the criteria using simple schema.\nSet to `null` when the given criteria does not rely on parameterization.\n"}]},{"x-flatten-allOf":true,"allOf":[{"$ref":"#/components/schemas/JSONSchema"},{"type":"object","title":"CriteriaTemplateJSONSchema","nullable":true,"description":"Defines the parameters required to evaluate the criteria using JSON schema.\nSet to `null` when the given criteria does not rely on parameterization.\n"}]}]},"ScorecardTemplateFilterParameters":{"type":"object","properties":{}},"ScorecardTemplate":{"type":"object","description":"Representation of a scorecard template.","required":["name","display_name","description","criteria"],"properties":{"name":{"$ref":"#/components/schemas/ScorecardTemplateName"},"display_name":{"type":"string","example":"Kong Best Practices"},"description":{"type":"string","example":"Best practices that we encourage users to follow when using other Konnect applications."},"criteria":{"type":"array","items":{"$ref":"#/components/schemas/ScorecardTemplateCriteria"},"example":[{"template_name":"gateway_manager_error_rate","template_parameters":{"relative_window":"30d"},"integration":"gateway_manager"},{"template_name":"gateway_manager_response_latency","template_parameters":{"metric":"response_latency_p95","relative_window":"30d"},"integration":"gateway_manager"},{"template_name":"gateway_manager_has_plugin","template_parameters":{},"integration":"gateway_manager"}]}}},"ScorecardTemplateName":{"type":"string","description":"Well-known name of the template. Uniquely identifies the template.","enum":["kong_best_practices","service_documentation","service_maturity","security_and_compliance"],"example":"kong_best_practices"},"ScorecardTemplateCriteria":{"type":"object","required":["integration","template_name","template_parameters"],"properties":{"integration":{"type":"string","nullable":true,"description":"The integration `name` when it provides the criteria template. Otherwise `null`.","example":null},"template_name":{"type":"string","description":"Reference to the unique `name` of the criteria template.","example":"time_to_merge"},"template_parameters":{"$ref":"#/components/schemas/CriteriaParameters"}}},"CreateScorecard":{"type":"object","additionalProperties":false,"required":["name","description","entity_selector","criteria"],"properties":{"name":{"type":"string","description":"The human-readable name of the scorecard.","example":"Incident Response"},"description":{"type":"string","nullable":true,"example":"Governs key metrics pertaining to teams' incident response practices."},"entity_selector":{"$ref":"#/components/schemas/ScorecardEntitySelector"},"criteria":{"type":"array","minItems":1,"items":{"$ref":"#/components/schemas/CreateScorecardCriteria"}},"scorecard_template":{"x-flatten-allOf":true,"allOf":[{"$ref":"#/components/schemas/ScorecardTemplateName"},{"nullable":true,"example":null,"description":"The name of the scorecard template used to create the scorecard.\nOtherwise, `null`.\n"}]}}},"UpdateScorecard":{"type":"object","additionalProperties":false,"required":["name","description","entity_selector","criteria"],"properties":{"name":{"type":"string","description":"The human-readable name of the scorecard.","example":"Incident Response"},"description":{"type":"string","nullable":true,"example":"Governs key metrics pertaining to teams' incident response practices."},"entity_selector":{"$ref":"#/components/schemas/ScorecardEntitySelector"},"criteria":{"type":"array","minItems":1,"items":{"oneOf":[{"$ref":"#/components/schemas/UpdateScorecardCriteria"},{"$ref":"#/components/schemas/CreateScorecardCriteria"}]}}}},"ScorecardFilterParameters":{"type":"object","properties":{}},"Scorecard":{"type":"object","description":"Representation of a scorecard.","required":["id","name","description","score","entity_selector","scorecard_template","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"f3704e4c-104d-4f21-998a-20d4364c893f"},"name":{"type":"string","description":"The human-readable name of the scorecard.","example":"Incident Response"},"description":{"type":"string","nullable":true,"example":"Governs key metrics pertaining to teams' incident response practices."},"score":{"$ref":"#/components/schemas/ScorecardScore"},"entity_selector":{"$ref":"#/components/schemas/ScorecardEntitySelector"},"scorecard_template":{"x-flatten-allOf":true,"allOf":[{"$ref":"#/components/schemas/ScorecardTemplateName"},{"nullable":true,"example":null,"description":"The name of the scorecard template used to create the scorecard.\nOtherwise, `null`.\n"}]}}},"ScorecardWithCriteria":{"x-flatten-allOf":true,"allOf":[{"$ref":"#/components/schemas/Scorecard"},{"type":"object","required":["criteria"],"properties":{"criteria":{"type":"array","items":{"$ref":"#/components/schemas/ScorecardCriteria"}}}}]},"CatalogServiceScorecard":{"x-flatten-allOf":true,"allOf":[{"$ref":"#/components/schemas/Scorecard"},{"type":"object","required":["criteria"],"properties":{"criteria":{"type":"array","items":{"$ref":"#/components/schemas/CatalogServiceScorecardCriteria"}}}}]},"ScorecardEntitySelector":{"x-flatten-allOf":true,"allOf":[{"$ref":"#/components/schemas/EntitySelector"},{"title":"ScorecardEntitySelector","nullable":true,"description":"Selector used to dynamically target catalog entities that will be\nincluded in the given scorecard's evaluated score.\n"}]},"ScorecardScore":{"type":"object","description":"The current score for the given Scorecard.\nA `null` value indicates the scorecard has not yet been evaluated and therefore no score has been computed.\n","nullable":true,"required":["value","raw_value"],"properties":{"value":{"type":"string","description":"The human-readable score value coverted to the Scorecard's assigned grading system.","example":"88%"},"raw_value":{"type":"number","description":"The raw, numeric score calculated during evaluation of the scorecard.\nRounded to 3 decimal places.\n","minimum":0,"maximum":100,"example":87.5}}},"ScorecardServiceFilterParameters":{"x-flatten-allOf":true,"allOf":[{"$ref":"#/components/schemas/CatalogServiceFilterParameters"},{"type":"object","properties":{}}]},"ScorecardService":{"x-flatten-allOf":true,"allOf":[{"$ref":"#/components/schemas/CatalogService"},{"title":"ScorecardService","description":"Service object that includes its score for the given scorecard.","type":"object","required":["score"],"properties":{"score":{"$ref":"#/components/schemas/ScorecardScore"}}}]},"ScorecardCriteriaFilterParameters":{"type":"object","properties":{}},"ScorecardCriteriaServiceFilterParameters":{"x-flatten-allOf":true,"allOf":[{"$ref":"#/components/schemas/CatalogServiceFilterParameters"},{"type":"object","properties":{}}]},"CreateScorecardCriteria":{"type":"object","additionalProperties":false,"required":["enabled","template_name","template_parameters"],"properties":{"enabled":{"type":"boolean","example":true},"template_name":{"$ref":"#/components/schemas/CriteriaTemplateName"},"template_parameters":{"$ref":"#/components/schemas/CriteriaParameters"}}},"UpdateScorecardCriteria":{"title":"UpdateScorecardCriteria","x-flatten-allOf":true,"allOf":[{"type":"object","additionalProperties":false,"required":["id"],"properties":{"id":{"type":"string","format":"uuid","example":"5c1121f9-3f3a-47c7-9bb6-c81a51128714"}}},{"$ref":"#/components/schemas/CreateScorecardCriteria"}]},"ScorecardCriteria":{"type":"object","required":["id","scorecard_id","integration","enabled","template_name","template_parameters","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"5c1121f9-3f3a-47c7-9bb6-c81a51128714"},"scorecard_id":{"type":"string","format":"uuid","example":"f3704e4c-104d-4f21-998a-20d4364c893f"},"integration":{"type":"string","nullable":true,"description":"The integration `name` when it provides the criteria template. Otherwise `null`.","example":null},"enabled":{"type":"boolean","description":"Whether the criteria is enabled for the given scorecard.","example":true},"template_name":{"$ref":"#/components/schemas/CriteriaTemplateName"},"template_parameters":{"$ref":"#/components/schemas/CriteriaParameters"}}},"CatalogServiceScorecardCriteria":{"x-flatten-allOf":true,"allOf":[{"$ref":"#/components/schemas/ScorecardCriteria"},{"type":"object","required":["evaluation"],"properties":{"evaluation":{"$ref":"#/components/schemas/ScorecardCriteriaServiceEvaluation"}}}]},"ScorecardCriteriaWithEvaluation":{"x-flatten-allOf":true,"allOf":[{"$ref":"#/components/schemas/ScorecardCriteria"},{"type":"object","required":["evaluation"],"properties":{"evaluation":{"$ref":"#/components/schemas/ScorecardCriteriaEvaluation"}}}]},"ScorecardCriteriaEvaluation":{"type":"object","nullable":true,"required":["passing_services_count"],"properties":{"passing_services_count":{"type":"number","description":"Number of targeted Services passing the criteria.","example":3}}},"CriteriaTemplateName":{"type":"string","description":"Reference to the unique `name` of the criteria template.","example":"time_to_restore_service"},"CriteriaParameters":{"type":"object","description":"Input parameters for the given criteria template.","nullable":true,"additionalProperties":true,"example":{"measure":"median","threshold":{"unit":"hours","value":6},"window":{"unit":"months","value":3}}},"ScorecardCriteriaService":{"x-flatten-allOf":true,"allOf":[{"$ref":"#/components/schemas/CatalogService"},{"title":"ScorecardService","description":"Service object that includes its evaluation result for the given scorecard criteria.","type":"object","required":["evaluation"],"properties":{"score":{"$ref":"#/components/schemas/ScorecardCriteriaServiceEvaluation"}}}]},"ScorecardCriteriaServiceEvaluation":{"type":"object","description":"Evaluation for a scorecard criteria relative to the given service service.\nHas a `null` value when the criteria has not yet been evaluated for the service.\n","nullable":true,"required":["is_passing","evaluation_context","evaluation_error","successfully_evaluated_at","attempted_at","created_at"],"properties":{"is_passing":{"type":"boolean","description":"Whether or not the service has most recently passed the criteria check."},"evaluation_context":{"$ref":"#/components/schemas/CriteriaEvaluationResultDetails"},"evaluation_error":{"x-flatten-allOf":true,"allOf":[{"$ref":"#/components/schemas/CriteriaEvaluationError"},{"example":null}]},"attempted_at":{"type":"string","format":"date-time","example":"2023-02-15T07:20:50Z","description":"The timestamp denoting the last evaluation attempt of the criteria for the service."},"successfully_evaluated_at":{"type":"string","format":"date-time","example":"2023-02-15T07:20:50Z","description":"The timestamp denoting when the criteria was last successfully evaluated for the service.\nError states preventing the evaluation from being performed will not update this timestamp.\n"}}},"CriteriaEvaluationResultDetails":{"type":"object","description":"Provides additional metadata about the criteria evaluation result.","nullable":true,"required":["raw_value","display_text"],"properties":{"raw_value":{"description":"Raw value of the criteria evaluation.\n\nFor example, a service may be failing the `time_to_acknowledge` criteria evaluation when\nthe the mean time-to-ack is greater than 15 minutes. This value represents the _actual_\nmean time-to-ack value for the service which if not passing could be 25 minutes.\n","oneOf":[{"type":"number"},{"type":"string"},{"type":"boolean"},{"$ref":"#/components/schemas/TimeValue"},{"$ref":"#/components/schemas/CriteriaEvaluationRelationMap"},{"type":"object","additionalProperties":true},{"nullable":true}]},"display_text":{"type":"string","example":"25 minutes","description":"Renderable text providing human-readable context about the evaluation value."}},"example":{"raw_value":{"unit":"minutes","value":25},"display_text":"25 minutes"}},"CriteriaEvaluationError":{"type":"object","nullable":true,"description":"Details about an error that occurred during evaluation preventing computation of a pass/fail result.\nWill be `null` when no error occurred.\n","required":["type","details"],"properties":{"type":{"type":"string","description":"The type of error that occurred.","example":"integration_unauthorized"},"details":{"type":"string","description":"Human-readable error message about the error.","example":"The GitHub integration is unauthorized. Please ensure that the\nintegration is re-authorized for the criteria to be successfully evaluated.\n"}}},"CriteriaEvaluationRelationMap":{"type":"object","required":["instance","relation","map"],"properties":{"instance":{"type":"string","enum":["criteria_result_relation_map"]},"relation":{"type":"string","example":"gateway_svc"},"map":{"additionalProperties":{"oneOf":[{"$ref":"#/components/schemas/CriteriaEvaluationRelationResult"},{"$ref":"#/components/schemas/CriteriaEvaluationErrorResult"}]}}}},"CriteriaEvaluationRelationResult":{"type":"object","required":["is_passing","relation","details"],"properties":{"is_passing":{"type":"boolean","description":"Whether or not the relation has passed the criteria evaluation."},"relation":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string"}}},"details":{"$ref":"#/components/schemas/CriteriaEvaluationResultDetails"}}},"CriteriaEvaluationErrorResult":{"type":"object","required":["relation","error"],"properties":{"relation":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string"}}},"error":{"x-flatten-allOf":true,"allOf":[{"$ref":"#/components/schemas/CriteriaEvaluationError"},{"example":null}]}}},"CustomFields":{"type":"object","description":"Map of customizable, catalog-defined fields providing information about a service.\n","additionalProperties":{"oneOf":[{"$ref":"#/components/schemas/TextCustomField"},{"$ref":"#/components/schemas/NumericCustomField"},{"$ref":"#/components/schemas/BooleanCustomField"},{"$ref":"#/components/schemas/UrlCustomField"}]},"example":{"owner":"John Appleseed","dashboard":{"name":"On-Call Dashboard","link":"https://my-dashboard-svc.io/dashboards/1"}}},"TextCustomField":{"type":"string","nullable":true},"NumericCustomField":{"type":"number","nullable":true},"BooleanCustomField":{"type":"boolean","nullable":true},"UrlCustomField":{"type":"object","nullable":true,"required":["name","link"],"properties":{"name":{"description":"The human-readable name of the URL link.","type":"string","example":"On-Call Dashboard"},"link":{"description":"The href value of the URL link.","type":"string","format":"uri-reference","example":"https://my-dashboard-svc.io/dashboards/1"}}},"EntitySelector":{"title":"EntitySelector","description":"Selector used to dynamically target a set of entities within the catalog.","oneOf":[{"$ref":"#/components/schemas/ServiceSelector"}],"example":{"type":"label","parameters":{"label_key":"product_area","operator":"equals","value":"cloud_platform"}}},"ServiceSelector":{"oneOf":[{"$ref":"#/components/schemas/AllEntitiesSelector"},{"$ref":"#/components/schemas/ByIDsSelector"},{"$ref":"#/components/schemas/ByNameSelector"},{"$ref":"#/components/schemas/ByDisplayNameSelector"},{"$ref":"#/components/schemas/ByCustomFieldSelector"},{"$ref":"#/components/schemas/ByLabelSelector"},{"$ref":"#/components/schemas/HasLabelKeySelector"},{"$ref":"#/components/schemas/HasDocsSelector"},{"$ref":"#/components/schemas/HasApisSelector"},{"$ref":"#/components/schemas/HasResourcesSelector"}]},"AllEntitiesSelector":{"type":"object","description":"Entity selector that includes all entities of the given type within the catalog.","required":["type","parameters"],"properties":{"type":{"type":"string","enum":["all"]},"parameters":{"type":"string","enum":[null],"nullable":true}}},"ByIDsSelector":{"type":"object","description":"Entity selector that includes entities contained within a list of IDs.","required":["type","parameters"],"properties":{"type":{"type":"string","enum":["ids"]},"parameters":{"type":"object","required":["ids"],"properties":{"ids":{"type":"array","items":{"type":"string","format":"uuid"}}}}}},"ByNameSelector":{"type":"object","description":"Entity selector that includes entities by `name`.","required":["type","parameters"],"properties":{"type":{"type":"string","enum":["name"]},"parameters":{"$ref":"#/components/schemas/StringFieldSelectorParams"}}},"ByDisplayNameSelector":{"type":"object","description":"Entity selector that includes entities by `display_name`.","required":["type","parameters"],"properties":{"type":{"type":"string","enum":["display_name"]},"parameters":{"$ref":"#/components/schemas/StringFieldSelectorParams"}}},"ByCustomFieldSelector":{"type":"object","description":"Entity selector that include entities by a custom field.","required":["type","parameters"],"properties":{"type":{"type":"string","enum":["custom_field"]},"parameters":{"oneOf":[{"type":"object","title":"StringCustomFieldSelectorParams","required":["field","value","operator"],"properties":{"field":{"type":"string","description":"Name of the custom field."},"value":{"type":"string"},"operator":{"$ref":"#/components/schemas/StringSelectorOperator"}}},{"type":"object","title":"NumberCustomFieldSelectorParams","required":["field","value","operator"],"properties":{"field":{"type":"string","description":"Name of the custom field."},"value":{"type":"number"},"operator":{"$ref":"#/components/schemas/NumberSelectorOperator"}}},{"type":"object","title":"BooleanCustomFieldSelectorParams","required":["field","value","operator"],"properties":{"field":{"type":"string","description":"Name of the custom field."},"value":{"type":"boolean"},"operator":{"$ref":"#/components/schemas/BooleanSelectorOperator"}}},{"type":"object","title":"UrlCustomFieldSelectorParams","required":["field","subfield","value","operator"],"properties":{"field":{"type":"string","description":"Name of the custom field."},"subfield":{"type":"string","enum":["name","link"],"description":"Specify which subfield of the `url` custom field value to use for selection."},"value":{"type":"string"},"operator":{"$ref":"#/components/schemas/StringSelectorOperator"}}}]}}},"ByLabelSelector":{"type":"object","description":"Entity selector that includes entities by `label` value.","required":["type","parameters"],"properties":{"type":{"type":"string","enum":["label"]},"parameters":{"x-flatten-allOf":true,"allOf":[{"$ref":"#/components/schemas/StringFieldSelectorParams"},{"type":"object","title":"LabelSelectorParams","required":["label_key"],"properties":{"label_key":{"type":"string"}}}]}}},"HasLabelKeySelector":{"type":"object","description":"Entity selector that includes entities by inclusion of a `label` key.","required":["type","parameters"],"properties":{"type":{"type":"string","enum":["has_label_key"]},"parameters":{"type":"object","title":"HasLabelKeySelectorParams","required":["label_key"],"properties":{"label_key":{"type":"string"}}}}},"HasDocsSelector":{"type":"object","description":"Entity selector to include entities by attached documentation.","required":["type","parameters"],"properties":{"type":{"type":"string","enum":["has_docs"]},"parameters":{"type":"string","enum":[null],"nullable":true}}},"HasApisSelector":{"type":"object","description":"Entity selector that includes services by attached APIs.","required":["type","parameters"],"properties":{"type":{"type":"string","enum":["has_apis"]},"parameters":{"$ref":"#/components/schemas/HasSelectorParams"}}},"HasResourcesSelector":{"type":"object","description":"Entity selector that includes services by mapped resources.","required":["type","parameters"],"properties":{"type":{"type":"string","enum":["has_resources"]},"parameters":{"x-flatten-allOf":true,"allOf":[{"$ref":"#/components/schemas/HasSelectorParams"},{"type":"object","title":"HasResourcesSelectorParams","required":["resource_type","integration"],"properties":{"resource_type":{"$ref":"#/components/schemas/CatalogResourceType"},"integration":{"type":"string","description":"The machine name of the integration that uniquely identifies it within the catalog.","example":"gateway-manager"}}}]}}},"StringFieldSelectorParams":{"type":"object","required":["operator","value"],"properties":{"operator":{"$ref":"#/components/schemas/StringSelectorOperator"},"value":{"type":"string"}}},"NumericFieldSelectorParams":{"type":"object","required":["operator","value"],"properties":{"operator":{"$ref":"#/components/schemas/NumberSelectorOperator"},"value":{"type":"number"}}},"BooleanFieldSelectorParams":{"type":"object","required":["operator","value"],"properties":{"operator":{"$ref":"#/components/schemas/BooleanSelectorOperator"},"value":{"type":"boolean"}}},"HasSelectorParams":{"type":"object","required":["operator","value"],"properties":{"operator":{"$ref":"#/components/schemas/HasRelationshipSelectorOperator"},"value":{"type":"number"}}},"StringSelectorOperator":{"type":"string","enum":["equals","contains"]},"NumberSelectorOperator":{"type":"string","enum":["equals","less_than","greater_than"]},"BooleanSelectorOperator":{"type":"string","enum":["equals"]},"HasRelationshipSelectorOperator":{"type":"string","enum":["exactly","at_least","at_most"]},"SimpleSchema":{"type":"object","required":["type","definition"],"properties":{"type":{"type":"string","enum":["simple"]},"definition":{"type":"object","additionalProperties":{"type":"string","enum":["string","number","boolean"]}}}},"JSONSchema":{"type":"object","required":["type","definition"],"properties":{"type":{"type":"string","enum":["json_schema"]},"definition":{"type":"object","additionalProperties":true}}},"CatalogServiceRef":{"type":"object","description":"Short-hand descriptor of a catalog service.","required":["id","name","display_name"],"properties":{"id":{"type":"string","format":"uuid","example":"7f9fd312-a987-4628-b4c5-bb4f4fddd5f7","description":"The service ID."},"name":{"type":"string","description":"The machine name of the service that uniquely identifies it within the catalog.\n","example":"user-svc"},"display_name":{"type":"string","description":"The display name of the service.","example":"User Service"}}},"IntegrationRef":{"x-flatten-allOf":true,"title":"IntegrationRef","allOf":[{"$ref":"#/components/schemas/IntegrationRefWithoutInstance"},{"type":"object","description":"Short-hand descriptor of an integration installed within the catalog.","required":["instance"],"properties":{"instance":{"$ref":"#/components/schemas/IntegrationInstanceRef"}}}]},"IntegrationRefWithoutInstance":{"type":"object","description":"Short-hand descriptor of an integration that omits instance metadata.","required":["name","display_name"],"properties":{"name":{"type":"string","example":"gateway-manager"},"display_name":{"type":"string","example":"gateway-manager"}}},"IntegrationInstanceRef":{"type":"object","description":"Short-hand descriptor of an integration instance.","required":["id","name","display_name"],"properties":{"id":{"type":"string","format":"uuid","example":"772b9caf-ddbc-4f4f-8aa4-8dfbbe420351","description":"The integration instance ID."},"name":{"type":"string","description":"The machine name of the integration instance that uniquely identifies it within the catalog.\n","pattern":"^[0-9a-z.-]+$","example":"aws-lambda-prod"},"display_name":{"type":"string","description":"The display name of the integration instance.","example":"AWS (prod)"}}},"CatalogResourceRef":{"type":"object","description":"Short-hand descriptor of a catalog resource.","required":["id","name","type","config","integration"],"properties":{"id":{"$ref":"#/components/schemas/CatalogResourceId"},"name":{"type":"string","nullable":true,"description":"The name of the resource."},"integration":{"$ref":"#/components/schemas/IntegrationRef"},"type":{"$ref":"#/components/schemas/CatalogResourceType"},"config":{"$ref":"#/components/schemas/CatalogResourceConfig"}}},"TimeValue":{"type":"object","description":"Represents a time value inclusive of units.","required":["value","unit"],"properties":{"value":{"type":"number","example":3.25},"unit":{"type":"string","example":"hours","enum":["milliseconds","seconds","minutes","hours","days","months","years"]}}}}}}
```
