{
  "openapi": "3.0.3",
  "info": {
    "title": "Tekton REST",
    "version": "v1",
    "description": ""
  },
  "servers": [
    {
      "url": "https://cloud.kaaiot.com/tekton/api/v1",
      "description": "API Server"
    }
  ],
  "paths": {
    "/service-instances": {
      "get": {
        "description": "Returns information about configured service instances.",
        "responses": {
          "200": {
            "description": "Array of configured service instances.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceInstancesResponse"
                },
                "example": [
                  {
                    "name": "epr",
                    "serviceName": "EPR",
                    "serviceGroup": "Identity management",
                    "description": "Endpoint Register service is the Kaa platform component that keeps record of all endpoints, as well as their associated key/value attributes (metadata).",
                    "urlPrefix": "/epr",
                    "appConfigurationSchemaPresent": true,
                    "appConfigurationSchema": {},
                    "appVersionConfigurationSchemaPresent": true,
                    "appVersionConfigurationSchema": {}
                  },
                  {
                    "name": "cmx-ota",
                    "serviceName": "CMX",
                    "serviceGroup": "Configuration management",
                    "description": "Configuration management extension service instance configured to work with over-the-air orchestrator (OTAO).",
                    "appConfigurationSchemaPresent": false,
                    "appVersionConfigurationSchemaPresent": false
                  },
                  {
                    "name": "cmx",
                    "serviceName": "CMX",
                    "serviceGroup": "Configuration management",
                    "appConfigurationSchemaPresent": false,
                    "appVersionConfigurationSchemaPresent": false
                  }
                ]
              }
            }
          }
        },
        "security": [
          [
            "oauth_2_0"
          ]
        ]
      }
    },
    "/service-instances/{serviceInstanceName}": {
      "parameters": [
        {
          "name": "serviceInstanceName",
          "in": "path",
          "required": true,
          "schema": {
            "type": "string"
          },
          "description": "Service instance name.",
          "example": "epr"
        }
      ],
      "get": {
        "description": "Returns information about specific service instance.",
        "responses": {
          "200": {
            "description": "Information about service instance successfully retrieved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceInstance"
                },
                "example": {
                  "name": "epr",
                  "serviceName": "EPR",
                  "serviceGroup": "Identity management",
                  "description": "Endpoint Register service is the Kaa platform component that keeps record of all endpoints, as well as their associated key/value attributes (metadata).",
                  "urlPrefix": "/epr",
                  "appConfigurationSchemaPresent": true,
                  "appConfigurationSchema": {},
                  "appVersionConfigurationSchemaPresent": true,
                  "appVersionConfigurationSchema": {}
                }
              }
            }
          },
          "404": {
            "description": "The requested service instance name is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClientErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          [
            "oauth_2_0"
          ]
        ]
      }
    },
    "/applications": {
      "post": {
        "description": "Creates a new application.",
        "responses": {
          "201": {
            "description": "Application sucessfully created.",
            "headers": {
              "Location": {
                "description": "URI in format `{schema}://{host}:{port}/api/v1/applications/{appName}`",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "description": "The user is not allowed to perform the operation.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "409": {
            "description": "Application with such name already exists.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth_2_0": [
              "kaa:application:create on kaa-system resource OR tenant:application:create on tenant-system resource"
            ]
          }
        ],
        "parameters": [
          {
            "name": "tenantId",
            "in": "query",
            "description": "ID of the tenant the application belongs to. If not specified, the application will be created in the tenant the requested user belongs to. When security is off, defaults to \"kaa\".",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "5b39397d-1be2-49a1-ad8b-f641a97e4ce3"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PostNewApplication"
              },
              "example": {
                "displayName": "Smart kettle",
                "description": "Application for smart kettles management."
              }
            }
          }
        }
      },
      "get": {
        "description": "Returns information about applications with corresponding versions.",
        "responses": {
          "200": {
            "description": "Array of all applications with corresponding versions successfully retrieved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationsResponse"
                },
                "example": [
                  {
                    "name": "bqa46oeg10l0thoh4m7g",
                    "displayName": "Smart kettle",
                    "description": "Application for smart kettles management.",
                    "tenantId": "5b39397d-1be2-49a1-ad8b-f641a97e4ce3",
                    "createdDate": "2017-04-20T11:19:57.848Z",
                    "updatedDate": "2017-05-18T17:05:23.935Z",
                    "versions": [
                      {
                        "name": "bqa46oeg10l0thoh4m7g-v1",
                        "displayName": "Smart kettle version 1",
                        "description": "Initial smart kettle application version",
                        "createdDate": "2017-04-20T11:19:57.848Z",
                        "updatedDate": "2017-05-18T17:05:23.935Z"
                      },
                      {
                        "name": "bqa46oeg10l0thoh4m7g-v2",
                        "createdDate": "2017-04-20T11:19:57.848Z",
                        "updatedDate": "2017-05-18T17:05:23.935Z"
                      }
                    ]
                  },
                  {
                    "name": "smart_lamp",
                    "tenantId": "3a45393b-3fe5-19a7-da6c-e371b97a1da7",
                    "createdDate": "2017-04-25T15:37:07.345Z",
                    "updatedDate": "2017-04-25T15:37:07.345Z",
                    "versions": []
                  }
                ]
              }
            }
          }
        },
        "security": [
          {
            "oauth_2_0": [
              "application:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "tenantId",
            "in": "query",
            "description": "ID of the tenant the applications belong to.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "5b39397d-1be2-49a1-ad8b-f641a97e4ce3"
          }
        ]
      }
    },
    "/applications/{appName}": {
      "parameters": [
        {
          "name": "appName",
          "in": "path",
          "required": true,
          "schema": {
            "type": "string"
          },
          "description": "Application name.",
          "example": "bqa46oeg10l0thoh4m7g"
        }
      ],
      "get": {
        "description": "Returns information about specified application with corresponding versions.",
        "responses": {
          "200": {
            "description": "Application with corresponding versions successfully retrieved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Application"
                },
                "example": {
                  "name": "bqa46oeg10l0thoh4m7g",
                  "displayName": "Smart kettle",
                  "description": "Application for smart kettles management.",
                  "tenantId": "5b39397d-1be2-49a1-ad8b-f641a97e4ce3",
                  "createdDate": "2017-04-20T11:19:57.848Z",
                  "updatedDate": "2017-05-18T17:05:23.935Z",
                  "versions": [
                    {
                      "name": "bqa46oeg10l0thoh4m7g-v1",
                      "displayName": "Smart kettle version 1",
                      "description": "Initial smart kettle application version",
                      "createdDate": "2017-04-20T11:19:57.848Z",
                      "updatedDate": "2017-05-18T17:05:23.935Z"
                    },
                    {
                      "name": "bqa46oeg10l0thoh4m7g-v2",
                      "createdDate": "2017-04-20T11:19:57.848Z",
                      "updatedDate": "2017-05-18T17:05:23.935Z"
                    }
                  ]
                }
              }
            }
          },
          "404": {
            "description": "The requested application name is not found or the querying user is denied access.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth_2_0": [
              "application:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "tenantId",
            "in": "query",
            "description": "ID of the tenant the application belongs to.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "5b39397d-1be2-49a1-ad8b-f641a97e4ce3"
          }
        ]
      },
      "patch": {
        "description": "Updates information about specified application.",
        "responses": {
          "204": {
            "description": "Application successfully updated."
          },
          "404": {
            "description": "The requested application name is not found or the querying user is denied access.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth_2_0": [
              "application:update"
            ]
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateApplication"
              },
              "example": {
                "displayName": "SMART KETTLE",
                "description": "Smart kettles management."
              }
            }
          }
        }
      }
    },
    "/applications/{appName}/app-versions": {
      "parameters": [
        {
          "name": "appName",
          "in": "path",
          "required": true,
          "schema": {
            "type": "string"
          },
          "description": "Application name.",
          "example": "smart_kettle"
        }
      ],
      "post": {
        "description": "Creates a new application version.",
        "responses": {
          "201": {
            "description": "Application version sucessfully created.",
            "headers": {
              "Location": {
                "description": "URI in format `{schema}://{host}:{port}/api/v1/applications/{appName}/app-versions/{appVersionName}`",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "description": "The requested application name is not found or the querying user is denied access.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "409": {
            "description": "Application version with such name already exists.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth_2_0": [
              "application:update"
            ]
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PostNewApplicationVersion"
              },
              "example": {
                "nameSuffix": "v1",
                "displayName": "Smart kettle version 1",
                "description": "Application version for smart kettles with new telemetry format."
              }
            }
          }
        }
      },
      "get": {
        "description": "Returns information about application versions in the scope of the specified application.",
        "responses": {
          "200": {
            "description": "Application versions successfully retrieved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VersionsResponse"
                },
                "example": [
                  {
                    "name": "bqa46oeg10l0thoh4m7g-v1",
                    "displayName": "Smart kettle version 1",
                    "description": "Initial smart kettle application version",
                    "createdDate": "2017-04-20T11:19:57.848Z",
                    "updatedDate": "2017-05-18T17:05:23.935Z"
                  },
                  {
                    "name": "smart_kettle-v2",
                    "createdDate": "2017-04-20T11:19:57.848Z",
                    "updatedDate": "2017-05-18T17:05:23.935Z"
                  }
                ]
              }
            }
          },
          "404": {
            "description": "The requested application name is not found or the querying user is denied access.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth_2_0": [
              "application:read"
            ]
          }
        ]
      }
    },
    "/applications/{appName}/app-versions/{appVersionName}": {
      "parameters": [
        {
          "name": "appName",
          "in": "path",
          "required": true,
          "schema": {
            "type": "string"
          },
          "description": "Application name.",
          "example": "smart_kettle"
        },
        {
          "name": "appVersionName",
          "in": "path",
          "required": true,
          "schema": {
            "type": "string"
          },
          "description": "Application version name.",
          "example": "smart_kettle_v1"
        }
      ],
      "get": {
        "description": "Returns information about the specified application version.",
        "responses": {
          "200": {
            "description": "Application version successfully retrieved.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "name": "bqa46oeg10l0thoh4m7g-v1",
                  "displayName": "Smart kettle version 1",
                  "description": "Initial smart kettle application version",
                  "createdDate": "2017-04-20T11:19:57.848Z",
                  "updatedDate": "2017-05-18T17:05:23.935Z"
                }
              }
            }
          },
          "404": {
            "description": "The requested application or application version name is not found, or the querying user is denied access.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth_2_0": [
              "application:read"
            ]
          }
        ]
      },
      "patch": {
        "description": "Updates information about specified application version.",
        "responses": {
          "204": {
            "description": "Application version successfully updated."
          },
          "404": {
            "description": "The requested application or application version name is not found or the querying user is denied access.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth_2_0": [
              "application:update"
            ]
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateApplicationVersion"
              },
              "example": {
                "displayName": "SMART KETTLE v1",
                "description": "Smart kettles with NEW TELEMETRY format."
              }
            }
          }
        }
      }
    },
    "/app-configs": {
      "post": {
        "description": "Initializes application configuration for all services.",
        "responses": {
          "204": {
            "description": "Application configuration successfully initialized."
          },
          "403": {
            "description": "The user is not allowed to perform the operation.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "The requested service instance name is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "409": {
            "description": "Application configuration is already created.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth_2_0": [
              "kaa:application:create",
              "kaa:application:update"
            ]
          }
        ],
        "requestBody": {
          "content": {
            "example": {
              "schema": {
                "type": "object"
              }
            }
          }
        }
      },
      "get": {
        "description": "Exports application configuration for all services.",
        "responses": {
          "200": {
            "description": "Application configuration.",
            "content": {
              "example": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth_2_0": [
              "application:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "serviceInstanceName",
            "in": "query",
            "description": "Zero or more service instance names. If not specified, the configuration is returned for all available service instances.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "epts"
          }
        ]
      }
    },
    "/app-configs/applications/{appName}": {
      "parameters": [
        {
          "name": "appName",
          "in": "path",
          "required": true,
          "schema": {
            "type": "string"
          },
          "description": "Application name.",
          "example": "smart_kettle"
        }
      ],
      "put": {
        "description": "Upserts application configuration.",
        "responses": {
          "204": {
            "description": "Application configuration successfully updated."
          },
          "404": {
            "description": "The requested service instance name is not found, application name is not found, or the querying user is denied access.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth_2_0": [
              "application:update"
            ]
          }
        ],
        "requestBody": {
          "content": {
            "example": {
              "schema": {
                "type": "object"
              }
            }
          }
        }
      },
      "get": {
        "description": "Returns application configuration by services.",
        "responses": {
          "200": {
            "description": "Application configuration by services.",
            "content": {
              "example": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "The requested service instance name is not found, application name is not found, or the querying user is denied access.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth_2_0": [
              "application:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "serviceInstanceName",
            "in": "query",
            "description": "Zero or more service instance names. If not specified, the configuration is returned for all available service names.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "epts"
          }
        ]
      },
      "patch": {
        "description": "Patches application version configuration data via REST API PATCH request according to the RFC 6902.",
        "responses": {
          "204": {
            "description": "Application configuration successfully patched."
          },
          "404": {
            "description": "The requested service instance name is not found, application name is not found, patch path not found, or the querying user is denied access.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth_2_0": [
              "application:update"
            ]
          }
        ],
        "parameters": [
          {
            "name": "serviceInstanceName",
            "in": "query",
            "description": "Service instance name to apply the patch of application configuration to.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "epts"
          }
        ],
        "requestBody": {
          "content": {
            "example": {
              "schema": {
                "type": "object"
              }
            }
          }
        }
      }
    },
    "/app-configs/applications/{appName}/app-versions/{appVersionName}": {
      "parameters": [
        {
          "name": "appName",
          "in": "path",
          "required": true,
          "schema": {
            "type": "string"
          },
          "description": "Application name.",
          "example": "smart_kettle"
        },
        {
          "name": "appVersionName",
          "in": "path",
          "required": true,
          "schema": {
            "type": "string"
          },
          "description": "Application version name.",
          "example": "smart_kettle_v1"
        }
      ],
      "put": {
        "description": "Upserts application version configuration.",
        "responses": {
          "204": {
            "description": "Application version configuration successfully updated."
          },
          "404": {
            "description": "The requested service instance name is not found, application or application version name is not found, or the querying user is denied access.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth_2_0": [
              "application:update"
            ]
          }
        ],
        "requestBody": {
          "content": {
            "example": {
              "schema": {
                "type": "object"
              }
            }
          }
        }
      },
      "get": {
        "description": "Returns application version configuration by services.",
        "responses": {
          "200": {
            "description": "Application version configuration by services.",
            "content": {
              "example": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "The requested service instance name is not found, application or application version name is not found, or the querying user is denied access.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth_2_0": [
              "application:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "serviceInstanceName",
            "in": "query",
            "description": "Zero or more service instance names. If not specified, the configuration is returned for all available service instances.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "epts"
          }
        ]
      },
      "patch": {
        "description": "Patches application configuration data via REST API PATCH request according to the RFC 6902.",
        "responses": {
          "204": {
            "description": "Application version configuration successfully patched."
          },
          "404": {
            "description": "The requested service instance name is not found, application name is not found, patch path not found, or the querying user is denied access.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth_2_0": [
              "application:update"
            ]
          }
        ],
        "parameters": [
          {
            "name": "serviceInstanceName",
            "in": "query",
            "description": "Service instance name to apply the patch of application version configuration to.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "epts"
          }
        ],
        "requestBody": {
          "content": {
            "example": {
              "schema": {
                "type": "object"
              }
            }
          }
        }
      }
    },
    "/tenant-configs": {
      "put": {
        "description": "Upserts tenant-specific service instance configuration.",
        "responses": {
          "204": {
            "description": "Tenant-specific service instance configuration successfully updated."
          },
          "403": {
            "description": "The querying user is denied access."
          },
          "404": {
            "description": "The requested service instance name is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth_2_0": [
              "tenant:configuration:update"
            ]
          }
        ],
        "requestBody": {
          "content": {
            "example": {
              "schema": {
                "type": "object"
              }
            }
          }
        }
      },
      "get": {
        "description": "Returns tenant-specific service instance configurations.",
        "responses": {
          "200": {
            "description": "Tenant-specific service instance(s) configuration.",
            "content": {
              "example": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "403": {
            "description": "The querying user is denied access."
          },
          "404": {
            "description": "The requested service instance name is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth_2_0": [
              "tenant:configuration:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "serviceInstanceName",
            "in": "query",
            "description": "Zero or more service instance names. If not specified, the configuration is returned for all available service instances.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "kpc,epts"
          },
          {
            "name": "tenantId",
            "in": "query",
            "description": "ID of the tenant the configurations belongs to. If not specified, the configuration is returned for tenant of authenticated principal.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "5b39397d-1be2-49a1-ad8b-f641a97e4ce3"
          }
        ]
      }
    },
    "/bulk": {
      "get": {
        "description": "Exports application metadata and service instance configurations.\n<br/>\nSystem administrators granted with the `kaa:application:read` and `kaa:tenant:configuration:read` scopes on `kaa-system` resource in the system tenant (\"kaa\") are allowed full access to all service instance configurations of all tenants.\nOther users are limited to the tenant they are authenticated with and applications they have `application:read` scope on.\n",
        "responses": {
          "200": {
            "description": "Application metadata and service instance configurations are successfully exported.",
            "content": {
              "example": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "description": "The requested service instance name is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "security": [
          {
            "oauth_2_0": [
              "kaa:application:read on kaa-system resource OR application:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "serviceInstanceName",
            "in": "query",
            "description": "Zero or more service instance names. If not specified, the configuration is returned for all available service instances.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "epts"
          },
          {
            "name": "include",
            "in": "query",
            "description": "<ul>\n  <li>`appMetadata` – include application metadata in response.</li>\n<ul>\n<p>\nBy default no application metadata is returned.\n",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "appMetadata"
              ]
            }
          },
          {
            "name": "appName",
            "in": "query",
            "description": "Zero or more application names. If not specified, the configuration is returned for all available applications.",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "smart_kettle"
          }
        ]
      }
    }
  },
  "components": {
    "securitySchemes": {
      "oauth_2_0": {
        "type": "oauth2",
        "description": "Tekton supports OAuth 2.0 for authenticating all API requests.\n",
        "flows": {
          "implicit": {
            "authorizationUrl": "https://auth.example.com/oauth/authorize",
            "scopes": {}
          }
        }
      }
    },
    "schemas": {
      "ServiceInstancesResponse": {},
      "ServiceInstance": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Service instance name."
          },
          "serviceName": {
            "type": "string",
            "description": "Service name."
          },
          "serviceGroup": {
            "type": "string",
            "description": "Service group name (\"Communication\", \"Identity management\", etc.)."
          },
          "description": {
            "type": "string",
            "description": "Service instance description."
          },
          "urlPrefix": {
            "type": "string",
            "description": "Service instance REST API URL prefix (where applicable)."
          },
          "appConfigurationSchemaPresent": {
            "type": "boolean",
            "description": "Indicates whether service application-specific configuration JSON schema is present."
          },
          "appConfigurationSchema": {
            "type": "object",
            "description": "Service application-specific configuration JSON schema."
          },
          "appVersionConfigurationSchemaPresent": {
            "type": "boolean",
            "description": "Indicates whether service application version-specific configuration JSON schema is present."
          },
          "appVersionConfigurationSchema": {
            "type": "object",
            "description": "Service application version-specific configuration JSON schema."
          }
        },
        "required": [
          "name",
          "serviceName",
          "serviceGroup",
          "appConfigurationSchemaPresent",
          "appVersionConfigurationSchemaPresent"
        ]
      },
      "ClientErrorResponse": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "description": "Detailed error description."
          }
        },
        "required": [
          "message"
        ]
      },
      "PostNewApplication": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Application name. Must be unique in a given Kaa instance, non-empty and only contain a-z0-9-_ symbols.\nApplication name is automatically generated when `kaa.tekton.app-names.auto-generation.enabled` is true.\nMust be empty when auto generation is enabled.\n"
          },
          "displayName": {
            "type": "string",
            "description": "Application display name."
          },
          "description": {
            "type": "string",
            "description": "Application description."
          }
        }
      },
      "ApplicationsResponse": {},
      "Version": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Application version name."
          },
          "displayName": {
            "type": "string",
            "description": "Application version display name."
          },
          "description": {
            "type": "string",
            "description": "Application version description."
          },
          "createdDate": {
            "type": "string",
            "format": "rfc3339",
            "description": "Application version created date in ISO 8601 format (UTC timezone)."
          },
          "updatedDate": {
            "type": "string",
            "format": "rfc3339",
            "description": "Application version updated date in ISO 8601 format (UTC timezone)."
          }
        }
      },
      "Application": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Application name."
          },
          "displayName": {
            "type": "string",
            "description": "Application display name."
          },
          "description": {
            "type": "string",
            "description": "Application description."
          },
          "tenantId": {
            "type": "string",
            "description": "Identifier of the tenant the application belongs to."
          },
          "createdDate": {
            "type": "string",
            "format": "rfc3339",
            "description": "Application created date in ISO 8601 format (UTC timezone)."
          },
          "updatedDate": {
            "type": "string",
            "format": "rfc3339",
            "description": "Application updated date in ISO 8601 format (UTC timezone)."
          },
          "versions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Version"
            }
          }
        }
      },
      "UpdateApplication": {
        "type": "object",
        "properties": {
          "displayName": {
            "type": "string",
            "description": "Application display name."
          },
          "description": {
            "type": "string",
            "description": "Application description."
          }
        }
      },
      "PostNewApplicationVersion": {
        "type": "object",
        "properties": {
          "nameSuffix": {
            "type": "string",
            "description": "Application version name suffix. Must be unique in a given application, non-empty and only contain a-z0-9 symbols.\nApplication version name is automatically constructed as \"\\<application name\\>-\\<application version name suffix\\>\".\n"
          },
          "displayName": {
            "type": "string",
            "description": "Application version display name."
          },
          "description": {
            "type": "string",
            "description": "Application version description."
          }
        },
        "required": [
          "nameSuffix"
        ]
      },
      "VersionsResponse": {},
      "UpdateApplicationVersion": {
        "type": "object",
        "properties": {
          "displayName": {
            "type": "string",
            "description": "Application version display name."
          },
          "description": {
            "type": "string",
            "description": "Application version description."
          }
        }
      }
    }
  }
}