//#region src/generated/mapi/types.gen.d.ts type AssetUpdateRequest = { asset?: { /** * Publish date */ publish_at?: string; /** * Expire date */ expire_at?: string; /** * Whether the asset is private */ is_private?: boolean | null; /** * Asset folder ID */ asset_folder_id?: number | null; /** * Alt */ alt?: string | null; /** * Title */ title?: string | null; /** * Copyright */ copyright?: string | null; /** * Focus */ focus?: string | null; /** * External ID */ ext_id?: string | null; /** * Source */ source?: string | null; /** * Internal tag IDs */ internal_tag_ids?: Array; /** * Metadata */ meta_data?: { [key: string]: unknown; }; }; }; type ComponentCreateRequest = { component: { /** * Name of the component */ name: string; /** * Human-readable display name */ display_name?: string; /** * Component description */ description?: string; /** * Preview template HTML */ preview_tmpl?: string; /** * Component image URL */ image?: string; /** * Field used for preview */ preview_field?: string; /** * Whether this component can be used as a root component */ is_root?: boolean; /** * Whether this component can be nested inside other components */ is_nestable?: boolean; /** * Default preset ID */ preset_id?: number; /** * UUID */ component_group_uuid?: string | null; /** * Component color for UI display */ color?: string; /** * Component icon name */ icon?: string; /** * Asset preview URL for content type */ content_type_asset_preview?: string; /** * List of internal tag IDs */ internal_tag_ids?: Array; /** * Component field schema definition */ schema?: { [key: string]: { type?: 'bloks' | 'text' | 'textarea' | 'richtext' | 'markdown' | 'number' | 'datetime' | 'boolean' | 'options' | 'option' | 'asset' | 'multiasset' | 'multilink' | 'table' | 'section' | 'commerce' | 'custom' | 'image' | 'file' | 'tab' | 'link' | 'group'; /** * Human-readable field name */ display_name?: string; /** * Whether this field is required */ required?: boolean; /** * Whether this field is translatable */ translatable?: boolean; [key: string]: unknown | 'bloks' | 'text' | 'textarea' | 'richtext' | 'markdown' | 'number' | 'datetime' | 'boolean' | 'options' | 'option' | 'asset' | 'multiasset' | 'multilink' | 'table' | 'section' | 'commerce' | 'custom' | 'image' | 'file' | 'tab' | 'link' | 'group' | string | boolean | undefined; }; }; /** * Component metadata */ metadata?: { [key: string]: unknown; }; }; }; type ComponentGroupRequest = { component_group: { /** * Name of the component group */ name: string; /** * Parent component group ID */ parent_id?: number | null; }; }; type ComponentUpdateRequest = { component: { /** * Name of the component */ name?: string; /** * Human-readable display name */ display_name?: string; /** * Component description */ description?: string; /** * Preview template HTML */ preview_tmpl?: string; /** * Component image URL */ image?: string; /** * Field used for preview */ preview_field?: string; /** * Whether this component can be used as a root component */ is_root?: boolean; /** * Whether this component can be nested inside other components */ is_nestable?: boolean; /** * Default preset ID */ preset_id?: number; /** * UUID */ component_group_uuid?: string | null; /** * Component color for UI display */ color?: string; /** * Component icon name */ icon?: string; /** * Asset preview URL for content type */ content_type_asset_preview?: string; /** * List of internal tag IDs */ internal_tag_ids?: Array; /** * Component field schema definition */ schema?: { [key: string]: { type?: 'bloks' | 'text' | 'textarea' | 'richtext' | 'markdown' | 'number' | 'datetime' | 'boolean' | 'options' | 'option' | 'asset' | 'multiasset' | 'multilink' | 'table' | 'section' | 'commerce' | 'custom' | 'image' | 'file' | 'tab' | 'link' | 'group'; /** * Human-readable field name */ display_name?: string; /** * Whether this field is required */ required?: boolean; /** * Whether this field is translatable */ translatable?: boolean; [key: string]: unknown | 'bloks' | 'text' | 'textarea' | 'richtext' | 'markdown' | 'number' | 'datetime' | 'boolean' | 'options' | 'option' | 'asset' | 'multiasset' | 'multilink' | 'table' | 'section' | 'commerce' | 'custom' | 'image' | 'file' | 'tab' | 'link' | 'group' | string | boolean | undefined; }; }; /** * Component metadata */ metadata?: { [key: string]: unknown; }; }; }; type CreateDatasourceEntryRequest = { datasource_entry: { /** * The name (key) of the datasource entry */ name: string; /** * The value of the datasource entry */ value: string; /** * The ID of the datasource this entry belongs to */ datasource_id: number; /** * The value for a specific dimension */ dimension_value?: string; /** * The position of the entry in the datasource */ position?: number; }; }; type CreateDatasourceRequest = { datasource: { /** * The name of the datasource */ name: string; /** * The unique slug of the datasource */ slug: string; /** * Array of dimensions to create for this datasource */ dimensions_attributes?: Array<{ /** * ID of existing dimension (for updates) */ id?: number; /** * Name of the dimension */ name?: string; /** * Value for the dimension entry */ entry_value?: string; /** * Set to true to delete this dimension */ _destroy?: boolean; }>; }; }; type CreateExperimentRequest = { experiment: { /** * Internal name (lowercase letters, numbers, underscores only) */ name: string; /** * Human-readable display name */ display_name: string; /** * Optional description of the experiment */ description?: string; /** * IDs of stories to assign to this experiment */ story_ids?: Array; /** * Variants to create with the experiment */ experiment_variants_attributes?: Array<{ /** * Internal name (lowercase, numbers, underscores) */ name: string; /** * Human-readable display name */ display_name: string; /** * Traffic weight percentage (0-100) */ weight?: number; /** * Whether this is the control variant */ is_control?: boolean; }>; }; }; type CreateExperimentStoryRequest = { experiment_story: { /** * ID of the story to link */ story_id: number; }; }; type CreatePresetRequest = { preset: { /** * Name of the preset */ name: string; /** * The preset content configuration as JSON object */ preset?: { [key: string]: unknown; }; /** * ID of the component this preset belongs to */ component_id: number; /** * URL of the preset preview image */ image?: string; /** * Icon identifier for the preset */ icon?: string; /** * Color associated with the preset */ color?: string; /** * Description of the preset */ description?: string; }; }; type CreateSpaceRequest = { space: { /** * The name of the space */ name: string; /** * The domain associated with the space */ domain?: string | null; /** * ID of parent space if creating a child space */ parent_id?: number | null; /** * Webhook URL for story published events */ story_published_hook?: string | null; /** * Searchblok integration ID */ searchblok_id?: string | null; /** * Whether this is a demo space */ is_demo?: boolean; /** * Blueprint reference for space initialization */ blueprint_reference?: string | null; /** * Whether to disable the onboarding tour */ onboarding_tour_disabled?: boolean; /** * Initial environments configuration */ environments?: Array<{ name: string; location: string; }>; }; }; type DatasourceEntriesIndexResponse = { datasource_entries: Array; }; type DatasourceEntryShowResponse = { datasource_entry: DatasourceEntry; }; type InternalTagRequest = { internal_tag: { /** * The name of the internal tag */ name: string; /** * The type of object this tag is associated with */ object_type?: 'asset' | 'component' | 'idea'; }; }; type LocalizedPath = { /** * The localized path */ path: string; /** * The translated name */ name: string | null; /** * The language code for this translation. */ lang: string; /** * Published status or date */ published: boolean | string | null; /** * The translated slug (only present when folders are used). */ translated_slug?: string; }; type PushExperimentResultsRequest = { /** * Array of pre-computed chart objects (max 20). Each item must be a BarChart, LineChart, or TextChart. */ charts: Array<{ /** * Chart type discriminator */ kind: 'bar' | 'line' | 'text'; /** * Optional chart title */ title?: string | null; /** * Optional x-axis label (bar and line charts) */ xLabel?: string | null; /** * Optional y-axis label (bar and line charts) */ yLabel?: string | null; /** * Category or time-axis labels (required for bar and line charts) */ labels?: Array; /** * Data series (required for bar and line charts) */ series?: Array<{ /** * Series label */ label: string; /** * Numeric data points aligned with labels */ data: Array; }>; /** * Text content (required for text charts) */ body?: string; }>; }; type SharedInternalTagRequest = { shared_internal_tag: { /** * The name of the shared internal tag */ name: string; /** * The type of object this tag is associated with */ object_type?: 'asset' | 'component' | 'idea'; /** * The id of the root Shared Library asset_folder this tag is scoped to */ asset_folder_id: number; }; }; type Stage = { /** * The workflow ID */ workflow_id: number | null; /** * The workflow stage ID */ workflow_stage_id: number; /** * The story ID */ story_id: number; /** * The due date for this workflow stage */ due_date: string | null; /** * Creation timestamp (format is ISO 8601 standard in UTC). */ created_at: string; }; type UpdateDatasourceEntryRequest = { datasource_entry: { /** * The name (key) of the datasource entry */ name?: string; /** * The value of the datasource entry */ value?: string; /** * The ID of the datasource this entry belongs to */ datasource_id?: number; /** * The value for a specific dimension */ dimension_value?: string; /** * The position of the entry in the datasource */ position?: number; }; }; type UpdateDatasourceRequest = { datasource: { /** * The name of the datasource */ name?: string; /** * The unique slug of the datasource */ slug?: string; /** * Array of dimensions to update or create for this datasource */ dimensions_attributes?: Array<{ /** * ID of existing dimension (for updates) */ id?: number; /** * Name of the dimension */ name?: string; /** * Value for the dimension entry */ entry_value?: string; /** * Set to true to delete this dimension */ _destroy?: boolean; }>; }; }; type UpdateExperimentRequest = { experiment: { /** * Human-readable display name */ display_name?: string; /** * Optional description of the experiment */ description?: string; /** * IDs of stories to assign to this experiment */ story_ids?: Array; /** * Variants to add, update, or remove */ experiment_variants_attributes?: Array<{ /** * ID of existing variant (required for update/delete) */ id?: number; /** * Internal name (lowercase, numbers, underscores) */ name?: string; /** * Human-readable display name */ display_name?: string; /** * Traffic weight percentage (0-100) */ weight?: number; /** * Whether this is the control variant */ is_control?: boolean; /** * Set to true to remove this variant */ _destroy?: boolean; }>; }; }; type UpdatePresetRequest = { preset: { /** * Name of the preset */ name?: string; /** * The preset content configuration as JSON object */ preset?: { [key: string]: unknown; }; /** * ID of the component this preset belongs to */ component_id?: number; /** * URL of the preset preview image */ image?: string; /** * Icon identifier for the preset */ icon?: string; /** * Color associated with the preset */ color?: string; /** * Description of the preset */ description?: string; }; }; type UpdateSpaceRequest = { space: { /** * The name of the space */ name?: string; /** * The domain associated with the space */ domain?: string; /** * Webhook URL for story published events */ story_published_hook?: string | null; /** * Unique domain for the space */ uniq_domain?: string | null; /** * ID of the new owner (only changeable by current owner) */ owner_id?: number; /** * Whether this is a demo space */ is_demo?: boolean; /** * Searchblok integration ID */ searchblok_id?: string | null; /** * ID of parent space */ parent_id?: number | null; /** * Cache version */ version?: number; /** * Whether the space can be duplicated */ duplicatable?: boolean; /** * Default root component type */ default_root?: string; /** * AWS role for asset management */ asset_aws_role?: string | null; /** * Personal S3 bucket for assets */ personal_s3_asset_bucket?: string | null; /** * AWS region for assets */ asset_region?: string | null; /** * Token for webhook authentication */ webhook_token?: string | null; /** * Whether to use translated stories feature */ use_translated_stories?: boolean; /** * Backup schedule time */ backup_time?: string | null; /** * Current onboarding step */ onboarding_step?: string | null; /** * Webhook URL for release merged events */ release_merged_hook?: string | null; /** * Webhook URL for branch deployed events */ branch_deployed_hook?: string | null; /** * Webhook URL for datasource entry saved events */ datasource_entry_saved_hook?: string | null; /** * Webhook URL for story saved events */ story_saved_hook?: string | null; /** * Webhook URL for stage changed events */ stage_changed_hook?: string | null; /** * S3 bucket name */ s3_bucket?: string | null; /** * AWS ARN for external integrations */ aws_arn?: string | null; /** * Cloudinary cloud name */ cloudinary_cloud_name?: string | null; /** * Cloudinary API key */ cloudinary_api_key?: string | null; /** * Backup frequency setting */ backup_frequency?: string | null; /** * Day of week for weekly backups (0-6) */ backup_week_day?: number | null; /** * Default language name */ default_lang_name?: string | null; /** * Default AI translation language code (AiServices::TextService::LANGUAGES); defaults to en */ default_ai_lang_code?: string | null; /** * Whether to use hosted backups */ hosted_backup?: boolean; /** * Whether space is in maintenance mode */ maintenance?: boolean; /** * Tablet screen size in pixels */ tablet_size?: number | null; /** * Mobile screen size in pixels */ mobile_size?: number | null; /** * Whether visual mode is disabled */ visual_mode_disable?: boolean; /** * Whether AI text generation is disabled */ ai_text_generator_disabled?: boolean; /** * Whether to track usage statistics */ track_statistics?: boolean; /** * Custom upload limit in megabytes */ custom_upload_limit_in_mb?: number | null; /** * Whether strong authentication is required */ strong_auth?: boolean; /** * Auto-delete old versions after specified days */ auto_delete_old_versions_after_days?: number | null; /** * Whether to encode preview URLs */ encode_preview_urls?: boolean; /** * Whether to enable extended character set in story slugs */ enable_extended_char_set_in_stories_slug?: boolean; /** * Whether to show alternative versions of stories */ show_stories_alternative_versions?: boolean; /** * Blueprint reference */ blueprint_reference?: string | null; /** * Whether to inherit organization AI configuration */ inherit_org_ai_configuration?: boolean; /** * Whether to disable the onboarding tour */ onboarding_tour_disabled?: boolean; /** * Language configuration */ languages?: Array<{ code: string; name: string; ai_translation_code?: string | null; }>; /** * Custom routes configuration */ routes?: Array<{ pattern: string; template: string; }>; /** * Environment configuration */ environments?: Array<{ name: string; location: string; }>; /** * Web crawling configuration */ crawl_config?: { base_url?: string; enabled?: boolean; }; /** * Billing address information */ billing_address?: { tax_number?: string; order_number?: string; company?: string; email?: string; name?: string; address_city?: string; address_country?: string; address_iso_country?: string; address_line1?: string; address_zip?: string; }; /** * Required asset fields configuration */ required_assest_fields?: Array; /** * Custom metadata schema for assets */ asset_custom_meta_data_schema?: Array<{ key?: string; display_name?: string; regex?: string | null; regex_message?: string | null; required?: boolean; translatable?: boolean; filetypes?: Array; }>; /** * Translatable asset fields configuration */ translatable_asset_fields?: Array; /** * Dimension app folder configurations with full metadata. Each item represents a dimension with its associated root folder. */ dimensions_app_folders?: Array<{ /** * The ID of the linked folder */ folder_id: number; /** * The AI translation code for this folder */ ai_translation_code: string | null; }>; /** * Whether to enable AI translation for the dimensions app */ enable_dimensions_app_ai_translation?: boolean; }; }; type UpdateStoryRequest = { story: { name?: string; disble_fe_editor?: boolean; disable_fe_editor?: boolean; /** * The default root */ default_root?: string | null; is_folder?: boolean; group_id?: string; path?: string | null; slug?: string; is_startpage?: boolean; /** * ID of the parent folder. Can be null or 0 for root-level stories. */ parent_id?: number | null; sort_by_date?: string | null; meta_data?: { [key: string]: unknown; } | null; publish_at?: string | null; expire_at?: string | null; first_published_at?: string | null; pinned?: boolean; position?: number; tag_list?: Array; base_version_id?: number | null; /** * Array of translated slug attributes for creating or updating translated slugs. */ translated_slugs_attributes?: Array<{ /** * ID of the translated slug (required for updates, omit for new records) */ id?: number; /** * The slug for this translated slug (required) */ slug?: string; /** * The name for this translated slug */ name?: string | null; /** * The language code for this translation */ lang?: string; /** * Set to true to mark this translated slug for deletion when the story is saved */ _destroy?: boolean | null; }> | null; /** * Dynamic component data rendered by Storyblok, structure varies by component */ content?: { [key: string]: unknown; }; }; }; type UserUpdateRequest = { user: { email?: string; password?: string; password_confirmation?: string; current_password?: string; firstname?: string; lastname?: string; username?: string; lang?: string; timezone?: string; use_username?: boolean; alt_email?: string; login_strategy?: 'password' | 'otp_email' | 'otp_sms'; phone?: string; is_editor?: boolean; job_role?: string; job_title?: string; company_name?: string; company_size?: string; usage_type?: string; framework_used?: string; beta_user?: boolean; track_statistics?: boolean; ui_theme?: { [key: string]: unknown; }; favourite_spaces?: Array; favourite_ideas?: Array; notified?: Array; disclaimer_ids?: Array; }; /** * OTP code for phone verification. */ otp_attempt?: string; }; type CreateAsset = { fields: { /** * acl */ acl: string; /** * Cache Control */ 'Cache-Control': string; /** * Content Type */ 'Content-Type': string; /** * key */ key: string; /** * Expiration date (optional) */ Expires?: string; /** * policy */ policy: string; /** * credential */ 'x-amz-credential': string; /** * algorithm */ 'x-amz-algorithm': string; /** * date */ 'x-amz-date': string; /** * signature */ 'x-amz-signature': string; }; post_url: string; pretty_url: string; public_url: string; id: number; locked: boolean; /** * Custom metadata for the asset */ meta_data: { [key: string]: unknown; }; }; type FinishUploadAsset = { /** * ID of the asset. */ id: number; /** * Alt text for the asset (default language). */ alt?: string | null; /** * Copyright text. */ copyright?: string | null; /** * Full path of the asset, including the file name. */ filename: string; /** * Focus point. */ focus?: string | null; /** * Defines if the asset should be inaccessible to the public. */ is_private: boolean; /** * User's job title or role. */ title?: string | null; }; type IndexAsset = { /** * Id of the asset. */ id: number; /** * Alt text for the asset (default language). */ alt?: string | null; /** * Id of the folder containing this asset. */ asset_folder_id?: number | null; /** * The content length in bytes. */ content_length: number; /** * The content type. */ content_type: string; /** * Copyright text. */ copyright?: string | null; expire_at?: string | null; /** * Ext id */ ext_id?: string | null; /** * Full path of the asset, including the file name. */ filename: string; /** * Focus point. */ focus?: string | null; internal_tag_ids?: Array; /** * Defines if the asset should be inaccessible to the public. */ is_private: boolean; /** * If locked */ locked?: boolean; /** * Custom metadata for the asset */ meta_data?: { [key: string]: unknown; } | null; publish_at?: string | null; /** * file name */ short_filename?: string; /** * source */ source?: string | null; /** * source */ space_id: number; /** * User's job title or role. */ title?: string | null; /** * Creation timestamp (format is ISO 8601 standard in UTC). */ created_at: string; /** * Latest update timestamp (format is ISO 8601 standard in UTC). */ updated_at: string; deleted_at?: string | null; internal_tags_list: Array<{ id: number; name: string; }>; }; type ShowAsset = { /** * Id of the asset. */ id: number; /** * Full path of the asset, including the file name. */ filename: string; /** * ID of the space this asset belongs to */ space_id: number; /** * Creation timestamp (format is ISO 8601 standard in UTC). */ created_at: string; /** * Latest update timestamp (format is ISO 8601 standard in UTC). */ updated_at: string; /** * File object with upload details */ file?: { [key: string]: unknown; } | null; /** * Id of the folder containing this asset. */ asset_folder_id?: number | null; deleted_at?: string | null; /** * file name */ short_filename?: string; /** * The content length in bytes. */ content_length?: number | null; /** * The content type. */ content_type?: string | null; /** * deleted?. */ permanently_deleted?: boolean | null; /** * Alt text for the asset (default language). */ alt?: string | null; /** * Copyright text. */ copyright?: string | null; /** * User's job title or role. */ title?: string | null; /** * Focus point. */ focus?: string | null; /** * Ext id */ ext_id?: string | null; expire_at?: string | null; /** * source */ source?: string | null; /** * List of internal tag IDs */ internal_tag_ids?: Array; /** * If locked */ locked?: boolean; /** * Defines if the asset should be inaccessible to the public. */ is_private: boolean; publish_at?: string | null; /** * Additional metadata */ meta_data?: { [key: string]: unknown; } | null; /** * List of internal tags */ internal_tags_list?: Array<{ id: number; name: string; }>; }; /** * A dimension for datasource entries, enabling localized or context-specific values */ type Dimension = { /** * ID */ id: number; /** * Name */ name: string; /** * The value provided for the datasource dimension. */ entry_value: string; /** * The numeric ID of the datasource that the dimension belongs to. */ datasource_id?: number; /** * Creation timestamp (format is ISO 8601 standard in UTC). */ created_at?: string; /** * Latest update timestamp (format is ISO 8601 standard in UTC). */ updated_at?: string; }; type Preset = { /** * Unique identifier of the preset */ id: number; /** * Name of the preset */ name: string; /** * The preset content configuration as JSON object */ preset: { [key: string]: unknown; } | null; /** * ID of the component this preset belongs to */ component_id: number; /** * ID of the space this preset belongs to */ space_id: number; /** * URL of the preset preview image */ image?: string | null; /** * Color associated with the preset */ color?: string | null; /** * Icon identifier for the preset */ icon?: string | null; /** * Description of the preset */ description?: string | null; /** * Creation timestamp (format is ISO 8601 standard in UTC). */ created_at: string; /** * Latest update timestamp (format is ISO 8601 standard in UTC). */ updated_at: string; }; type Alternate = { id: number; name: string; /** * URL-friendly identifier for the app category. */ slug: string; published: boolean | null; full_slug: string; /** * true if the instance constitutes a folder. */ is_folder: boolean; /** * ID of parent space if this is a child space. */ parent_id: number; }; /** * Folder for organizing assets within a space */ type AssetFolder = { id: number; name: string; /** * ID of parent space if this is a child space. */ parent_id: number | null; /** * Unique UUID identifier for the discussion. */ uuid: string; parent_uuid: string | null; }; type Breadcrumb = { /** * Breadcrumb ID */ id: number; /** * Name of the breadcrumb */ name: string; /** * ID of parent space if this is a child space. */ parent_id: number | null; /** * Disable frontend editor (legacy typo field). Deprecated: use disable_fe_editor instead of disble_fe_editor. */ disble_fe_editor: boolean; /** * Disable frontend editor */ disable_fe_editor: boolean; /** * Path of the breadcrumb */ path: string | null; /** * URL-friendly identifier for the app category. */ slug: string; /** * List of translated slugs for the breadcrumb */ translated_slugs: Array; }; /** * A user who has been granted access to a space */ type Collaborator = { /** * The unique identifier of the collaborator */ id: number; /** * The user ID associated with this collaborator */ user_id?: number | null; /** * The space ID this collaborator belongs to */ space_id: number; /** * The role of the collaborator */ role: string; /** * List of permissions */ permissions: Array; /** * Allowed content path */ allowed_path?: string | null; /** * Field-level permissions (can be array or empty string) */ field_permissions: Array | string; /** * Associated space role ID */ space_role_id?: number | null; /** * List of associated space role IDs */ space_role_ids: Array; /** * Whether the collaborator can act as admin */ can_act_as_admin?: boolean; /** * User information */ user?: { id?: number; avatar?: string | null; firstname?: string | null; lastname?: string | null; alt_email?: string | null; real_email?: string | null; disabled?: boolean; userid?: string; friendly_name?: string; } | null; /** * Invitation information if user hasn't joined yet */ invitation?: { email?: string; expires_at?: string | null; is_expired?: boolean; rid?: string; } | null; }; type Component = { /** * Unique identifier for the component */ readonly id: number; /** * Technical name of the component. */ name: string; /** * Human-readable display name */ display_name?: string | null; /** * Component description */ description?: string | null; /** * Creation timestamp (format is ISO 8601 standard in UTC). */ readonly created_at: string; /** * Latest update timestamp (format is ISO 8601 standard in UTC). */ updated_at: string; /** * Component field schema definition */ schema: { [key: string]: { type?: 'bloks' | 'text' | 'textarea' | 'richtext' | 'markdown' | 'number' | 'datetime' | 'boolean' | 'options' | 'option' | 'asset' | 'multiasset' | 'multilink' | 'table' | 'section' | 'commerce' | 'custom' | 'image' | 'file' | 'tab' | 'link' | 'group'; /** * Field ID */ id?: string; [key: string]: unknown | 'bloks' | 'text' | 'textarea' | 'richtext' | 'markdown' | 'number' | 'datetime' | 'boolean' | 'options' | 'option' | 'asset' | 'multiasset' | 'multilink' | 'table' | 'section' | 'commerce' | 'custom' | 'image' | 'file' | 'tab' | 'link' | 'group' | string | undefined; }; }; /** * Component image URL */ image?: string | null; /** * Field used for preview. */ preview_field?: string | null; /** * Whether this component can be used as a root component. */ is_root: boolean; /** * Preview template HTML. */ preview_tmpl?: string | null; /** * Whether this component can be nested inside other components. */ is_nestable: boolean; /** * All presets associated with this component. */ all_presets?: Array<{ /** * Preset ID */ id?: number; /** * Preset name */ name?: string; /** * Preset schema */ preset?: { [key: string]: unknown; }; /** * ID of the component this preset belongs to */ component_id?: number; /** * Image URL for the preset preview */ image?: string | null; /** * Icon name for the preset */ icon?: string | null; /** * Color for the preset display */ color?: string | null; /** * Description of the preset */ description?: string | null; }>; /** * Default preset ID. */ preset_id?: number | null; /** * Display name if available, otherwise technical name. */ real_name?: string; /** * UUID of the component group this component belongs to. */ component_group_uuid?: string | null; /** * Component color for UI display */ color?: string | null; /** * Component icon name */ icon?: string | null; internal_tags_list?: Array<{ /** * ID */ id?: number; /** * Name */ name?: string; }>; /** * List of internal tag IDs */ internal_tag_ids?: Array; /** * Content Type Asset preview. */ content_type_asset_preview?: string | null; /** * Component metadata. */ metadata?: { [key: string]: unknown; } | null; }; /** * Logical grouping of components for organizational purposes */ type ComponentGroup = { /** * Unique ID. */ id: number; /** * The name of the component group. */ name: string; /** * Unique UUID identifier for the discussion. */ uuid: string; /** * ID of parent space if this is a child space. */ parent_id: number | null; /** * The UUID of the parent component group */ parent_uuid: string | null; }; type ComponentVersion = { /** * Component field schema definition at this version */ schema: { [key: string]: { type?: 'bloks' | 'text' | 'textarea' | 'richtext' | 'markdown' | 'number' | 'datetime' | 'boolean' | 'options' | 'option' | 'asset' | 'multiasset' | 'multilink' | 'table' | 'section' | 'commerce' | 'custom' | 'image' | 'file' | 'tab' | 'link' | 'group'; /** * Field ID */ id?: string; [key: string]: unknown | 'bloks' | 'text' | 'textarea' | 'richtext' | 'markdown' | 'number' | 'datetime' | 'boolean' | 'options' | 'option' | 'asset' | 'multiasset' | 'multilink' | 'table' | 'section' | 'commerce' | 'custom' | 'image' | 'file' | 'tab' | 'link' | 'group' | string | undefined; }; }; }; /** * A named collection of key-value entries used for structured content options */ type Datasource = { /** * ID. */ id: number; /** * Name. */ name: string; /** * URL-friendly identifier for the app category. */ slug: string; /** * Dimensions of the datasource. */ dimensions: Array; /** * Creation timestamp (format is ISO 8601 standard in UTC). */ created_at?: string; /** * Latest update timestamp (format is ISO 8601 standard in UTC). */ updated_at?: string; }; /** * A single key-value entry within a datasource */ type DatasourceEntry = { /** * ID. */ id: number; /** * Name. */ name: string; /** * Given value in default dimension */ value: string; /** * Given value in the requested dimension. */ dimension_value: string | null; }; type Experiment = { /** * Numeric ID of the experiment */ readonly id: number; /** * Internal name (lowercase, numbers, underscores). */ name: string; /** * Human-readable display name */ display_name: string; /** * Optional description of the experiment */ description?: string | null; /** * Current status of the experiment */ status: 'draft' | 'running' | 'paused' | 'completed'; /** * Timestamp when the experiment was first activated. */ started_at?: string | null; /** * Timestamp when the experiment was completed. */ ended_at?: string | null; /** * Creation timestamp (format is ISO 8601 standard in UTC). */ readonly created_at: string; /** * Latest update timestamp (format is ISO 8601 standard in UTC). */ updated_at: string; /** * IDs of stories assigned to this experiment */ story_ids: Array; /** * ID of the winning variant (set when experiment is completed with a winner). */ winning_variant_id?: number | null; }; type ExperimentAssignedMetric = { /** * ID of the linked metric definition. */ metric_definition_id: number; /** * Role of this metric in the experiment */ role: 'primary' | 'secondary' | 'guardrail'; /** * Numeric representation of the story's position in the folder. */ position: number; metric_definition?: ExperimentMetricDefinition; }; /** * Bar chart with variant comparison data */ type ExperimentBarChart = { /** * Chart type discriminator */ kind: 'bar'; /** * User's job title or role. */ title?: string | null; /** * Optional label for the x-axis */ xLabel?: string | null; /** * Optional label for the y-axis */ yLabel?: string | null; /** * Category labels (one per bar group) */ labels: Array; /** * Data series, one per dataset */ series: Array<{ /** * Series label */ label: string; /** * Numeric data points aligned with labels */ data: Array; }>; }; /** * Detailed experiment representation including variant configuration and metrics */ type ExperimentDetail = Experiment & { /** * Variants belonging to this experiment */ experiment_variants: Array; /** * Metrics assigned to this experiment */ experiment_assigned_metrics?: Array; }; /** * Line chart for time-series data */ type ExperimentLineChart = { /** * Chart type discriminator */ kind: 'line'; /** * User's job title or role. */ title?: string | null; /** * Optional label for the x-axis */ xLabel?: string | null; /** * Optional label for the y-axis */ yLabel?: string | null; /** * X-axis labels (e.g. dates) */ labels: Array; /** * Data series, one per variant or dataset */ series: Array<{ /** * Series label */ label: string; /** * Numeric data points aligned with labels */ data: Array; }>; }; type ExperimentMetricDefinition = { /** * Numeric ID of the metric definition. */ id: number; /** * Name of the metric definition. */ name: string; /** * Optional description of the metric */ description?: string | null; /** * Event name that this metric tracks. */ event_name: string; /** * Type of metric calculation. */ metric_type: 'proportion' | 'mean'; /** * Whether lower values are better (e.g., bounce rate). */ inverse: boolean; /** * Unit of measurement for mean metrics. */ unit?: string | null; /** * Creation timestamp (format is ISO 8601 standard in UTC). */ created_at: string; /** * Latest update timestamp (format is ISO 8601 standard in UTC). */ updated_at: string; }; type ExperimentResult = { /** * Numeric ID of the experiment result */ id: number; /** * ID of the experiment this result belongs to */ experiment_id: number; /** * Array of pre-computed chart snapshots. Each chart is one of: BarChart, LineChart, or TextChart. */ charts: Array; /** * Timestamp of the most recent push */ pushed_at: string; /** * Creation timestamp (format is ISO 8601 standard in UTC). */ created_at: string; /** * Latest update timestamp (format is ISO 8601 standard in UTC). */ updated_at: string; }; /** * Text-only block for insights or summary copy */ type ExperimentTextChart = { /** * Chart type discriminator */ kind: 'text'; /** * User's job title or role. */ title?: string | null; /** * Insight text content */ body: string; }; type ExperimentVariant = { /** * Numeric ID of the variant. */ id: number; /** * Internal name (lowercase, numbers, underscores). */ name: string; /** * Human-readable display name */ display_name: string; /** * Public identifier for the variant. */ public_id: string; /** * Traffic weight percentage (0-100). */ weight: number; /** * Whether this is the control variant. */ is_control: boolean; /** * Story-level variant mappings (original story to variant story). */ story_mappings: Array<{ experiment_variant_id?: number; original_story_id?: number; variant_story_id?: number; original_slug?: string | null; variant_slug?: string | null; /** * The variant story object */ variant_story?: { [key: string]: unknown; } | null; }>; }; type InternalTag = { /** * Unique ID */ id: number; /** * The name of the internal tag */ name: string; /** * The type of object this tag is associated with */ object_type: 'asset' | 'component' | 'idea'; /** * Count of assets associated with this tag (only present when with_assets_count parameter is used) */ assets_count?: number | null; }; type SharedAssetFolder = { id: number; name: string; /** * ID of parent space if this is a child space. */ parent_id: number | null; /** * Unique UUID identifier for the discussion. */ uuid: string; parent_uuid: string | null; description?: string | null; color?: string | null; regions?: Array<'eu' | 'ap' | 'ca' | 'us' | 'cn' | 'all'>; asset_folder_access?: Array<{ space_id?: number; access_level?: 'write' | 'read'; }>; }; type Space = { /** * The unique identifier of the space */ readonly id: number; /** * The name of the space. */ name: string; /** * External unique identifier */ euid?: string | null; /** * The region where the space is hosted */ region: string; /** * The ID of the space owner */ owner_id: number; /** * Latest update timestamp (format is ISO 8601 standard in UTC). */ updated_at: string; /** * Creation timestamp (format is ISO 8601 standard in UTC). */ readonly created_at: string; /** * The subscription plan name */ plan: string; /** * The plan level identifier */ plan_level: number; /** * Number of pending traffic boosts */ pending_traffic_boosts?: number | null; /** * Number of pending limit boosts */ pending_limit_boosts?: number | null; /** * Whether the space is on a trial plan */ trial: boolean; /** * Whether two-factor authentication is required */ requires_2fa: boolean; /** * The organization ID if space belongs to an organization */ org_id?: number | null; /** * The partner ID if space is associated with a partner */ partner_id?: number | null; /** * The subscription status */ subscription_status?: string | null; /** * Stripe trial status */ stripe_trial_status?: string | null; /** * Stripe trial end date */ stripe_trial_end?: string | null; /** * The type of space (e.g., personal, team) */ space_type?: string | null; /** * The timestamp when the space was canceled */ canceled_at?: string | null; /** * Whether the organization requires 2FA. */ org_requires_2fa: boolean; /** * The timestamp when the space became unpaid */ unpaid_at?: string | null; /** * The timestamp when the space was blocked */ blocked_at?: string | null; /** * Whether the space is in development mode */ development_mode: boolean; /** * Flags indicating which feature limits have been exceeded */ feature_limit_exceeded_flags: { [key: string]: boolean | null; }; /** * The status of the organization. */ org_status?: string | null; /** * Available roles in the space */ space_roles?: Array; /** * Whether the space is on a Joyride trial */ joyride_trial?: boolean; /** * When the Joyride trial expires */ joyride_trial_expires_at?: string | null; /** * When the Joyride trial started */ joyride_trial_started_at?: string | null; /** * Whether the Joyride trial traffic limit has been exceeded. */ joyride_traffic_limit_exceeded?: boolean; [key: string]: unknown | number | string | string | null | number | null | number | null | boolean | number | null | number | null | string | null | string | null | string | null | string | null | string | null | string | null | string | null | { [key: string]: boolean | null; } | string | null | Array | string | null | string | null | undefined; }; type SpaceDetail = { /** * The unique identifier of the space. */ id: number; /** * The name of the space. */ name: string; /** * The domain associated with the space */ domain?: string | null; /** * Unique domain for the space. */ uniq_domain?: string | null; /** * Unique subdomain for the space. */ uniq_subdomain?: string | null; /** * The subscription plan name */ plan: string; /** * The plan level identifier */ plan_level: number; /** * Plan limits and restrictions */ limits: { [key: string]: unknown; }; /** * Creation timestamp (format is ISO 8601 standard in UTC). */ created_at: string; /** * The current user's role in the space */ role: string; /** * The ID of the space owner */ owner_id?: number | null; /** * Webhook URL for story published events. */ story_published_hook?: string | null; /** * List of environments configured for the space. */ environments: Array<{ name?: string; location?: string; }>; /** * Number of stories in the space. */ stories_count: number; /** * Number of assets in the space */ assets_count: number; /** * ID of parent space if this is a child space. */ parent_id?: number | null; /** * Searchblok integration ID. */ searchblok_id?: string | null; /** * Whether the space can be duplicated. */ duplicatable?: boolean | null; /** * API requests made today. */ request_count_today: number; /** * Total API requests this month. */ api_requests: number; /** * Number of exceeded API requests. */ exceeded_requests: number; /** * Billing address information */ billing_address?: { company?: string; name?: string; email?: string; address_line1?: string; address_city?: string; address_zip?: string; address_country?: string; tax_number?: string; } | null; /** * Custom routes configuration. */ routes?: Array<{ pattern?: string; template?: string; }>; /** * External unique identifier */ euid?: string | null; /** * Whether the space is on a trial plan */ trial: boolean; /** * Default root component type */ default_root: string; /** * Whether Slack webhook is configured. */ has_slack_webhook: boolean; /** * First private API token. */ first_token: string; /** * Monthly traffic limit */ traffic_limit: number; /** * Whether AI text generation is disabled */ ai_text_generator_disabled: boolean; /** * Whether AI text generation feature is disabled */ ai_text_generator_feature_disabled: boolean; /** * AI tokens used this month. */ monthly_ai_tokens_traffic: number; /** * Monthly AI tokens limit. */ monthly_ai_tokens_traffic_limit: number; /** * Monthly AI credits limit. */ monthly_ai_credits_traffic?: number; /** * Whether there are pending background tasks. */ has_pending_tasks: boolean; /** * Various space options and settings */ options: { [key: string]: unknown; }; /** * Whether assistance mode is enabled. */ assistance_mode: boolean; /** * Whether the onboarding tour is disabled. */ onboarding_tour_disabled?: boolean; /** * Web crawling configuration */ crawl_config?: { base_url?: string; enabled?: boolean; } | null; /** * Space owner information */ owner?: { id?: number; userid?: string; real_email?: string; friendly_name?: string; avatar?: string | null; disabled?: boolean; } | null; /** * Organization information if space belongs to an org */ org?: { name?: string; ai_text_generator_disabled_in_org?: boolean; custom_upload_limit_in_mb?: number | null; } | null; /** * Default AI translation language code; en when unset. */ default_ai_lang_code?: string; /** * Configured languages for internationalization. */ languages: Array<{ code?: string; name?: string; ai_translation_code?: string | null; }>; /** * Space settings from associated settings records */ settings?: Array<{ [key: string]: unknown; }>; /** * Available roles in the space */ space_roles: Array; /** * Space collaborators. */ collaborators: Array; /** * The region where the space is hosted */ region: string; /** * Number of pending traffic boosts */ pending_traffic_boosts?: number | null; /** * Number of pending limit boosts */ pending_limit_boosts?: number | null; /** * The subscription status */ subscription_status?: string | null; /** * Flags indicating which feature limits have been exceeded */ feature_limit_exceeded_flags: { [key: string]: boolean | null; }; /** * Dimensions app folder IDs. */ dimensions_app_folder_ids?: Array | null; /** * Dimension app folder configurations with full metadata. */ dimensions_app_folders?: Array<{ /** * The ID of the linked folder */ folder_id: number; /** * The AI translation code for this folder */ ai_translation_code: string | null; }> | null; /** * Whether AI translation is enabled for the dimensions app. */ enable_dimensions_app_ai_translation?: boolean | null; /** * Whether the space is on a Joyride trial */ joyride_trial?: boolean; /** * When the Joyride trial expires */ joyride_trial_expires_at?: string | null; /** * When the Joyride trial started */ joyride_trial_started_at?: string | null; /** * Whether the space is allowed to use custom AI styles */ allow_space_ai_styles?: boolean | null; /** * AWS IAM role ARN for custom S3 asset storage access. */ asset_aws_role?: string | null; /** * Custom CDN URL for serving assets. */ asset_cdn?: string | null; /** * Schema definition for custom asset metadata fields. */ asset_custom_meta_data_schema?: Array<{ [key: string]: unknown; }> | { [key: string]: unknown; } | null; /** * AWS region for the asset S3 bucket. */ asset_region?: string | null; /** * CloudFront signed cookies for private asset access. */ asset_signature?: { [key: string]: unknown; } | null; /** * Days after which old story versions are automatically deleted. */ auto_delete_old_versions_after_days?: number | null; /** * AWS ARN for custom S3 asset bucket integration. */ aws_arn?: string | null; /** * Scheduled backup frequency (daily or weekly). */ backup_frequency?: string | null; /** * Time of day for scheduled backups. */ backup_time?: string | null; /** * Day of the week for weekly scheduled backups. */ backup_week_day?: string | null; /** * Backend version identifier for the space. */ be_version?: string | null; /** * Whether the space is blocked from usage. */ blocked?: boolean | null; /** * Timestamp when the space was blocked */ blocked_at?: string | null; /** * Reference identifier for the blueprint this space was created from */ blueprint_reference?: string | null; /** * Webhook URL called when a branch is deployed. */ branch_deployed_hook?: string | null; /** * Timestamp when the subscription was canceled */ canceled_at?: string | null; /** * Cloudinary API key for image transformation integration. */ cloudinary_api_key?: string | null; /** * Cloudinary cloud name for image transformation integration. */ cloudinary_cloud_name?: string | null; /** * Custom S3 bucket name for asset storage. */ custom_s3_asset_bucket?: string | null; /** * Custom maximum file upload size in megabytes */ custom_upload_limit_in_mb?: number | null; /** * External unique identifier (euid) for the space customer. */ customer_id?: string | null; /** * Webhook URL called when a datasource entry is saved. */ datasource_entry_saved_hook?: string | null; /** * Display name for the default language of the space. */ default_lang_name?: string | null; /** * Whether the space is in development mode */ development_mode?: boolean | null; /** * IDs of disclaimers accepted for this space */ disclaimer_ids?: Array; /** * ID of the space this space was duplicated from. */ duplicated_from?: number | null; /** * Whether extended character sets are allowed in story slugs. */ enable_extended_char_set_in_stories_slug?: boolean | null; /** * Whether preview URLs should be encoded. */ encode_preview_urls?: boolean | null; /** * Feature limits and their current values for the space */ feature_limits?: Array<{ [key: string]: unknown; }> | null; /** * Whether hosted backup is enabled. */ hosted_backup?: boolean | null; /** * Whether the space inherits AI configuration from its organization. */ inherit_org_ai_configuration?: boolean | null; /** * Whether the space is a demo space. */ is_demo?: boolean; /** * Maintenance mode status for the space. */ maintenance?: string | null; /** * Viewport width in pixels for mobile preview in the visual editor. */ mobile_size?: string | null; /** * Whether the space is on a no-credit-card community plan. */ no_cc_community?: boolean; /** * Current onboarding step for the space. */ onboarding_step?: string | null; /** * ID of the partner organization associated with the space */ partner_id?: number | null; /** * Personal S3 bucket name for asset storage. */ personal_s3_asset_bucket?: string | null; /** * Whether assets are served privately via signed URLs. */ private_assets?: boolean | null; /** * Token used for private asset image service authentication. */ private_assets_token?: string | null; /** * Whether resolved links default to their published version. */ published_is_links_default?: boolean | null; /** * Webhook URL called when a release is merged. */ release_merged_hook?: string | null; /** * URL of the connected source code repository */ repository_url?: string | null; /** * Required asset metadata fields. */ required_assest_fields?: Array | string | null; /** * Whether revenue sharing is enabled. */ rev_share_enabled?: boolean | null; /** * S3 bucket identifier for asset storage. */ s3_bucket?: string | null; /** * Configuration for showing alternative story versions. */ show_stories_alternative_versions?: boolean | string | null; /** * Billing interval for the space subscription. */ space_subscription_interval?: string | null; /** * Type classification of the space */ space_type?: string | null; /** * Webhook URL called when a workflow stage changes. */ stage_changed_hook?: string | null; /** * Webhook URL called when a story is saved. */ story_saved_hook?: string | null; /** * ISO 8601 timestamp when the trial period ends */ stripe_trial_end?: string | null; /** * Status of the Stripe trial */ stripe_trial_status?: string | null; /** * Whether strong authentication (2FA) is required */ strong_auth?: boolean | null; /** * Viewport width in pixels for tablet preview in the visual editor. */ tablet_size?: string | null; /** * Whether usage statistics tracking is enabled */ track_statistics?: boolean | string | null; /** * Configuration for which asset fields are translatable. */ translatable_asset_fields?: Array | string | null; /** * Whether the space UI is blocked for the user. */ ui_blocked?: boolean | null; /** * Timestamp when the space subscription became unpaid */ unpaid_at?: string | null; /** * Whether translated stories feature is enabled. */ use_translated_stories?: boolean | null; /** * Whether the space is verified as trusted. */ verified?: boolean | null; /** * Whether the visual editor is disabled (0 or 1 as string). */ visual_mode_disable?: string | null; /** * Secret token included in webhook requests for verification. */ webhook_token?: string | null; /** * Maximum yearly AI credits allowed, inherited from organization */ yearly_ai_credits_limit?: number | null; /** * Number of yearly AI credits consumed, inherited from organization */ yearly_ai_credits_used?: number | null; [key: string]: unknown | number | string | string | null | string | null | string | null | { [key: string]: unknown; } | number | null | string | null | Array<{ name?: string; location?: string; }> | number | null | string | null | boolean | null | { company?: string; name?: string; email?: string; address_line1?: string; address_city?: string; address_zip?: string; address_country?: string; tax_number?: string; } | null | Array<{ pattern?: string; template?: string; }> | string | null | boolean | { [key: string]: unknown; } | { base_url?: string; enabled?: boolean; } | null | { id?: number; userid?: string; real_email?: string; friendly_name?: string; avatar?: string | null; disabled?: boolean; } | null | { name?: string; ai_text_generator_disabled_in_org?: boolean; custom_upload_limit_in_mb?: number | null; } | null | Array<{ code?: string; name?: string; ai_translation_code?: string | null; }> | Array<{ [key: string]: unknown; }> | Array | Array | number | null | number | null | string | null | { [key: string]: boolean | null; } | Array | null | Array<{ /** * The ID of the linked folder */ folder_id: number; /** * The AI translation code for this folder */ ai_translation_code: string | null; }> | null | boolean | null | string | null | string | null | boolean | null | string | null | string | null | Array<{ [key: string]: unknown; }> | { [key: string]: unknown; } | null | string | null | { [key: string]: unknown; } | null | number | null | string | null | string | null | string | null | string | null | string | null | boolean | null | string | null | string | null | string | null | string | null | string | null | string | null | string | null | number | null | string | null | string | null | string | null | boolean | null | Array | number | null | boolean | null | boolean | null | Array<{ [key: string]: unknown; }> | null | boolean | null | boolean | null | string | null | string | null | string | null | number | null | string | null | boolean | null | string | null | boolean | null | string | null | string | null | Array | string | null | boolean | null | string | null | boolean | string | null | string | null | string | null | string | null | string | null | string | null | string | null | boolean | null | string | null | boolean | string | null | Array | string | null | boolean | null | string | null | boolean | null | boolean | null | string | null | string | null | number | null | number | null | undefined; }; /** * Custom role definition controlling permissions within a space */ type SpaceRole = { /** * The unique identifier of the space role. */ id: number; /** * The role name */ role: string; /** * Optional subtitle for the role. */ subtitle?: string | null; /** * External ID for integrations */ ext_id?: string | null; /** * List of permissions */ permissions: Array; /** * Allowed content paths. */ allowed_paths: Array; /** * Resolved allowed paths with slugs. */ resolved_allowed_paths: Array; /** * Blocked content paths. */ blocked_paths: Array; /** * Resolved blocked paths with slugs. */ resolved_blocked_paths: Array | null; /** * Field-level permissions */ field_permissions: Array; /** * Allowed field permissions. */ allowed_field_permissions: Array; /** * Read-only field permissions. */ readonly_field_permissions: Array; /** * Allowed datasource IDs. */ datasource_ids: Array; /** * Blocked datasource IDs. */ blocked_datasource_ids: Array; /** * Blocked component IDs for usage. */ component_ids: Array; /** * Allowed component IDs for usage. */ allowed_component_ids: Array; /** * Managed component IDs. */ managed_component_ids: Array; /** * Blocked manage component IDs. */ blocked_manage_component_ids: Array; /** * Managed component group UUIDs. */ managed_component_group_uuids: Array; /** * Blocked manage component group UUIDs. */ blocked_manage_component_group_uuids: Array; /** * Allowed component group UUIDs for usage. */ component_group_uuids: Array; /** * Blocked component group UUIDs for usage. */ blocked_component_group_uuids: Array; /** * Allowed branch IDs. */ branch_ids: Array; /** * Blocked branch IDs. */ blocked_branch_ids: Array; /** * Allowed language codes. */ allowed_languages: Array; /** * Blocked language codes. */ blocked_languages: Array; /** * Allowed asset folder IDs. */ asset_folder_ids: Array; /** * Blocked asset folder IDs. */ blocked_asset_folder_ids: Array; }; type Stories = { name: string; /** * ID of parent space if this is a child space. */ parent_id: number; /** * Creation timestamp (format is ISO 8601 standard in UTC). */ created_at: string; deleted_at: string | null; group_id: string; sort_by_date: string | null; /** * Latest update timestamp (format is ISO 8601 standard in UTC). */ updated_at: string; /** * Latest publication timestamp (format is ISO 8601 standard in UTC). */ published_at: string | null; id: number; /** * Unique UUID identifier for the discussion. */ uuid: string; /** * true if the instance constitutes a folder. */ is_folder: boolean; published: boolean; /** * URL-friendly identifier for the app category. */ slug: string; path: string | null; full_slug: string; /** * Numeric representation of the story's position in the folder. */ position: number; unpublished_changes: boolean | null; /** * true if the story is defined as the startpage for its parent folder. */ is_startpage: boolean; pinned: boolean; publish_at: string | null; expire_at: string | null; first_published_at: string | null; /** * List of release IDs this story belongs to */ release_ids: Array; /** * Current version ID, current version in release or main */ current_version_id: number | null; /** * Base version ID(common ancestor) for the story, used for three-way merge operations) */ base_version_id?: number | null; /** * Main version ID, current version in main */ main_version_id?: number | null; /** * Workflow stage information for the story */ stage: Stage | null; /** * Alternate language variants. */ alternates: Array; /** * The default root */ default_root: string | null; disble_fe_editor: boolean; disable_fe_editor: boolean; last_author: { userid: string; friendly_name: string; avatar: string; } | null; last_author_id: number | null; /** * Summary of story content. Returns {} when with_summary param is not set. */ content_summary: { [key: string]: unknown; } | null; /** * The content type. */ content_type: string; tag_list: Array; can_not_view: boolean | null; /** * List of translated versions of this story (only included when with_translated_stories=1) */ translated_stories?: Array; /** * List of user IDs who have marked this story as favorite */ favourite_for_user_ids: Array; scheduled_dates: string | null; }; type Story = { name: string; /** * ID of parent space if this is a child space. */ parent_id: number | null; group_id: string; alternates: Array; /** * Creation timestamp (format is ISO 8601 standard in UTC). */ readonly created_at: string; deleted_at: string | null; sort_by_date: string | null; tag_list: Array; /** * Latest update timestamp (format is ISO 8601 standard in UTC). */ updated_at: string; /** * Latest publication timestamp (format is ISO 8601 standard in UTC). */ published_at: string | null; readonly id: number; /** * Unique UUID identifier for the discussion. */ readonly uuid: string; /** * true if the instance constitutes a folder. */ is_folder: boolean; /** * Dynamic component data rendered by Storyblok, structure varies by component */ content: { _uid?: string; component?: string; [key: string]: unknown | string | undefined; }; published: boolean | null; /** * URL-friendly identifier for the app category. */ slug: string; path: string | null; full_slug: string; /** * The default root */ default_root: string | null; disble_fe_editor: boolean; disable_fe_editor: boolean; /** * Parent story object (for nested stories). */ parent: { id?: number; uuid?: string; name?: string; slug?: string; disble_fe_editor?: boolean; } | null; /** * true if the story is defined as the startpage for its parent folder. */ is_startpage: boolean; unpublished_changes: boolean | null; /** * Custom metadata for the story */ meta_data: { [key: string]: unknown; } | null; /** * Base version ID(common ancestor) for the story, used for three-way merge operations) */ base_version_id?: number | null; /** * Main version ID, current version in main */ main_version_id?: number | null; /** * Current version ID, current version in release or main */ current_version_id?: number | null; imported_at: string | null; /** * Preview token for the story. */ preview_token: { token: string; timestamp: string; }; pinned: boolean; /** * List of breadcrumbs for the story. */ breadcrumbs: Array; publish_at: string | null; expire_at: string | null; first_published_at: string | null; last_author: { id?: number; userid: string; friendly_name: string; avatar?: string; } | null; last_author_id: number | null; /** * List of user IDs this story belongs to (read-only, set automatically via workflow or workflow stage changes) */ user_ids: Array; /** * Space role IDs (read-only, set automatically via workflow or workflow stage changes) */ space_role_ids: Array; /** * List of translated slugs for the story */ translated_slugs: Array; /** * List of translated versions of this story */ translated_stories: Array<{ /** * First published time for this translation */ first_published_at: string; /** * published time */ published_at: string; /** * Language code for this translation */ lang: string; /** * Whether this translation has unpublished changes */ unpublished_changes: boolean; }>; /** * List of localized paths for the story. */ localized_paths: Array; /** * Numeric representation of the story's position in the folder. */ position: number; can_not_view: boolean | null; is_scheduled: boolean | null; scheduled_dates: string | null; /** * List of ideas associated with this story. */ ideas: Array<{ /** * Idea ID */ id: string; /** * Idea name */ name: string; /** * Author ID */ author_id: number; /** * Whether idea is private */ is_private: boolean; }>; /** * Workflow stage information (only included when show_stage is true) */ stage?: Stage | null; /** * List of user IDs */ favourite_for_user_ids: Array; /** * Variant type (null for regular stories, 'experiment' for A/B test variants). */ variant_type?: string | null; /** * IDs of experiments this story participates in (only included on show, not index). */ experiment_ids?: Array; }; type TranslatedSlug = { /** * id */ id: number; /** * The name for this translated slug */ name: string | null; /** * URL-friendly identifier for the app category. */ slug: string; /** * The language code for this translation. */ lang: string; published: boolean | null; }; type TranslatedStory = { /** * The language code for this translation. */ lang: string; /** * Latest publication timestamp (format is ISO 8601 standard in UTC). */ published_at: string | null; /** * first published date */ first_published_at: string | null; /** * Whether this translation has unpublished changes */ unpublished_changes: boolean | null; }; type User = { userid: string; email: string; organization?: string | null; /** * Username */ username?: string | null; use_username: boolean; alt_email?: string | null; firstname?: string | null; lastname?: string | null; phone?: string | null; readonly id: number; login_strategy: 'otp_email' | 'otp_sms' | 'password' | 'twilio_totp'; /** * Creation timestamp (format is ISO 8601 standard in UTC). */ readonly created_at: string; /** * User's role in the organization. Null if user has no org. */ org_role?: 'admin' | 'owner' | 'member' | null; has_org: boolean; has_partner: boolean; /** * Delegated from partner association. Null if user has no partner. */ partner_status?: string | null; /** * Organization details. Returns empty object {} when user has no organization. */ org: { id?: number; /** * Organization settings stored as JSONB. Contains keys like track_statistics, strong_auth, sso_servers_webhook, etc. */ settings?: { [key: string]: unknown; }; name?: string; status?: 'active' | 'disabled' | 'deactivated'; }; timezone?: string | null; avatar?: string | null; /** * Display name derived from firstname/lastname or email */ friendly_name: string; notified: Array; /** * The language code for this translation. */ lang?: string | null; partner_role?: string | null; favourite_spaces: Array; /** * Array of idea UUIDs marked as favourite. */ favourite_ideas: Array; /** * User's system role */ role?: 'admin' | 'normal' | 'banned' | 'sso' | 'superuser' | 'devops' | 'marketer' | null; /** * Always returns true. */ beta_user: boolean; /** * Defaults to true if not set */ track_statistics: boolean; /** * User UI theme preferences. Defaults to {"theme": "default"} if not set. */ ui_theme: { [key: string]: unknown; }; is_editor?: boolean | null; /** * Whether the user authenticates via SSO. */ sso?: boolean | null; job_role?: string | null; job_title?: string | null; /** * Whether user has verified TOTP 2FA. */ totp_factor_verified: boolean; /** * Available 2FA methods for this user. Always includes otp_email; otp_sms if phone set; twilio_totp if TOTP configured. */ configured_2fa_options: Array<'otp_email' | 'otp_sms' | 'twilio_totp'>; disclaimer_ids: Array; company_name?: string | null; live_chat_enabled: boolean; /** * True if user confirmed email or uses SSO */ confirmed: boolean; }; type Version = { id: number; event: string; /** * Creation timestamp (format is ISO 8601 standard in UTC). */ created_at: string; author_id: number | null; author?: string; item_id: number; is_draft: boolean; }; type Asset = { /** * Alt text for the asset (default language). */ alt: string | null; /** * Id of the folder containing this asset. */ asset_folder_id: number | null; /** * The content length in bytes. */ content_length: number | null; /** * The content type. */ content_type: string | null; /** * Copyright text. */ copyright: string | null; /** * Creation timestamp (format is ISO 8601 standard in UTC). */ readonly created_at: string | null; /** * Latest update timestamp (format is ISO 8601 standard in UTC). */ readonly updated_at: string | null; expire_at: string | null; /** * Full path of the asset, including the file name. */ filename: string; /** * Focus point. */ focus: string | null; /** * Defines if the asset should be inaccessible to the public. */ is_private: boolean; /** * The signed URL for the asset. */ signed_url?: string | null; /** * User's job title or role. */ title: string | null; [key: string]: unknown | string | null | number | null | number | null | string | null | string | null | string | null | string | null | string | null | string | string | null | boolean | string | null | string | null | undefined; }; type ListAssetFoldersData = { body?: never; path: { /** * ID */ space_id: number; }; query?: { /** * Search term */ search?: string; /** * Filter by parent ID. */ with_parent?: string; /** * Retrieve specific stories by providing their UUIDs as a comma-separated string. */ by_uuids?: string; /** * Filter by comma-separated IDs. */ by_ids?: string; }; url: '/v1/spaces/{space_id}/asset_folders'; }; type CreateAssetFolderData = { body: { asset_folder: { name: string; parent_id?: number | null; }; }; path: { /** * ID */ space_id: number; }; query?: never; url: '/v1/spaces/{space_id}/asset_folders'; }; type DeleteAssetFolderData = { body?: never; path: { /** * ID */ space_id: number; /** * Asset Folder ID */ id: number; }; query?: { /** * Delete recursively. */ recursive?: boolean; }; url: '/v1/spaces/{space_id}/asset_folders/{id}'; }; type UpdateAssetFolderData = { body: { asset_folder: { name?: string; parent_id?: number | null; }; }; path: { /** * ID */ space_id: number; /** * Asset Folder ID */ id: number; }; query?: never; url: '/v1/spaces/{space_id}/asset_folders/{id}'; }; type ListAssetsData = { body?: never; path: { /** * ID */ space_id: number; }; query?: { /** * Provide the numeric id of a folder to filter the assets by a specific folder. */ in_folder?: number; /** * Sort stories in ascending or descending order by a specific property. Possible properties are all default story properties and any custom fields defined in the schema of the story type. * Default story properties can be used like this: * - `sort_by=created_at:desc` * - `sort_by=slug:asc` * * Custom fields can be used like this: * - `sort_by=content.meta_description:asc` * - `sort_by=content.event_title:desc` * * By default, all custom fields are sorted as strings. To sort custom fields with numeric values, it needs to be specified whether they should be treated as float or integer. Examples: * - `sort_by=content.price:asc:float` * - `sort_by=content.event_number:asc:int` * * Different sorts can be chained using commas like this: * - `sort_by=name:desc,slug:asc` * * There is also a possibility to sort values keeping the null (or empty) ones first or last: * - `sort_by=path:desc:nulls_first` * - `sort_by=path:desc:nulls_last` * * `nulls_last` is the default behavior. */ sort_by?: string; /** * If true it only displays private assets. */ is_private?: boolean; /** * Search term */ search?: string; /** * Filter by the alt text of an asset. */ by_alt?: string; /** * Filter by the copyright of an asset. */ by_copyright?: string; /** * Filter by the title of an asset. */ by_title?: string; /** * Filter by ext_id of an asset. */ ext_id?: string; /** * Filter by specific tag(s). Multiple tags can be provided as a comma-separated string (treated like an OR operator). */ with_tags?: string; /** * Filter activities created on or after this date (inclusive). */ created_at_gte?: string; /** * Filter activities created on or before this date (inclusive). */ created_at_lte?: string; /** * Filter records updated at or after the specified date. Supports ISO 8601 (e.g. 2025-07-16T08:00:00Z) and yyyy-MM-dd HH:mm formats. */ updated_at_gte?: string; /** * Filter records updated at or before the specified date. Supports ISO 8601 (e.g. 2025-07-16T08:00:00Z) and yyyy-MM-dd HH:mm formats. */ updated_at_lte?: string; /** * Filter by >= expire date. */ expire_at_gte?: string; /** * Filter by < expired date. */ expire_at_lte?: string; /** * Number of items per page. */ per_page?: number; /** * The paginated page number. */ page?: number; }; url: '/v1/spaces/{space_id}/assets'; }; type ListAssetsResponses = { /** * Assets returned. */ 200: { assets: Array; }; }; type CreateAssetData = { body?: never; path: { /** * ID */ space_id: number; }; query: { /** * Full path of the asset, including the file name. */ filename: string; /** * Filter by ext_id of an asset. */ ext_id?: string; /** * Alt text. */ alt?: string; /** * Copyright information. */ copyright?: string; /** * Title or caption. */ title?: string; /** * Source of the asset. */ source?: string; /** * Expiration date. */ expire_at?: string; /** * internal_tag_ids. */ internal_tag_ids?: Array; /** * Focal point. */ focus?: string; /** * If true it only displays private assets. */ is_private?: boolean; /** * Publish date. */ publish_at?: string; /** * meta_data. */ meta_data?: { [key: string]: unknown; }; /** * Target asset folder ID. */ asset_folder_id?: number; /** * Validate Upload. */ validate_upload?: boolean; /** * Size of the asset. */ size?: string; }; url: '/v1/spaces/{space_id}/assets'; }; type UpdateAssetData = { body: AssetUpdateRequest; path: { /** * Numeric ID of the space to include in the token payload. */ space_id: number; /** * Asset ID. */ id: number; }; query?: never; url: '/v1/spaces/{space_id}/assets/{id}'; }; type BulkDestroyAssetsData = { body: { /** * Array of asset IDs to delete (maximum 100) */ ids: Array; }; path: { /** * Numeric ID of a space */ space_id: number; }; query?: never; url: '/v1/spaces/{space_id}/assets/bulk_destroy'; }; type BulkRestoreAssetsData = { body: { /** * Array of deleted asset IDs to restore (maximum 100) */ ids: Array; }; path: { /** * Numeric ID of a space */ space_id: number; }; query?: never; url: '/v1/spaces/{space_id}/assets/bulk_restore'; }; type BulkUpdateAssetsData = { body: { /** * Array of asset IDs to move (maximum 100) */ ids: Array; asset: { /** * ID of the target asset folder */ asset_folder_id: number; }; }; path: { /** * Numeric ID of a space */ space_id: number; }; query?: never; url: '/v1/spaces/{space_id}/assets/bulk_update'; }; type ConvertAssetToSharedAssetData = { body?: never; path: { /** * Numeric ID of a space */ space_id: number; /** * Asset ID */ id: number; }; query: { /** * ID of the shared asset folder to move the asset into. */ target_asset_folder_id: number; }; url: '/v1/spaces/{space_id}/assets/{id}/convert'; }; type ListComponentGroupsData = { body?: never; path: { /** * Space ID */ space_id: number; }; query?: { /** * Search term */ search?: string; /** * Filter by parent ID. */ with_parent?: number; }; url: '/v1/spaces/{space_id}/component_groups'; }; type CreateComponentGroupData = { body: ComponentGroupRequest; path: { /** * Space ID */ space_id: number; }; query?: never; url: '/v1/spaces/{space_id}/component_groups'; }; type UpdateComponentGroupData = { body: ComponentGroupRequest; path: { /** * Space ID */ space_id: number; /** * Component Group ID */ id: number; }; query?: never; url: '/v1/spaces/{space_id}/component_groups/{id}'; }; type GetComponentVersionData = { body?: never; path: { /** * Space ID */ space_id: number; /** * Component ID */ component_id: number; /** * Component version ID */ id: number; }; query?: never; url: '/v1/spaces/{space_id}/components/{component_id}/component_versions/{id}'; }; type GetComponentVersionResponses = { /** * Component version found. */ 200: { component_version: ComponentVersion; }; }; type ListManagementComponentsData = { body?: never; path: { /** * ID */ space_id: number; }; query?: { /** * Filter components by component group UUID. */ in_group?: string; /** * Filter components by root component status. */ is_root?: boolean; /** * Search term */ search?: string; /** * Filter by comma-separated IDs. */ by_ids?: string; /** * Filter by specific tag(s). Multiple tags can be provided as a comma-separated string (treated like an OR operator). */ with_tags?: string; /** * Filter components by metadata app slug. */ by_metadata_app_slug?: string; /** * Filter components by metadata frame ID. */ by_metadata_frame_id?: string; /** * Sort stories in ascending or descending order by a specific property. Possible properties are all default story properties and any custom fields defined in the schema of the story type. * Default story properties can be used like this: * - `sort_by=created_at:desc` * - `sort_by=slug:asc` * * Custom fields can be used like this: * - `sort_by=content.meta_description:asc` * - `sort_by=content.event_title:desc` * * By default, all custom fields are sorted as strings. To sort custom fields with numeric values, it needs to be specified whether they should be treated as float or integer. Examples: * - `sort_by=content.price:asc:float` * - `sort_by=content.event_number:asc:int` * * Different sorts can be chained using commas like this: * - `sort_by=name:desc,slug:asc` * * There is also a possibility to sort values keeping the null (or empty) ones first or last: * - `sort_by=path:desc:nulls_first` * - `sort_by=path:desc:nulls_last` * * `nulls_last` is the default behavior. */ sort_by?: string; }; url: '/v1/spaces/{space_id}/components'; }; type ListManagementComponentsResponses = { /** * Components returned. */ 200: { /** * Array of components */ components: Array; /** * Array of component groups */ component_groups: Array<{ id: number; name: string; uuid: string; parent_id: number | null; parent_uuid: string | null; }>; }; }; type CreateComponentData = { body: ComponentCreateRequest; path: { /** * ID */ space_id: number; }; query?: never; url: '/v1/spaces/{space_id}/components'; }; type CreateComponentResponses = { /** * Component Created */ 201: { component: Component; }; }; type DeleteComponentResponses = { /** * Component Deleted. */ 200: { component: Component; }; }; type GetComponentResponses = { /** * Component found. */ 200: { component: Component; }; }; type UpdateComponentData = { body: ComponentUpdateRequest; path: { /** * ID */ space_id: number; /** * ID */ id: string; }; query?: { /** * If true, rename component references in existing stories. */ update_content?: boolean; }; url: '/v1/spaces/{space_id}/components/{id}'; }; type UpdateComponentResponses = { /** * Component Updated. */ 200: { component: Component; }; }; type RestoreComponentResponses = { /** * Component Restored. */ 200: { component: Component; }; }; type ListDatasourceEntriesData = { body?: never; path: { /** * Numeric ID of the space */ space_id: number; }; query?: { /** * Search term */ search?: string; /** * Filter entries by datasource ID. */ datasource_id?: number; /** * Filter entries by datasource slug. */ datasource_slug?: string; /** * Include dimension values for the specified dimension ID. */ dimension?: number; /** * Return entries as CSV format. */ as_csv?: boolean; /** * The paginated page number. */ page?: number; /** * Number of items per page. */ per_page?: number; }; url: '/v1/spaces/{space_id}/datasource_entries'; }; type CreateDatasourceEntryData = { body: CreateDatasourceEntryRequest; path: { /** * Numeric ID of the space */ space_id: number; }; query?: never; url: '/v1/spaces/{space_id}/datasource_entries'; }; type PartialUpdateDatasourceEntryData = { body: UpdateDatasourceEntryRequest; path: { /** * Numeric ID of the space */ space_id: number; /** * Numeric ID of the datasource entry */ id: number; }; query?: never; url: '/v1/spaces/{space_id}/datasource_entries/{id}'; }; type ReplaceDatasourceEntryData = { body: UpdateDatasourceEntryRequest; path: { /** * Numeric ID of the space */ space_id: number; /** * Numeric ID of the datasource entry */ id: number; }; query?: never; url: '/v1/spaces/{space_id}/datasource_entries/{id}'; }; type ListDatasourcesData = { body?: never; path: { /** * Numeric ID of the space */ space_id: number; }; query?: { /** * Search term */ search?: string; /** * Filter by comma-separated IDs. */ by_ids?: string; /** * Sort stories in ascending or descending order by a specific property. Possible properties are all default story properties and any custom fields defined in the schema of the story type. * Default story properties can be used like this: * - `sort_by=created_at:desc` * - `sort_by=slug:asc` * * Custom fields can be used like this: * - `sort_by=content.meta_description:asc` * - `sort_by=content.event_title:desc` * * By default, all custom fields are sorted as strings. To sort custom fields with numeric values, it needs to be specified whether they should be treated as float or integer. Examples: * - `sort_by=content.price:asc:float` * - `sort_by=content.event_number:asc:int` * * Different sorts can be chained using commas like this: * - `sort_by=name:desc,slug:asc` * * There is also a possibility to sort values keeping the null (or empty) ones first or last: * - `sort_by=path:desc:nulls_first` * - `sort_by=path:desc:nulls_last` * * `nulls_last` is the default behavior. */ sort_by?: 'name:asc' | 'name:desc' | 'created_at:asc' | 'created_at:desc' | 'updated_at:asc' | 'updated_at:desc'; /** * The paginated page number. */ page?: number; /** * Number of items per page. */ per_page?: number; }; url: '/v1/spaces/{space_id}/datasources'; }; type CreateDatasourceData = { body: CreateDatasourceRequest; path: { /** * Numeric ID of the space */ space_id: number; }; query?: never; url: '/v1/spaces/{space_id}/datasources'; }; type PartialUpdateDatasourceData = { body: UpdateDatasourceRequest; path: { /** * Numeric ID of the space */ space_id: number; /** * Numeric ID or slug of the datasource */ id: string; }; query?: never; url: '/v1/spaces/{space_id}/datasources/{id}'; }; type ReplaceDatasourceData = { body: UpdateDatasourceRequest; path: { /** * Numeric ID of the space */ space_id: number; /** * Numeric ID or slug of the datasource */ id: string; }; query?: never; url: '/v1/spaces/{space_id}/datasources/{id}'; }; type GetExperimentResultsResponses = { /** * Results retrieved successfully */ 200: { experiment_result: ExperimentResult; }; /** * No results have been pushed yet */ 204: void; }; type PushExperimentResultsData = { body: PushExperimentResultsRequest; path: { /** * Numeric ID of the space */ space_id: number; /** * Numeric ID of the experiment */ experiment_id: number; }; query?: never; url: '/v1/spaces/{space_id}/experiments/{experiment_id}/results'; }; type PushExperimentResultsResponses = { /** * Results pushed successfully */ 200: { experiment_result: ExperimentResult; }; }; type CreateExperimentStoryData = { body: CreateExperimentStoryRequest; path: { /** * Numeric ID of the space */ space_id: number; /** * Numeric ID of the experiment */ experiment_id: number; }; query?: never; url: '/v1/spaces/{space_id}/experiments/{experiment_id}/stories'; }; type CreateExperimentStoryResponses = { /** * Story linked to experiment successfully */ 201: { experiment: ExperimentDetail; }; }; type DeleteExperimentStoryResponses = { /** * Story unlinked from experiment successfully */ 204: void; }; type CreateStoryMappingData = { body: { story_mapping: { /** * ID of the story to duplicate as a variant */ original_story_id: number; /** * ID of an existing story to link as variant (skip duplication) */ variant_story_id?: number | null; }; }; path: { /** * Numeric ID of the space */ space_id: number; /** * Numeric ID of the experiment */ experiment_id: number; /** * Numeric ID of the experiment variant */ variant_id: number; }; query?: never; url: '/v1/spaces/{space_id}/experiments/{experiment_id}/variants/{variant_id}/story_mappings'; }; type CreateStoryMappingResponses = { /** * Story mapping created successfully */ 201: { story_mapping: { experiment_variant_id?: number; original_story_id?: number; variant_story_id?: number; original_slug?: string | null; variant_slug?: string | null; variant_story?: { [key: string]: unknown; } | null; }; }; }; type DeleteStoryMappingResponses = { /** * Story mapping deleted successfully */ 204: void; }; type ListExperimentsData = { body?: never; path: { /** * Numeric ID of the space */ space_id: number; }; query?: { /** * Filter story schedulings by status. */ by_status?: 'draft' | 'running' | 'paused' | 'completed'; /** * The paginated page number. */ page?: number; /** * Number of items per page. */ per_page?: number; }; url: '/v1/spaces/{space_id}/experiments'; }; type ListExperimentsResponses = { /** * Experiments retrieved successfully. */ 200: { experiments: Array; }; }; type CreateExperimentData = { body: CreateExperimentRequest; path: { /** * Numeric ID of the space */ space_id: number; }; query?: never; url: '/v1/spaces/{space_id}/experiments'; }; type CreateExperimentResponses = { /** * Experiment created successfully */ 201: { experiment: ExperimentDetail; }; }; type DeleteExperimentResponses = { /** * Experiment deleted successfully */ 204: void; }; type GetExperimentResponses = { /** * Experiment retrieved successfully. */ 200: { experiment: ExperimentDetail; }; }; type UpdateExperimentData = { body: UpdateExperimentRequest; path: { /** * Numeric ID of the space */ space_id: number; /** * Numeric ID of the experiment */ id: number; }; query?: never; url: '/v1/spaces/{space_id}/experiments/{id}'; }; type UpdateExperimentResponses = { /** * Experiment updated successfully. */ 200: { experiment: ExperimentDetail; }; }; type ActivateExperimentData = { body?: never; path: { /** * Numeric ID of the space */ space_id: number; /** * Numeric ID of the experiment */ id: number; }; query?: { /** * Optional planned end date (ISO 8601). Must be in the future. */ end_date?: string; }; url: '/v1/spaces/{space_id}/experiments/{id}/activate'; }; type ActivateExperimentResponses = { /** * Experiment activated successfully. */ 200: { experiment: ExperimentDetail; }; }; type PauseExperimentResponses = { /** * Experiment paused successfully. */ 200: { experiment: ExperimentDetail; }; }; type CompleteExperimentResponses = { /** * Experiment completed successfully. */ 200: { experiment: ExperimentDetail; }; }; type SelectExperimentWinnerResponses = { /** * Winner selected successfully. */ 200: { experiment: ExperimentDetail; }; }; type CompleteExperimentWithWinnerResponses = { /** * Experiment completed with winner. */ 200: { experiment: ExperimentDetail; }; }; type ListInternalTagsData = { body?: never; path: { /** * Space ID */ space_id: number; }; query?: { /** * Search term */ search?: string; /** * Filter tags by object type. */ by_object_type?: 'asset' | 'component' | 'idea'; /** * Filter by comma-separated IDs. */ by_ids?: string; /** * Include asset count for each tag (only for asset type tags). */ with_assets_count?: boolean; /** * The paginated page number. */ page?: number; /** * Number of items per page. */ per_page?: number; }; url: '/v1/spaces/{space_id}/internal_tags'; }; type CreateInternalTagData = { body: InternalTagRequest; path: { /** * Space ID */ space_id: number; }; query?: never; url: '/v1/spaces/{space_id}/internal_tags'; }; type UpdateInternalTagData = { body: InternalTagRequest; path: { /** * Space ID */ space_id: number; /** * Internal Tag ID */ id: number; }; query?: never; url: '/v1/spaces/{space_id}/internal_tags/{id}'; }; type ListPresetsData = { body?: never; path: { /** * Numeric ID of the space */ space_id: number; }; query?: { /** * Filter presets by component ID. */ component_id?: number; }; url: '/v1/spaces/{space_id}/presets'; }; type CreatePresetData = { body: CreatePresetRequest; path: { /** * Numeric ID of the space */ space_id: number; }; query?: never; url: '/v1/spaces/{space_id}/presets'; }; type UpdatePresetData = { body: UpdatePresetRequest; path: { /** * Numeric ID of the space */ space_id: number; /** * Numeric ID of the preset */ id: number; }; query?: never; url: '/v1/spaces/{space_id}/presets/{id}'; }; type ListSpaceSharedAssetFoldersData = { body?: never; path: { /** * Space ID */ space_id: number; }; query?: { /** * Search term */ search?: string; /** * Filter by parent ID. */ with_parent?: string; /** * Retrieve specific stories by providing their UUIDs as a comma-separated string. */ by_uuids?: string; /** * Filter by comma-separated IDs. */ by_ids?: string; }; url: '/v1/spaces/{space_id}/shared_asset_folders'; }; type CreateSpaceSharedAssetFolderData = { body: { shared_asset_folder: { name: string; parent_id?: number; description?: string; color?: string; regions?: Array<'eu' | 'ap' | 'ca' | 'us' | 'cn' | 'all'>; asset_folder_access?: Array<{ space_id?: number; access_level?: 'read' | 'write'; }>; }; }; path: { /** * Space ID */ space_id: number; }; query?: never; url: '/v1/spaces/{space_id}/shared_asset_folders'; }; type DeleteSpaceSharedAssetFolderData = { body?: never; path: { /** * Space ID */ space_id: number; /** * Shared Asset Folder ID */ id: number; }; query?: { /** * Delete recursively. */ recursive?: boolean; }; url: '/v1/spaces/{space_id}/shared_asset_folders/{id}'; }; type UpdateSpaceSharedAssetFolderData = { body: { shared_asset_folder: { name?: string; parent_id?: number | null; description?: string; color?: string; regions?: Array<'eu' | 'ap' | 'ca' | 'us' | 'cn' | 'all'>; asset_folder_access?: Array<{ space_id?: number; access_level?: 'read' | 'write'; }>; }; }; path: { /** * Space ID */ space_id: number; /** * Shared Asset Folder ID */ id: number; }; query?: never; url: '/v1/spaces/{space_id}/shared_asset_folders/{id}'; }; type ListSpaceSharedAssetsData = { body?: never; path: { /** * Space ID */ space_id: number; }; query?: { /** * Provide the numeric id of a folder to filter the assets by a specific folder. */ in_folder?: number; /** * Sort stories in ascending or descending order by a specific property. Possible properties are all default story properties and any custom fields defined in the schema of the story type. * Default story properties can be used like this: * - `sort_by=created_at:desc` * - `sort_by=slug:asc` * * Custom fields can be used like this: * - `sort_by=content.meta_description:asc` * - `sort_by=content.event_title:desc` * * By default, all custom fields are sorted as strings. To sort custom fields with numeric values, it needs to be specified whether they should be treated as float or integer. Examples: * - `sort_by=content.price:asc:float` * - `sort_by=content.event_number:asc:int` * * Different sorts can be chained using commas like this: * - `sort_by=name:desc,slug:asc` * * There is also a possibility to sort values keeping the null (or empty) ones first or last: * - `sort_by=path:desc:nulls_first` * - `sort_by=path:desc:nulls_last` * * `nulls_last` is the default behavior. */ sort_by?: string; /** * If true it only displays private assets. */ is_private?: boolean; /** * Search term */ search?: string; /** * Filter by the alt text of an asset. */ by_alt?: string; /** * Filter by the copyright of an asset. */ by_copyright?: string; /** * Filter by the title of an asset. */ by_title?: string; /** * Filter by specific tag(s). Multiple tags can be provided as a comma-separated string (treated like an OR operator). */ with_tags?: string; /** * Filter activities created on or after this date (inclusive). */ created_at_gte?: string; /** * Filter activities created on or before this date (inclusive). */ created_at_lte?: string; /** * Filter records updated at or after the specified date. Supports ISO 8601 (e.g. 2025-07-16T08:00:00Z) and yyyy-MM-dd HH:mm formats. */ updated_at_gte?: string; /** * Filter records updated at or before the specified date. Supports ISO 8601 (e.g. 2025-07-16T08:00:00Z) and yyyy-MM-dd HH:mm formats. */ updated_at_lte?: string; /** * Filter by >= expire date. */ expire_at_gte?: string; /** * Filter by < expired date. */ expire_at_lte?: string; /** * Number of items per page. */ per_page?: number; /** * The paginated page number. */ page?: number; }; url: '/v1/spaces/{space_id}/shared_assets'; }; type ListSpaceSharedAssetsResponses = { /** * Shared assets returned. */ 200: { assets: Array; }; }; type CreateSpaceSharedAssetData = { body?: never; path: { /** * Space ID */ space_id: number; }; query: { /** * Full path of the asset, including the file name. */ filename: string; /** * Target asset folder ID. */ asset_folder_id: number; /** * Filter by ext_id of an asset. */ ext_id?: string; /** * Alt text. */ alt?: string; /** * Title or caption. */ title?: string; /** * Copyright information. */ copyright?: string; /** * Source of the asset. */ source?: string; /** * Expiration date. */ expire_at?: string; /** * internal_tag_ids. */ internal_tag_ids?: Array; /** * Focal point. */ focus?: string; /** * If true it only displays private assets. */ is_private?: boolean; /** * Publish date. */ publish_at?: string; /** * meta_data. */ meta_data?: { [key: string]: unknown; }; /** * Size of the asset. */ size?: string; /** * Validate Upload. */ validate_upload?: boolean; }; url: '/v1/spaces/{space_id}/shared_assets'; }; type ListSharedInternalTagsData = { body?: never; path: { /** * Space ID */ space_id: number; }; query: { /** * Target asset folder ID. */ asset_folder_id: number; /** * Search term */ search?: string; /** * Filter tags by object type */ by_object_type?: 'asset' | 'component' | 'idea'; /** * Filter by comma-separated IDs. */ by_ids?: string; /** * Include asset count for each tag (only for asset type tags) */ with_assets_count?: boolean; /** * The paginated page number. */ page?: number; /** * Number of items per page. */ per_page?: number; }; url: '/v1/spaces/{space_id}/shared_internal_tags'; }; type CreateSharedInternalTagData = { body: SharedInternalTagRequest; path: { /** * Space ID */ space_id: number; }; query?: never; url: '/v1/spaces/{space_id}/shared_internal_tags'; }; type DeleteSharedInternalTagData = { body?: never; path: { /** * Space ID */ space_id: number; /** * Shared Internal Tag ID */ id: number; }; query: { /** * Target asset folder ID. */ asset_folder_id: number; }; url: '/v1/spaces/{space_id}/shared_internal_tags/{id}'; }; type UpdateSharedInternalTagData = { body: SharedInternalTagRequest; path: { /** * Space ID */ space_id: number; /** * Shared Internal Tag ID */ id: number; }; query?: never; url: '/v1/spaces/{space_id}/shared_internal_tags/{id}'; }; type ListSpacesData = { body?: never; path?: never; query?: { /** * Search term */ search?: string; }; url: '/v1/spaces'; }; type CreateSpaceData = { body: CreateSpaceRequest; path?: never; query?: { /** * ID of existing space to duplicate. */ dup_id?: number; /** * Whether to create the space within an organization. */ in_org?: boolean; /** * Type of space to create (required for org spaces in v2 enterprise plans). */ space_type?: string; /** * Whether to assign the current user's partner to the space. */ assign_partner?: boolean; }; url: '/v1/spaces'; }; type UpdateSpaceData = { body: UpdateSpaceRequest; path: { /** * Space ID */ space_id: number; }; query?: never; url: '/v1/spaces/{space_id}'; }; type ListStoriesData = { body?: never; path: { /** * ID */ space_id: number; }; query?: { /** * Search term */ search?: string; /** * Filter by a term using full text search. */ text_search?: string; /** * Retrieve specific stories by providing their UUIDs as a comma-separated string. */ by_uuids?: string; /** * Retrieve specific stories by providing their UUIDs as a comma-separated string. The order of the stories in the response matches the order in which the UUIDs are listed. */ by_uuids_ordered?: string; /** * Filter by comma-separated IDs. */ by_ids?: string; /** * Filter by parent ID. */ with_parent?: string; /** * Filter releases by branch ID. */ branch_id?: number; /** * Retrieve stories by comma-separated `full_slug`. It is possible to specify wildcards by using *. * * Examples: * - `by_slugs=posts/my-third-post,posts/my-second-post` * - `by_slugs=posts*`. */ by_slugs?: string; /** * Exclude stories by specifying comma-separated values of full_slug. */ excluding_slugs?: string; /** * Retrieve stories that are in a particular workflow stage by providing a comma-separated list of workflow stage IDs. Workflow stage IDs can be retrieved via the [Management API](https://www.storyblok.com/docs/api/management/core-resources/workflow-stage/workflow-stage). */ in_workflow_stages?: string; /** * has workflow stages. */ has_workflow_stages?: boolean; /** * in release id. */ in_release?: number; /** * filters by component as a comma-separated string. */ contain_component?: string; /** * pinned. */ pinned?: boolean; /** * Exclude specific stories by providing their IDs as a comma-separated string. */ excluding_ids?: string; /** * Filter by specific tag(s). Multiple tags can be provided as a comma-separated string (treated like an OR operator). */ with_tag?: string; /** * Folders Only. */ folder_only?: boolean; /** * Root Folders Only. */ root_folders_only?: boolean; /** * Stories Only. */ story_only?: boolean; /** * with slug. */ with_slug?: string; /** * Filter entries whose full slug starts with the given value. For example, `starts_with=de/beitraege`, `starts_with=en/posts`. */ starts_with?: string; /** * Filter to include stories in trash. */ in_trash?: boolean; /** * Is Published. */ is_published?: boolean; /** * Scheduled at greater than (Format: yyyy-MM-dd HH:mm). */ scheduled_at_gt?: string; /** * Scheduled at less than (Format: yyyy-MM-dd HH:mm). */ scheduled_at_lt?: string; /** * Scheduled by status. */ scheduled_by_status?: string; /** * Sort stories in ascending or descending order by a specific property. Possible properties are all default story properties and any custom fields defined in the schema of the story type. * Default story properties can be used like this: * - `sort_by=created_at:desc` * - `sort_by=slug:asc` * * Custom fields can be used like this: * - `sort_by=content.meta_description:asc` * - `sort_by=content.event_title:desc` * * By default, all custom fields are sorted as strings. To sort custom fields with numeric values, it needs to be specified whether they should be treated as float or integer. Examples: * - `sort_by=content.price:asc:float` * - `sort_by=content.event_number:asc:int` * * Different sorts can be chained using commas like this: * - `sort_by=name:desc,slug:asc` * * There is also a possibility to sort values keeping the null (or empty) ones first or last: * - `sort_by=path:desc:nulls_first` * - `sort_by=path:desc:nulls_last` * * `nulls_last` is the default behavior. */ sort_by?: string; /** * Current user's stories only. */ mine?: boolean; /** * Filter by favourite (true/false). */ favourite?: boolean; /** * with_alts. */ with_alts?: boolean; /** * With Summary. */ with_summary?: boolean; /** * With Translated Stories. */ with_translated_stories?: boolean; /** * Custom Sorting. */ custom_sorting?: boolean; /** * Reference Search. */ reference_search?: string; /** * ID of a release that given story is a part of. */ release_id?: number; /** * Filter by attributes and operations. */ filter_query?: { __or?: Array<{ [key: string]: { [key: string]: string; }; }>; [key: string]: { in?: string; not_in?: string; like?: string; not_like?: string; exists?: string; in_array?: Array; all_in_array?: Array; gt_date?: string; lt_date?: string; gt_int?: number; lt_int?: number; gt_float?: number; lt_float?: number; is?: 'empty' | 'not_empty' | 'empty_array' | 'not_empty_array' | 'null' | 'not_null' | 'true' | 'false'; } | Array<{ [key: string]: { [key: string]: string; }; }> | undefined; }; /** * Number of items per page. */ per_page?: number; /** * The paginated page number. */ page?: number; }; url: '/v1/spaces/{space_id}/stories'; }; type ListStoriesResponses = { /** * Stories returned. */ 200: { stories: Array; }; }; type CreateStoryData = { body: UpdateStoryRequest; path: { /** * ID */ space_id: number; }; query?: { /** * If true, the frontend editor will be disabled for this story. Defaults to false. */ disable_fe_editor?: boolean; /** * Preset ID. */ preset_id?: number; /** * Use default preset. */ use_default_preset?: boolean; /** * If true, the story will be published after updating. Defaults to false. */ publish?: boolean; /** * ID of a release that given story is a part of. */ release_id?: number; }; url: '/v1/spaces/{space_id}/stories'; }; type CreateStoryResponses = { /** * Story Created */ 201: { story: Story; }; }; type DeleteStoryResponses = { /** * Story Deleted. */ 200: { story: Story; }; }; type GetStoryByIdData = { body?: never; path: { /** * ID */ space_id: number; /** * Numeric ID */ id: number; }; query?: { /** * ID of a release that given story is a part of. */ release_id?: number; }; url: '/v1/spaces/{space_id}/stories/{id}'; }; type GetStoryByIdResponses = { /** * Story Found with Stage Information. */ 200: { story: Story; }; }; type UpdateStoryData = { body: UpdateStoryRequest; path: { /** * ID */ space_id: number; /** * Numeric ID */ id: number; }; query?: { /** * If true, the story will be published after updating. Defaults to false. */ publish?: boolean; /** * If provided, the story will be translated using AI into the specified language. */ ai_translate_language?: string; /** * ID of a release that given story is a part of. */ release_id?: number; /** * Language code to unpublish the story individually (must be enabled in the space settings). */ lang?: string; /** * Determines if the request can overwrite a locked story. */ force_update?: boolean; /** * If set to '1', enables strict component validation during save. */ strict_mode?: string; }; url: '/v1/spaces/{space_id}/stories/{id}'; }; type UpdateStoryResponses = { /** * Story Updated. */ 200: { story: Story; }; }; type DuplicateStoryData = { body: { story: { name?: string; slug?: string; parent_id?: number; }; }; path: { /** * ID */ space_id: number; /** * Numeric ID */ id: number; }; query?: { /** * When auto creating folder this parameter is required. */ auto_create_folders?: boolean; /** * Target Dimension id. */ target_dimension?: number; /** * ID of a release that given story is a part of. */ release_id?: number; /** * Indicates if the path should be copied over, and if missing, the path will be nullified. */ same_path?: boolean; /** * Indicates if is possible to manipulate the translated slug. */ modify_translated_slugs?: boolean; /** * Fields to include in translation (uid and name pairs). */ translatable_dimensions_app_fields?: Array<{ /** * Component definition ID or component instance _uid */ uid: string; /** * Field name to translate */ name: string; }>; }; url: '/v1/spaces/{space_id}/stories/{id}/duplicate'; }; type DuplicateStoryResponses = { /** * Story Duplicated. */ 200: { story: Story; }; }; type PublishStoryData = { body?: never; path: { /** * ID */ space_id: number; /** * Numeric ID */ id: number; }; query?: { /** * ID of a release that given story is a part of. */ release_id?: number; /** * Language code to unpublish the story individually (must be enabled in the space settings). */ lang?: string; }; url: '/v1/spaces/{space_id}/stories/{id}/publish'; }; type PublishStoryResponses = { /** * Story Published. */ 200: { story: Story; }; }; type UpdateCurrentUserData = { body: UserUpdateRequest; path?: never; query?: never; url: '/v1/users/me'; }; type ListVersionsData = { body?: never; path: { /** * Numeric ID of a space */ space_id: number; }; query: { /** * Name of the model (stories or components). */ model: 'stories' | 'components'; /** * Numeric ID of the model. */ model_id: number; /** * Indicate if the version approach is V2 (applies date-based restrictions). */ versions_v2?: boolean; /** * The paginated page number. */ page?: number; /** * Number of items per page. */ per_page?: number; }; url: '/v1/spaces/{space_id}/versions'; }; type ListVersionsResponses = { /** * Versions returned. */ 200: { versions: Array; }; }; type RestoreVersionData = { body?: never; path: { /** * Numeric ID of a space */ space_id: number; /** * Version ID */ id: number; }; query: { /** * Name of the model (stories or components). */ model: 'stories' | 'components'; /** * Numeric ID of the model. */ model_id: number; }; url: '/v1/spaces/{space_id}/versions/{id}'; }; type RestoreVersionResponses = { /** * Version restored */ 204: void; }; //#endregion export { ActivateExperimentData, ActivateExperimentResponses, Alternate, Asset, AssetFolder, AssetUpdateRequest, Breadcrumb, BulkDestroyAssetsData, BulkRestoreAssetsData, BulkUpdateAssetsData, Collaborator, CompleteExperimentResponses, CompleteExperimentWithWinnerResponses, Component, ComponentCreateRequest, ComponentGroup, ComponentGroupRequest, ComponentUpdateRequest, ComponentVersion, ConvertAssetToSharedAssetData, CreateAsset, CreateAssetData, CreateAssetFolderData, CreateComponentData, CreateComponentGroupData, CreateComponentResponses, CreateDatasourceData, CreateDatasourceEntryData, CreateDatasourceEntryRequest, CreateDatasourceRequest, CreateExperimentData, CreateExperimentRequest, CreateExperimentResponses, CreateExperimentStoryData, CreateExperimentStoryRequest, CreateExperimentStoryResponses, CreateInternalTagData, CreatePresetData, CreatePresetRequest, CreateSharedInternalTagData, CreateSpaceData, CreateSpaceRequest, CreateSpaceSharedAssetData, CreateSpaceSharedAssetFolderData, CreateStoryData, CreateStoryMappingData, CreateStoryMappingResponses, CreateStoryResponses, Datasource, DatasourceEntriesIndexResponse, DatasourceEntry, DatasourceEntryShowResponse, DeleteAssetFolderData, DeleteComponentResponses, DeleteExperimentResponses, DeleteExperimentStoryResponses, DeleteSharedInternalTagData, DeleteSpaceSharedAssetFolderData, DeleteStoryMappingResponses, DeleteStoryResponses, Dimension, DuplicateStoryData, DuplicateStoryResponses, Experiment, ExperimentAssignedMetric, ExperimentBarChart, ExperimentDetail, ExperimentLineChart, ExperimentMetricDefinition, ExperimentResult, ExperimentTextChart, ExperimentVariant, FinishUploadAsset, GetComponentResponses, GetComponentVersionData, GetComponentVersionResponses, GetExperimentResponses, GetExperimentResultsResponses, GetStoryByIdData, GetStoryByIdResponses, IndexAsset, InternalTag, InternalTagRequest, ListAssetFoldersData, ListAssetsData, ListAssetsResponses, ListComponentGroupsData, ListDatasourceEntriesData, ListDatasourcesData, ListExperimentsData, ListExperimentsResponses, ListInternalTagsData, ListManagementComponentsData, ListManagementComponentsResponses, ListPresetsData, ListSharedInternalTagsData, ListSpaceSharedAssetFoldersData, ListSpaceSharedAssetsData, ListSpaceSharedAssetsResponses, ListSpacesData, ListStoriesData, ListStoriesResponses, ListVersionsData, ListVersionsResponses, LocalizedPath, PartialUpdateDatasourceData, PartialUpdateDatasourceEntryData, PauseExperimentResponses, Preset, PublishStoryData, PublishStoryResponses, PushExperimentResultsData, PushExperimentResultsRequest, PushExperimentResultsResponses, ReplaceDatasourceData, ReplaceDatasourceEntryData, RestoreComponentResponses, RestoreVersionData, RestoreVersionResponses, SelectExperimentWinnerResponses, SharedAssetFolder, SharedInternalTagRequest, ShowAsset, Space, SpaceDetail, SpaceRole, Stage, Stories, Story, TranslatedSlug, TranslatedStory, UpdateAssetData, UpdateAssetFolderData, UpdateComponentData, UpdateComponentGroupData, UpdateComponentResponses, UpdateCurrentUserData, UpdateDatasourceEntryRequest, UpdateDatasourceRequest, UpdateExperimentData, UpdateExperimentRequest, UpdateExperimentResponses, UpdateInternalTagData, UpdatePresetData, UpdatePresetRequest, UpdateSharedInternalTagData, UpdateSpaceData, UpdateSpaceRequest, UpdateSpaceSharedAssetFolderData, UpdateStoryData, UpdateStoryRequest, UpdateStoryResponses, User, UserUpdateRequest, Version }; //# sourceMappingURL=types.gen.d.cts.map