{
  "openapi": "3.0.4",
  "info": {
    "title": "Key Catalog API",
    "description": "This API lets another entity use the catalog using an organization key.",
    "version": "2.0"
  },
  "paths": {
    "/api/key-catalog/v2-0/catalogs/register": {
      "put": {
        "tags": [
          "KeyCatalogControllerV"
        ],
        "summary": "Register or update an item to the catalog.",
        "description": "\n# Authorization\nThis call can only be done: \n- in context of an **organization API key**. It requires an *organization key*.\n\n## Policies\nThis call enforces the following policies:\n\n* RegisterCatalogItems\n",
        "operationId": "CatalogsRegisterPut",
        "parameters": [
          {
            "name": "x-api-version",
            "in": "header",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "DATAMINER-SERVICES-API-KEY",
            "in": "header",
            "description": "The organization key to execute this API call",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "required": [
                  "file"
                ],
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary"
                  }
                }
              },
              "encoding": {
                "file": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RegisteredCatalogItemModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "Organization-Key": [ ]
          }
        ]
      },
      "post": {
        "tags": [
          "KeyCatalogControllerV"
        ],
        "summary": "Create a catalog item.",
        "description": "\n# Authorization\nThis call can only be done: \n- in context of an **organization API key**. It requires an *organization key*.\n\n## Policies\nThis call enforces the following policies:\n\n* RegisterCatalogItems\n",
        "operationId": "CatalogsRegisterPost",
        "parameters": [
          {
            "name": "x-api-version",
            "in": "header",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "DATAMINER-SERVICES-API-KEY",
            "in": "header",
            "description": "The organization key to execute this API call",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCatalogItemForm"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RegisteredCatalogItemModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "Organization-Key": [ ]
          }
        ]
      }
    },
    "/api/key-catalog/v2-0/catalogs/{catalogId}": {
      "patch": {
        "tags": [
          "KeyCatalogControllerV"
        ],
        "summary": "Update a catalog item.",
        "description": "\n# Authorization\nThis call can only be done: \n- in context of an **organization API key**. It requires an *organization key*.\n\n## Policies\nThis call enforces the following policies:\n\n* RegisterCatalogItems\n",
        "operationId": "CatalogsPatch",
        "parameters": [
          {
            "name": "catalogId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "x-api-version",
            "in": "header",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "DATAMINER-SERVICES-API-KEY",
            "in": "header",
            "description": "The organization key to execute this API call",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateCatalogItemForm"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RegisteredCatalogItemModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "Organization-Key": [ ]
          }
        ]
      },
      "delete": {
        "tags": [
          "KeyCatalogControllerV"
        ],
        "summary": "Mark a catalog item for deletion.",
        "description": "\n# Authorization\nThis call can only be done: \n- in context of an **organization API key**. It requires an *organization key*.\n\n## Policies\nThis call enforces the following policies:\n\n* RegisterCatalogItems\n",
        "operationId": "CatalogsDelete",
        "parameters": [
          {
            "name": "catalogId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "x-api-version",
            "in": "header",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "DATAMINER-SERVICES-API-KEY",
            "in": "header",
            "description": "The organization key to execute this API call",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json; x-api-version=1.0": {
              "schema": {
                "$ref": "#/components/schemas/DeleteCatalogItemForm"
              }
            },
            "application/json; x-api-version=1.0": {
              "schema": {
                "$ref": "#/components/schemas/DeleteCatalogItemForm"
              }
            },
            "text/json; x-api-version=1.0": {
              "schema": {
                "$ref": "#/components/schemas/DeleteCatalogItemForm"
              }
            },
            "application/*+json; x-api-version=1.0": {
              "schema": {
                "$ref": "#/components/schemas/DeleteCatalogItemForm"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "Organization-Key": [ ]
          }
        ]
      },
      "get": {
        "tags": [
          "KeyCatalogControllerV"
        ],
        "summary": "Get a Catalog item via its Id (Guid) or OriginalId (driver_xxx or catalog_xxx).",
        "description": "\n# Authorization\nThis call can only be done: \n- in context of an **organization API key**. It requires an *organization key*.\n\n## Policies\nThis call enforces the following policies:\n\n* ReadCatalogItems\n",
        "operationId": "CatalogsGet",
        "parameters": [
          {
            "name": "catalogId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-api-version",
            "in": "header",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "DATAMINER-SERVICES-API-KEY",
            "in": "header",
            "description": "The organization key to execute this API call",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ICatalogItemModel"
                }
              }
            }
          },
          "20000": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ICatalogItemModel"
                }
              }
            }
          },
          "20001": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IConnectorCatalogItemModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "Organization-Key": [ ]
          }
        ]
      }
    },
    "/api/key-catalog/v2-0/catalogs/{catalogId}/register/version": {
      "post": {
        "tags": [
          "KeyCatalogControllerV"
        ],
        "summary": "Register a new version of a catalog item.",
        "description": "\n# Authorization\nThis call can only be done: \n- in context of an **organization API key**. It requires an *organization key*.\n\n## Policies\nThis call enforces the following policies:\n\n* RegisterCatalogItems\n",
        "operationId": "CatalogsRegisterVersionPost",
        "parameters": [
          {
            "name": "catalogId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "x-api-version",
            "in": "header",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "DATAMINER-SERVICES-API-KEY",
            "in": "header",
            "description": "The organization key to execute this API call",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "required": [
                  "file",
                  "versionNumber"
                ],
                "type": "object",
                "properties": {
                  "versionNumber": {
                    "type": "string"
                  },
                  "versionDescription": {
                    "type": "string"
                  },
                  "file": {
                    "type": "string",
                    "format": "binary"
                  }
                }
              },
              "encoding": {
                "versionNumber": {
                  "style": "form"
                },
                "versionDescription": {
                  "style": "form"
                },
                "file": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RegisteredCatalogVersionModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "Organization-Key": [ ]
          }
        ]
      }
    },
    "/api/key-catalog/v2-0/catalogs/{catalogId}/versions": {
      "get": {
        "tags": [
          "KeyCatalogControllerV"
        ],
        "summary": "Get versions of a Catalog item via its Id (Guid).",
        "description": "\n# Authorization\nThis call can only be done: \n- in context of an **organization API key**. It requires an *organization key*.\n\n## Policies\nThis call enforces the following policies:\n\n* ReadCatalogItems\n",
        "operationId": "CatalogsVersionsGet",
        "parameters": [
          {
            "name": "catalogId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "x-api-version",
            "in": "header",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "DATAMINER-SERVICES-API-KEY",
            "in": "header",
            "description": "The organization key to execute this API call",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/IVersionModel"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "Organization-Key": [ ]
          }
        ]
      }
    },
    "/api/key-catalog/v2-0/catalogs/{catalogId}/versions/{versionId}/deploy": {
      "post": {
        "tags": [
          "KeyCatalogControllerV"
        ],
        "summary": "Allows a user deploy a certain catalog version",
        "description": "\n# Authorization\nThis call can only be done: \n- in context of an **organization API key**. It requires an *organization key*.\n\n## Policies\nThis call enforces the following policies:\n\n* DeployItems\n",
        "operationId": "CatalogsVersionsDeployPost",
        "parameters": [
          {
            "name": "catalogId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "versionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "coordinationId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "x-api-version",
            "in": "header",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "DATAMINER-SERVICES-API-KEY",
            "in": "header",
            "description": "The organization key to execute this API call",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeploymentModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "Organization-Key": [ ]
          }
        ]
      }
    },
    "/api/key-catalog/v2-0/{catalogId}/publishing-state": {
      "patch": {
        "tags": [
          "KeyCatalogControllerV"
        ],
        "summary": "This call will set the publishing state from a catalog item (public or private)",
        "description": "\n# Authorization\nThis call can only be done: \n- in context of an **organization API key**. It requires an *organization key*.\n\n## Policies\nThis call enforces the following policies:\n\n* UpdateCatalogPublishingState\n",
        "operationId": "PublishingStatePatch",
        "parameters": [
          {
            "name": "catalogId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "x-api-version",
            "in": "header",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "DATAMINER-SERVICES-API-KEY",
            "in": "header",
            "description": "The organization key to execute this API call",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "boolean"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "boolean"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "Organization-Key": [ ]
          }
        ]
      }
    },
    "/api/key-catalog/v2-0/{catalogId}/versions/{versionId}/download": {
      "get": {
        "tags": [
          "KeyCatalogControllerV"
        ],
        "summary": "Allows to download a version from a catalog item",
        "description": "\n# Authorization\nThis call can only be done: \n- in context of an **organization API key**. It requires an *organization key*.\n\n## Policies\nThis call enforces the following policies:\n\n* DownloadCatalogVersions\n",
        "operationId": "VersionsDownloadGet",
        "parameters": [
          {
            "name": "catalogId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "versionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-api-version",
            "in": "header",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "DATAMINER-SERVICES-API-KEY",
            "in": "header",
            "description": "The organization key to execute this API call",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "Organization-Key": [ ]
          }
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "CatalogProductOwner": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "minLength": 1,
            "type": "string"
          },
          "email": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CatalogVersionState": {
        "enum": [
          "Active",
          "Deprecated",
          "Known_Issues",
          "Development",
          "Stable",
          "Unlisted",
          "Prerelease"
        ],
        "type": "string",
        "x-ms-enum": {
          "Name": "CatalogVersionState",
          "modelAsString": true
        }
      },
      "CreateCatalogItemForm": {
        "required": [
          "name",
          "typeName"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "name": {
            "minLength": 1,
            "type": "string"
          },
          "typeName": {
            "minLength": 1,
            "type": "string"
          },
          "shortDescription": {
            "type": "string",
            "nullable": true
          },
          "vendorId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "sourceCodeLink": {
            "type": "string",
            "nullable": true
          },
          "productOwners": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CatalogProductOwner"
            },
            "nullable": true
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "documentationLink": {
            "type": "string",
            "nullable": true
          },
          "isPrivate": {
            "type": "boolean",
            "nullable": true
          },
          "marketName": {
            "type": "string",
            "nullable": true
          },
          "elementType": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DeleteCatalogItemForm": {
        "required": [
          "reason"
        ],
        "type": "object",
        "properties": {
          "reason": {
            "minLength": 1,
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "DependenciesModel": {
        "type": "object",
        "properties": {
          "systemRequirements": {
            "$ref": "#/components/schemas/SystemRequirementsModel"
          }
        },
        "additionalProperties": false
      },
      "DeploymentModel": {
        "required": [
          "deploymentId"
        ],
        "type": "object",
        "properties": {
          "deploymentId": {
            "minLength": 1,
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "ICatalogItemModel": {
        "required": [
          "categoryId",
          "contributors",
          "createdAt",
          "id",
          "isPrivate",
          "isTrustedSource",
          "name",
          "originalId",
          "publisher",
          "tags",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "minLength": 1,
            "type": "string",
            "readOnly": true
          },
          "originalId": {
            "minLength": 1,
            "type": "string",
            "readOnly": true
          },
          "name": {
            "minLength": 1,
            "type": "string",
            "readOnly": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          },
          "publisher": {
            "minLength": 1,
            "type": "string",
            "readOnly": true
          },
          "isPrivate": {
            "type": "boolean",
            "readOnly": true
          },
          "contributors": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "readOnly": true
          },
          "type": {
            "minLength": 1,
            "type": "string",
            "readOnly": true
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "readOnly": true
          },
          "shortDescription": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "productOwners": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OwnerModel"
            },
            "nullable": true,
            "readOnly": true
          },
          "sourceCodeLink": {
            "type": "string",
            "format": "uri",
            "nullable": true,
            "readOnly": true
          },
          "documentationLink": {
            "type": "string",
            "format": "uri",
            "nullable": true,
            "readOnly": true
          },
          "imagePath": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "isTrustedSource": {
            "type": "boolean",
            "readOnly": true
          },
          "categoryId": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "vendor": {
            "$ref": "#/components/schemas/VendorModel"
          },
          "ttl": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "readOnly": true
          },
          "marketName": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "IConnectorCatalogItemModel": {
        "required": [
          "categoryId",
          "contributors",
          "createdAt",
          "elementType",
          "id",
          "integrationId",
          "isPrivate",
          "isTrustedSource",
          "name",
          "originalId",
          "protocolType",
          "publisher",
          "tags",
          "type"
        ],
        "type": "object",
        "properties": {
          "protocolType": {
            "minLength": 1,
            "type": "string",
            "readOnly": true
          },
          "integrationId": {
            "minLength": 1,
            "type": "string",
            "readOnly": true
          },
          "elementType": {
            "minLength": 1,
            "type": "string",
            "readOnly": true
          },
          "id": {
            "minLength": 1,
            "type": "string",
            "readOnly": true
          },
          "originalId": {
            "minLength": 1,
            "type": "string",
            "readOnly": true
          },
          "name": {
            "minLength": 1,
            "type": "string",
            "readOnly": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          },
          "publisher": {
            "minLength": 1,
            "type": "string",
            "readOnly": true
          },
          "isPrivate": {
            "type": "boolean",
            "readOnly": true
          },
          "contributors": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "readOnly": true
          },
          "type": {
            "minLength": 1,
            "type": "string",
            "readOnly": true
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "readOnly": true
          },
          "shortDescription": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "productOwners": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OwnerModel"
            },
            "nullable": true,
            "readOnly": true
          },
          "sourceCodeLink": {
            "type": "string",
            "format": "uri",
            "nullable": true,
            "readOnly": true
          },
          "documentationLink": {
            "type": "string",
            "format": "uri",
            "nullable": true,
            "readOnly": true
          },
          "imagePath": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "isTrustedSource": {
            "type": "boolean",
            "readOnly": true
          },
          "categoryId": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          },
          "vendor": {
            "$ref": "#/components/schemas/VendorModel"
          },
          "ttl": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "readOnly": true
          },
          "marketName": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "IVersionModel": {
        "required": [
          "createdAt",
          "id",
          "modifiedAt",
          "state"
        ],
        "type": "object",
        "properties": {
          "id": {
            "minLength": 1,
            "type": "string"
          },
          "description": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          },
          "modifiedAt": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          },
          "dependencies": {
            "$ref": "#/components/schemas/DependenciesModel"
          },
          "state": {
            "$ref": "#/components/schemas/CatalogVersionState"
          },
          "rangeId": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "OwnerModel": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "minLength": 1,
            "type": "string"
          },
          "email": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ProblemDetails": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "detail": {
            "type": "string",
            "nullable": true
          },
          "instance": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": { }
      },
      "RegisteredCatalogItemModel": {
        "required": [
          "catalogId"
        ],
        "type": "object",
        "properties": {
          "catalogId": {
            "type": "string",
            "format": "uuid"
          }
        },
        "additionalProperties": false
      },
      "RegisteredCatalogVersionModel": {
        "required": [
          "azureStorageId",
          "catalogId",
          "catalogVersionNumber"
        ],
        "type": "object",
        "properties": {
          "catalogId": {
            "type": "string",
            "format": "uuid"
          },
          "catalogVersionNumber": {
            "minLength": 1,
            "type": "string"
          },
          "azureStorageId": {
            "minLength": 1,
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "SystemRequirementsModel": {
        "type": "object",
        "properties": {
          "minimumDataMinerVersion": {
            "type": "string",
            "nullable": true
          },
          "minimumDataMinerWebVersion": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UpdateCatalogItemForm": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "typeName": {
            "type": "string",
            "nullable": true
          },
          "shortDescription": {
            "type": "string",
            "nullable": true
          },
          "vendorId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "sourceCodeLink": {
            "type": "string",
            "nullable": true
          },
          "productOwners": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CatalogProductOwner"
            },
            "nullable": true
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "documentationLink": {
            "type": "string",
            "nullable": true
          },
          "isPrivate": {
            "type": "boolean",
            "nullable": true
          },
          "marketName": {
            "type": "string",
            "nullable": true
          },
          "elementType": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "VendorModel": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      }
    },
    "securitySchemes": {
      "ServicePrincipal-JWT-Bearer": {
        "type": "http",
        "description": "Authentication for a service by a Service Principal. A valid JWT Bearer token is required. Example: \"{token}\"",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      },
      "B2C-JWT-Bearer": {
        "type": "http",
        "description": "Authentication by B2C. A valid JWT Bearer token is required. Example: \"{token}\"",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      },
      "DataminerSystem-JWT-Bearer": {
        "type": "http",
        "description": "Authentication by DMS Token. A valid DataminerSystem JWT Bearer token is required with the correct scopes. Example: \"{token}\"",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      },
      "Oauth2": {
        "type": "oauth2",
        "flows": {
          "authorizationCode": {
            "authorizationUrl": "https://dataminerservices.b2clogin.com/dataminerservices.onmicrosoft.com/b2c_1a_signup_signin_external/oauth2/v2.0/authorize",
            "tokenUrl": "https://dataminerservices.b2clogin.com/dataminerservices.onmicrosoft.com/b2c_1a_signup_signin_external/oauth2/v2.0/token",
            "scopes": {
              "https://dataminerservices.onmicrosoft.com/skylineapi/Coordination.Info.Read": "Coordination.Info.Read",
              "https://dataminerservices.onmicrosoft.com/skylineapi/Organization.CRUD": "Organization.CRUD",
              "https://dataminerservices.onmicrosoft.com/skylineapi/Organization.Info.Read": "Organization.Info.Read",
              "https://dataminerservices.onmicrosoft.com/skylineapi/PrivateCatalog.Read": "PrivateCatalog.Read",
              "https://dataminerservices.onmicrosoft.com/skylineapi/user_impersonation": "user_impersonation"
            }
          }
        }
      }
    }
  },
  "tags": [
    {
      "name": "KeyCatalogControllerV"
    }
  ]
}