/* tslint:disable */ /** * This file was automatically generated by json-schema-to-typescript. * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file, * and run json-schema-to-typescript to regenerate this file. */ /** * The app's description. */ export type Description = string; /** * A unique Atlassian Resource Identifier (ari) assigned to your app. */ export type Id = string; /** * Name of the runtime to use for app execution. */ export type Name = 'nodejs20.x' | 'nodejs22.x' | 'nodejs24.x'; /** * Lambda architecture, its value can be either 'x86_64' or 'arm64'. Default value is 'x86_64'. */ export type Architecture = 'x86_64' | 'arm64'; /** * The default amount of memory available to all functions at runtime. Increasing the function memory also increases its CPU allocation. You can configure memory between 128 MB and 1024 MB in 1-MB increments. The default value is 512 MB. */ export type MemoryMB = number; /** * Whether to enable user access control for this app. Default value of false. */ export type UserAccess = boolean; /** * Whether to enable paid app licensing for production installations of this app. Default value of false. */ export type Enabled = boolean; /** * Whether to enable editions for this app. Default value of false. */ export type EditionsEnabled = boolean; /** * Declares the licensing modes supported by this app. One of the declared modes may be selected as the active mode when the app is listed on the Marketplace. If no value is specified, the legacy coupled licensing mode is assumed by default. */ export type Modes = 'user-access'[]; /** * This property is deprecated and no longer required to use simplified user consent. Please remove it from your manifest as in a future release this will become an error. */ export type AutoUserConsent = boolean; /** * The app's connect key */ export type Key = string; export interface BasicManifestSchema { app: App; [k: string]: unknown; } export interface App { description?: Description; id: Id; runtime: Runtime; compatibility?: Compatibility; access?: Access; licensing?: Licensing; features?: Features; connect?: Connect; /** * Options related to hosted storage */ storage?: { /** * Labels to classify the type of data stored */ classifications?: ['ugc' | 'pii' | 'other', ...('ugc' | 'pii' | 'other')[]]; /** * Custom schemas for app stored entities. */ entities?: [ { /** * A name for the entity. Must be unique within the manifest and have a maximum of 60 characters. */ name: string; /** * Attributes of the entity. */ attributes: { /** * An attribute of the entity. Must be unique within the entity and have a maximum of 30 characters. * * This interface was referenced by `undefined`'s JSON-Schema definition * via the `patternProperty` "^[a-zA-Z][a-zA-Z0-9_]*$". */ [k: string]: { /** * The data type for the given attribute. */ type: 'string' | 'boolean' | 'float' | 'integer' | 'any'; }; }; /** * Indexes on attributes of the schema. */ indexes?: [ ( | string | { name: string; range: [string, ...string[]]; partition?: [string, ...string[]]; } ), ...( | string | { name: string; range: [string, ...string[]]; partition?: [string, ...string[]]; } )[] ]; }, ...{ /** * A name for the entity. Must be unique within the manifest and have a maximum of 60 characters. */ name: string; /** * Attributes of the entity. */ attributes: { /** * An attribute of the entity. Must be unique within the entity and have a maximum of 30 characters. * * This interface was referenced by `undefined`'s JSON-Schema definition * via the `patternProperty` "^[a-zA-Z][a-zA-Z0-9_]*$". */ [k: string]: { /** * The data type for the given attribute. */ type: 'string' | 'boolean' | 'float' | 'integer' | 'any'; }; }; /** * Indexes on attributes of the schema. */ indexes?: [ ( | string | { name: string; range: [string, ...string[]]; partition?: [string, ...string[]]; } ), ...( | string | { name: string; range: [string, ...string[]]; partition?: [string, ...string[]]; } )[] ]; }[] ]; }; package?: Package; } /** * Options related to the Forge Javascript runtime. */ export interface Runtime { name: Name; architecture?: Architecture; memoryMB?: MemoryMB; } /** * The app compatibility configuration. If not set, app is not a cross-context or global app. */ export interface Compatibility { confluence?: { required?: true | false; }; jira?: { required?: true | false; }; compass?: { required?: true | false; }; } /** * Options related to app access control */ export interface Access { userAccess: UserAccess; } /** * Options related to paid app licensing */ export interface Licensing { enabled: Enabled; editionsEnabled?: EditionsEnabled; modes?: Modes; } /** * Features related to app */ export interface Features { autoUserConsent?: AutoUserConsent; } /** * Connect Configuration for the forge app. */ export interface Connect { key: Key; /** * A key for the remote, which other modules can refer to. Must be unique within the manifest and have a maximum of 23 characters. */ remote?: string; /** * The type of authentication used to communicate with tenant APIs */ authentication?: 'jwt'; } /** * Options for packaging the Forge app. */ export interface Package { /** * Bundler to use for packaging the runtime code. */ bundler?: 'webpack' | 'typescript' | 'manual@2026'; /** * For manual packaging, path where the packaged runtime code is located. */ path?: string; /** * A list of files to include in the Forge app package. */ extraFiles?: string[]; }