---
title: "CreateCatalogServiceApiSpec"
url: "https://us-prod.jeffyongtaotang.com/apis/konnect-service-catalog-1/versions/cdbef9b7-686c-4189-bbc8-55c727a972e8/schemas/CreateCatalogServiceApiSpec"
---

> Full API specification: https://us-prod.jeffyongtaotang.com/apis/konnect-service-catalog-1/versions/cdbef9b7-686c-4189-bbc8-55c727a972e8.md

# CreateCatalogServiceApiSpec

## OpenAPI definition

```yaml
openapi: 3.0.3
info:
  title: Konnect Service Catalog
  version: 1.3.0
servers:
  - url: https://us.api.konghq.com/v1
    description: United-States Production region
  - url: https://eu.api.konghq.com/v1
    description: Europe Production region
  - url: https://au.api.konghq.com/v1
    description: Australia Production region
  - url: https://me.api.konghq.com/v1
    description: Middle-East Production region
  - url: https://in.api.konghq.com/v1
    description: India Production region
  - url: https://sg.api.konghq.com/v1
    description: Singapore Production region
components:
  schemas:
    UrlApiSpecProvider:
      type: object
      required:
        - type
        - config
      properties:
        type:
          type: string
          enum:
            - url
        config:
          type: object
          required:
            - url
          properties:
            url:
              type: string
              format: uri
              description: |
                Public URL that resolves to the raw API spec contents.
                Supported formats are JSON and YAML.
              example: https://api.petstore.com/v3/openapi.json
    RawApiSpecProviderPayload:
      type: object
      properties:
        type:
          type: string
          enum:
            - raw
        config:
          title: RawApiSpecProviderConfig
          type: object
          additionalProperties: false
          properties:
            contents:
              type: string
              description: |
                Raw API spec file contents.
                Supports JSON or YAML format.
                Raw specs have a maximum size limit of 8mb.
              example: |
                {"openapi":"3.0.0","info":{"version":"1.0.0","title":"Swagger Petstore","license":{"name":"MIT"}},"servers":[{"url":"http://petstore.swagger.io/v1"}],"paths":{"/pets":{"get":{"summary":"List all pets","operationId":"listPets","tags":["pets"],"parameters":[{"name":"limit","in":"query","description":"How many items to return at one time (max 100)","required":false,"schema":{"type":"integer","maximum":100,"format":"int32"}}],"responses":{"200":{"description":"A paged array of pets","headers":{"x-next":{"description":"A link to the next page of responses","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pets"}}}},"default":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"summary":"Create a pet","operationId":"createPets","tags":["pets"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pet"}}},"required":true},"responses":{"201":{"description":"Null response"},"default":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/pets/{petId}":{"get":{"summary":"Info for a specific pet","operationId":"showPetById","tags":["pets"],"parameters":[{"name":"petId","in":"path","required":true,"description":"The id of the pet to retrieve","schema":{"type":"string"}}],"responses":{"200":{"description":"Expected response to a valid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pet"}}}},"default":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"Pet":{"type":"object","required":["id","name"],"properties":{"id":{"type":"integer","format":"int64"},"name":{"type":"string"},"tag":{"type":"string"}}},"Pets":{"type":"array","maxItems":100,"items":{"$ref":"#/components/schemas/Pet"}},"Error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"}}}}}}
          required:
            - contents
      required:
        - type
        - config
    IntegrationApiSpecProviderPayload:
      description: >
        API spec provider registered by a catalog integration.


        Integrations can function as API spec providers where they register a
        globally unique

        `type` and config schema which defines the shape of `config`.


        Consult integration documentation to learn more about available API spec
        providers.
      type: object
      required:
        - type
        - config
        - integration_instance
      properties:
        type:
          type: string
          description: The globally unique API spec provider type that is registered by a
            given catalog integration.
          minLength: 1
          maxLength: 120
          example: swaggerhub_api_version
        config:
          type: object
          additionalProperties: true
          minProperties: 1
          description: JSON object containing values as defined by integration provider's
            config schema.
          example:
            owner: petco
            api: pet_store
            version: v3
        integration_instance:
          type: string
          description: The integration instance id or name
    ResourceBoundIntegrationApiSpecProviderPayload:
      description: >
        API spec provider registered by a catalog integration.


        These providers differ from `IntegrationApiSpecProvider` in that they

        denote a binding relationship between a resource type and the API spec.

        This means that the API Spec will automatically be created/deleted
        for/from a service

        as resources of the given type are mapped/unmapped.


        Consult integration documentation to learn more about available API spec
        providers.
      type: object
      required:
        - type
        - config
      properties:
        type:
          type: string
          description: >
            The globally unique API spec provider type that is registered by a
            given catalog integration.

            Resource-bound providers create a 1-to-1 mapping between a resource
            type and the API Spec.
          minLength: 1
          maxLength: 120
        config:
          type: object
          required:
            - resource_id
          properties:
            resource_id:
              type: string
              description: ID of the associated Resource the API spec is bound to.
              example: IqkHvMdyHukxcwAs
    CreateCatalogServiceApiSpec:
      type: object
      additionalProperties: false
      required:
        - name
        - description
        - provider
      properties:
        name:
          type: string
          description: The name of the API
          minLength: 1
          maxLength: 120
          example: Pet Store
        description:
          type: string
          description: The description of the API
          nullable: true
          maxLength: 2048
          example: >
            A sample API that uses a pet store as an example to demonstrate
            features in the OpenAPI specification
        provider:
          title: CreateApiSpecProvider
          description: Represents the provider, or source, of an API spec
          oneOf:
            - $ref: "#/components/schemas/UrlApiSpecProvider"
            - $ref: "#/components/schemas/RawApiSpecProviderPayload"
            - $ref: "#/components/schemas/IntegrationApiSpecProviderPayload"
            - $ref: "#/components/schemas/ResourceBoundIntegrationApiSpecProviderPayload"
```
