openapi: 3.2.0 info: version: '2.0' title: ZENSIE App Update API servers: - url: https://api.30mhz.com/api tags: - name: app-update paths: /app-update/{appId}/logo: post: tags: - app-update summary: Update a logo for an extension description: Authentication required for this operation, authenticated user should be organisation owner or admin. operationId: updateLogoForExtension parameters: - name: appId in: path required: true schema: type: string - name: content-length in: header required: false schema: type: integer format: int64 security: - Bearer: [] responses: '200': description: Logo updated content: application/json: schema: $ref: '#/components/schemas/DataUpload' application/zensie-v2+json: schema: $ref: '#/components/schemas/DataUpload' '403': description: User has no owner rights in organization. requestBody: content: multipart/form-data: schema: type: object properties: logo: type: string format: binary /app-update/{appId}/properties: put: tags: - app-update summary: Patch an application's properties description: Authentication required for this operation operationId: updateAppProperties parameters: - name: appId in: path required: true schema: type: string security: - Bearer: [] responses: '201': description: App patched content: application/json: schema: $ref: '#/components/schemas/App' application/zensie-v2+json: schema: $ref: '#/components/schemas/App' '400': description: Invalid input. '403': description: User must be authenticated. '500': description: Error while patching the application. requestBody: content: application/json: schema: $ref: '#/components/schemas/AppEditable' /app-update/{installableId}: post: tags: - app-update summary: Update an installable description: Authentication required for this operation operationId: updateInstallable parameters: - name: content-length in: header required: false schema: type: integer format: int64 - name: installableId in: path required: true schema: type: string security: - Bearer: [] responses: '201': description: App updated content: application/json: schema: $ref: '#/components/schemas/App' application/zensie-v2+json: schema: $ref: '#/components/schemas/App' '400': description: Configuration values must be either strings or json objects. '403': description: User must be authenticated. '500': description: Error while updating the app installation. requestBody: content: multipart/form-data: schema: type: object properties: file: type: string format: binary properties: type: ref required: - properties components: schemas: RequiredSensor: type: object required: - sensorTypeId properties: configurationKeypathToCheckId: type: string description: Optional keypath in dynamic configurations where check id is stored name: type: string description: Name of the sensor sensorTypeId: type: string description: Id of the sensor type of the required sensor DataUpload: type: object properties: creationTimestamp: type: integer format: int64 description: The creation timestamp. dataUploadId: type: string description: Data upload id. filename: type: string description: The name of the uploaded file groupId: type: string description: Group id for the data upload. imageDimensions: description: The image dimensions $ref: '#/components/schemas/ImageDimensions' imageThumbnails: type: array items: $ref: '#/components/schemas/ImageThumbnail' organizationId: type: string description: Organization id for the data upload. orientation: type: integer format: int32 description: The orientation of the image presignedUrl: type: string description: DataUpload AppEditable: type: object properties: dashboards: type: array description: App's dashboards. items: type: object additionalProperties: type: object defaultDynamicConfigurations: type: object description: The default dynamic configuration of the installable additionalProperties: type: object description: type: string description: Description of the installable. logoDataId: type: string description: Id of the logo image data. maxInstallationsPerOrg: type: integer format: int32 description: Maximum number of installations allowed for any given organization name: type: string description: Name of the installable ownerName: type: string description: Installable's owner name. packageDataId: type: string description: Id of the code package data. primaryColor: type: string description: App's primary color. requiredManualInputForms: type: array description: List of manual input forms required by the extension. items: $ref: '#/components/schemas/RequiredSensor' sections: type: object description: App's sections, with sections id as keys and definitions as values. additionalProperties: type: object additionalProperties: type: object settings: type: object description: Custom settings common to all extension's installations additionalProperties: type: object supportUrl: type: string description: Extension's support web page URL. widgets: type: array description: Widgets that belong to the installable. items: type: object App: type: object required: - appId properties: dashboards: type: array description: App's dashboards. items: type: object additionalProperties: type: object defaultDynamicConfigurations: type: object description: The default dynamic configuration of the installable additionalProperties: type: object description: type: string description: Description of the installable. logoDataId: type: string description: Id of the logo image data. logoUrl: type: string description: Application's logo URL. maxInstallationsPerOrg: type: integer format: int32 description: Maximum number of installations allowed for any given organization name: type: string description: Name of the installable ownerName: type: string description: Installable's owner name. packageDataId: type: string description: Id of the code package data. primaryColor: type: string description: App's primary color. requiredManualInputForms: type: array description: List of manual input forms required by the extension. items: $ref: '#/components/schemas/RequiredSensor' sections: type: object description: App's sections, with sections id as keys and definitions as values. additionalProperties: type: object additionalProperties: type: object settings: type: object description: Custom settings common to all extension's installations additionalProperties: type: object supportUrl: type: string description: Extension's support web page URL. url: type: string description: Application's URL. widgets: type: array description: Widgets that belong to the installable. items: type: object publishedAt: type: string description: UTC ISO 8601 timestamp of publication, e.g., 2025-02-21T15:00:00Z. publishedBy: type: string description: The email of the user that published this app. submittedAt: type: string description: 'The ISO601 UTC date the app was submitted. e.g.: 2021-03-21T00:00:00Z' submittedBy: type: string description: The email of the user that submitted this app. appId: type: string description: Id of the application organizationId: type: string description: Id of the organization that owns the installable. state: type: string description: Status of the installable. type: type: string description: Type of the application. ImageDimensions: type: object properties: height: type: integer format: int32 width: type: integer format: int32 ImageThumbnail: type: object properties: height: type: integer format: int32 path: type: string url: type: string width: type: integer format: int32 securitySchemes: Bearer: description: '' type: apiKey name: Authorization in: header