// This file is auto-generated by @hey-api/openapi-ts

export type ListAllAppsResponse = {
    /**
     * An array of app objects.
     */
    items?: Array<{
        /**
         * A unique identifier for the app.
         */
        key?: string;
        /**
         * The name of the app.
         */
        name?: string;
        /**
         * A brief description of the app's functionality.
         */
        description?: string;
        /**
         * The URL of the app's logo image.
         */
        logo?: string;
        /**
         * An array of categories the app belongs to.
         */
        categories?: Array<(string)>;
        /**
         * The unique ID of the app.
         */
        appId?: string;
    }>;
};

export type GetAppData = {
    appKey: string;
};

export type GetAppResponse = {
    name: string;
    key: string;
    status: string;
    documentation_doc_text?: string;
    configuration_docs_text?: string;
    docs?: string;
    description?: string;
    logo?: string;
    categories: string[];
    auth_schemes: Array<{
        auth_mode: string;
        authorization_url?: string;
        default_scopes?: string[];
        proxy?: {
            base_url?: string;
        };
        scheme_name?: string;
        token_response_metadata?: string[];
        token_url?: string;
        client_id?: string;
        client_secret?: string;
        fields?: Array<{
            name: string;
            displayName: string;
            description: string;
            type: string;
            required: boolean;
            expected_from_customer: boolean;
            default?: string;
        }>;
    }>;
    yaml: any;
    group: string;
    appId: string;
    testConnectors?: Array<{
        id: string;
        name: string;
        authScheme: string;
    }>;
    meta: {
        triggersCount: number;
        actionsCount: number;
        is_custom_app: boolean;
    };
};

export type ListAllConnectionsData = {
    /**
     * Filter by using specific Integration
     */
    integrationId?: string;

    /**
     * Filter by using specific entity id, seperated by comma
     */
    user_uuid?: string;

    /**
     * Filter by using specific app names, seperated by comma
     */
    appNames?: string[];

    /**
     * Filter by using specific status, seperated by comma
     */
    status?: string;

    /**
     * Page number to fetch
     */
    page?: number;
    /**
     * Page size to assume
     */
    pageSize?: number;
};

export type ListAllConnectionsResponse = {
    items?: Array<{
        /**
         * The unique identifier of the connector associated with the connection.
         */
        connectorId?: string;
        /**
         * An object containing the parameters specific to the connection.
         */
        connectionParams?: {
            /**
             * The base URL for making API requests to the connected app.
             */
            base_url?: string;
            /**
             * The client ID used for authentication with the connected app.
             */
            client_id?: string;
            /**
             * The client secret used for authentication with the connected app.
             */
            client_secret?: string;
            /**
             * The owner of the connection, which can be an object or a string.
             */
            owner?: {
    /**
     * The type of the owner (e.g., "user").
     */
    type?: string;
    /**
     * An object representing the user owner of the connection.
     */
    user?: {
        id?: string;
        name?: string;
        type?: string;
        /**
         * The object type of the user (e.g., "user").
         */
        object?: string;
        person?: {
            email?: string;
        };
        avatar_url?: string;
    };
} | string;
            /**
             * The ID of the bot associated with the connection.
             */
            bot_id?: string;
            /**
             * The ID of the request associated with the connection.
             */
            request_id?: string;
            /**
             * The type of token used for authentication (e.g., "bearer").
             */
            token_type?: string;
            /**
             * The access token used for authentication with the connected app.
             */
            access_token?: string;
            /**
             * The ID of the workspace associated with the connection.
             */
            workspace_id?: string;
            /**
             * The URL of the workspace icon.
             */
            workspace_icon?: string;
            /**
             * The name of the workspace.
             */
            workspace_name?: string;
            /**
             * The ID of the duplicated template associated with the connection.
             */
            duplicated_template_id?: string;
            /**
             * The scope of permissions granted to the connection
             */
            scope?: string;
            /**
             * The timestamp indicating when the connection was created.
             */
            created_at?: number;
            /**
             * The expiration time (in seconds) of the access token.
             *
             */
            expires_in?: number;
            /**
             * The organization associated with the connection.
             */
            organization?: string;
            /**
             * The refresh token used to obtain a new access token when it expires.
             */
            refresh_token?: string;
        };
        /**
         * The unique identifier of the connection.
         */
        id?: string;
        /**
         * The status of the connection (e.g., "INITIATED", "SUCCESS").
         */
        status?: 'FAILED' | 'INITIATED' | 'ACTIVE';
        /**
         * The timestamp indicating when the connection was created.
         */
        createdAt?: string;
        /**
         * The timestamp indicating when the connection was last updated.
         */
        updatedAt?: string;
        /**
         * The name of the app associated with the connection.
         */
        appName?: string;
        /**
         * The URL of the logo of the app associated with the connection.
         */
        logo?: string;
    }>;
    totalPages?: number;
    page?: number;
};

export type CreateConnectionData = {
    requestBody?: {
        integrationId: string;
        userUuid?: string;
        data?: {
            [key: string]: unknown;
        };
        redirectUri?: string;
    };
};

export type CreateConnectionResponse = {
    connectionStatus?: 'SUCCESS' | 'INITIATED' | 'FAILED';
    connectedAccountId?: string;
    redirectUrl?: string;
};

export type GetConnectedAccountData = {
    /**
     * The unique identifier of the connection.
     */
    connectedAccountId: string;
};

export type GetConnectedAccountResponse = {
    /**
     * The unique identifier of the connector associated with the connection.
     *
     */
    integrationId: string;
    /**
     * An object containing the parameters specific to the connection.
     */
    connectionParams?: {
        /**
         * The scope of permissions granted to the connection.
         */
        scope?: string;
        /**
         * The base URL for making API requests to the connected app.
         */
        base_url?: string;
        /**
         * The client ID used for authentication with the connected app.
         */
        client_id?: string;
        /**
         *  The type of token used for authentication (e.g., "bearer").
         */
        token_type?: string;
        /**
         * The access token used for authentication with the connected app.
         */
        access_token?: string;
        /**
         * The client secret used for authentication with the connected app.
         */
        client_secret?: string;
    };
    /**
     * The unique identifier of the connection.
     */
    id?: string;
    /**
     *  The status of the connection (e.g., "SUCCESS").
     */
    status?: 'ACTIVE' | 'INITIATED' | 'FAILED';
    /**
     * The timestamp indicating when the connection was created.
     */
    createdAt?: string;
    /**
     * The timestamp indicating when the connection was last updated.
     */
    updatedAt?: string;
};

export type DeleteConnectionData = {
    /**
     * The unique identifier of the connection.
     */
    connectedAccountId: string;
};

export type DeleteConnectionResponse = {
    /**
     * Status of the api call.
     */
    status?: string;
};

export type GetIntegrationData = {
    /**
     * The unique identifier of the integration.
     */
    integrationId: string;
};

export type GetIntegrationResponse = {
    /**
     * The unique identifier of the connector.
     */
    id?: string;
    /**
     * The name of the connector.
     */
    name?: string;
    /**
     * The authentication scheme used by the connector (e.g., "OAUTH2", "API_KEY").
     */
    authScheme?: string;
    /**
     * An object containing the authentication configuration for the connector.
     */
    authConfig?: {
        /**
         * The base URL for making API requests to the app.
         */
        base_url?: string;
        /**
         * The client ID used for authentication with the app.
         */
        client_id?: string;
        /**
         * The client secret used for authentication with the app.
         */
        client_secret?: string;
    };
    /**
     * The timestamp indicating when the connector was created.
     */
    createdAt?: string;
    /**
     * The timestamp indicating when the connector was last updated.
     */
    updatedAt?: string;
    /**
     * A boolean indicating whether the connector is enabled or not.
     */
    enabled?: boolean;
    /**
     * The unique identifier of the app associated with the connector.
     */
    appId?: string;
    /**
     * An array of input fields expected by the connector.
     */
    expectedInputFields?: Array<{
        [key: string]: unknown;
    }>;
    /**
     * The URL of the logo of the app associated with the connector.
     */
    logo?: string;
    /**
     * The name of the app associated with the connector.
     */
    appName?: string;
};

export type UpdateIntegrationData = {
    /**
     * The unique identifier of the integration.
     */
    integrationId: string;
    requestBody?: {
        /**
         * All the parameters that you see in the GET connector
         */
        enabled?: boolean;
    };
};

export type UpdateIntegrationResponse = {
    status?: string;
};

export type ListAllIntegrationsData = {
    /**
     * Page number to fetch
     */
    page?: number;
    /**
     * Page Size to assume
     */
    pageSize?: number;
};

export type ListAllIntegrationsResponse = {
    items?: Array<{
        /**
         * The unique identifier of the newly created connector.
         */
        id?: string;
        /**
         * The name of the connector.
         */
        name?: string;
        /**
         * The authentication scheme used by the connector.
         */
        authScheme?: string;
        /**
         * The timestamp indicating when the connector was created.
         */
        createdAt?: string;
        /**
         * The timestamp indicating when the connector was last updated.
         */
        updatedAt?: string;
        /**
         * A boolean indicating whether the connector is enabled or not.
         */
        enabled?: boolean;
        /**
         * The unique identifier of the app associated with the connector.
         */
        appId?: string;
        /**
         * The name of the app associated with the connector.
         */
        appName?: string;
        /**
         * The URL of the logo of the app associated with the connector.
         */
        logo?: string;
    }>;
    totalPages?: number;
    page?: number;
};

export enum AuthScheme {
    OAUTH2 = "OAUTH2",
    API_KEY = "API_KEY",
    OAUTH1 = "OAUTH1"
}

export type CreateIntegrationData = {
    requestBody?: {
        /**
         * The name of the connector.
         */
        name?: string;
        /**
         * The authentication scheme used by the connector (e.g., "OAUTH2", "API_KEY").
         */
        authScheme?: AuthScheme;
        /**
         * The unique identifier of the app associated with the connector.
         */
        appId?: string;
        /**
         * An object containing the authentication configuration for the connector.
         */
        authConfig?: {
            /**
             * The client ID used for authentication with the app - if authScheme is OAUTH2
             */
            client_id?: string;
            /**
             * The client secret used for authentication with the app - if authScheme is OAUTH2
             */
            client_secret?: string;
            /**
             * The API key used for authentication with the app - if authScheme is API_KEY
             */
            api_key?: string;
            /**
             * The Consumer key used for authentication with the app - if authScheme is OAUTH1
             */
            consumer_key?: string;
            /**
             * The Consumer secret used for authentication with the app - if authScheme is OAUTH1
             */
            consumer_secret?: string;
            /**
             *  The base URL for making API requests to the app.
             */
            base_url?: string;

            [key: string]: unknown;
        };
        /**
         * Use default Composio credentials to proceed. The developer app credentials will be of Composio.
         */
        useComposioAuth?: boolean;
    };
};

export type CreateIntegrationResponse = {
    /**
     * The unique identifier of the newly created connector.
     */
    id?: string;
    /**
     * The name of the connector.
     */
    name?: string;
    /**
     * The authentication scheme used by the connector.
     */
    authScheme?: string;
    /**
     * An object containing the authentication configuration for the connector.
     */
    authConfig?: {
        /**
         * The base URL for making API requests to the app.
         */
        base_url?: string;
        /**
         * The client ID used for authentication with the app.
         */
        client_id?: string;
        /**
         * The client secret used for authentication with the app.
         */
        client_secret?: string;
    };
    /**
     * The timestamp indicating when the connector was created.
     */
    createdAt?: string;
    /**
     * The timestamp indicating when the connector was last updated.
     */
    updatedAt?: string;
    /**
     *  A boolean indicating whether the connector is enabled or not.
     */
    enabled?: boolean;
    /**
     * The unique identifier of the app associated with the connector.
     */
    appId?: string;
    /**
     * An array of input fields expected by the connector.
     */
    expectedInputFields?: Array<{
        [key: string]: unknown;
    }>;
    /**
     * The URL of the logo of the app associated with the connector.
     */
    logo?: string;
    /**
     * The name of the app associated with the connector.
     */
    appName?: string;
};

export type GetActionData = {
    /**
     * The unique identifier of the action.
     */
    actionName: string;
};

export type GetActionResponse = Array<{
    /**
     * The name of the action.
     */
    name?: string;
    /**
     * The display name of the action.
     */
    display_name?: string;
    /**
     * A description of the action.
     *
     */
    description?: string;
    /**
     *  An object describing the input parameters of the action.
     */
    parameters?: {
        /**
         * An object containing the properties of the input parameters.
         */
        properties?: {
            [key: string]: unknown;
        };
        /**
         * An array of required parameter names.
         */
        required?: Array<(string)>;
        /**
         * The title of the input parameters.
         */
        title?: string;
        /**
         * The type of the input parameters (e.g., "object").
         */
        type?: string;
    };
    /**
     * An object describing the response of the action.
     */
    response?: {
        /**
         * An object containing the properties of the response.
         */
        properties?: {
            [key: string]: unknown;
        };
        /**
         * An array of required response field names.
         */
        required?: Array<(string)>;
        /**
         * The title of the response.
         */
        title?: string;
        /**
         * The type of the response (e.g., "object").
         */
        type?: string;
    };
    /**
     * The unique identifier of the app associated with the action.
     */
    appId?: string;
    /**
     * The URL of the logo of the app associated with the action.
     */
    logo?: string;
    /**
     * The name of the app associated with the action.
     */
    appName?: string;
    /**
     * The key of the app associated with the action.
     */
    appKey?: string;
    /**
     * A boolean indicating whether the action is enabled or not.
     */
    enabled?: boolean;
}>;

export type SetupTriggerData = {
    connectedAccountId: string;
    triggerName: string;
    requestBody: {
        triggerConfig: any;
        verifyHost?: string;
    }
};

export type SetupTriggerResponse = {
    status: "success";
    trigger: GetActiveTriggerResponse
}

export type ExecuteActionData = {
    /**
     * The name of the action to execute.
     */
    actionName: string;
    requestBody?: {
        /**
         * The unique identifier of the connection to use for executing the action.
         */
        connectedAccountId?: string;
        /**
         * An object containing the input parameters for the action. If you want to execute 
         * NLP based action (i.e text), you can use text parameter instead of input.
         */
        input?: {
            [key: string]: unknown;
        };
        appName?: string;
        /**
         * The text to supply to the action which will be automatically coverted to 
         * appropriate input parameters.
         */
        text?: string;
    };
};

export type ExecuteActionResponse = {
    /**
     * An object containing the details of the action execution.
     */
    execution_details?: {
        /**
         * A boolean indicating whether the action was executed successfully.
         *
         */
        executed?: boolean;
    };
    /**
     * An object containing the response data from the action execution.
     */
    response_data?: {
        [key: string]: unknown;
    };
};

export type GetListActionsData = {
    /**
     * Name of the apps like "github", "linear" seperated by a comma
     */
    apps?: string;
    /**
     * Filter by Action names
     */
    actions?: string;
    /**
     * Filter by Action tags
     */
    tags?: string;
    /**
     * Filter by use case
     */
    useCase?: string | undefined;
    /**
     * Limit of use-cases based search
     */
    usecaseLimit?: string;
    /**
     * Show all actions - i.e disable pagination
     */
    showAll?: boolean;
    /**
     * Show actions enabled for the API Key
     */
    showEnabledOnly?: boolean;
    /**
     * Use smart tag filtering
     */
    filterImportantActions?: boolean;
}

export type GetListActionsResponse = {
    /**
     * An array of action objects.
     */
    items?: Array<{
        /**
         *  The name of the action.
         */
        name?: string;
        /**
         * The display name of the action.
         */
        display_name?: string;
        /**
         * A description of the action.
         */
        description?: string;
        /**
         * An object describing the input parameters of the action.
         */
        parameters?: {
            /**
             * An object containing the properties of the input parameters.
             */
            properties?: {
                [key: string]: unknown;
            };
            /**
             * An array of required parameter names.
             */
            required?: Array<(string)>;
            /**
             * The title of the input parameters.
             */
            title?: string;
            /**
             * The type of the input parameters (e.g., "object").
             */
            type?: string;
        };
        /**
         * An object describing the response of the action.
         */
        response?: {
            /**
             *  An object containing the properties of the response.
             */
            properties?: {
                [key: string]: unknown;
            };
            /**
             * An array of required response field names.
             */
            required?: Array<(string)>;
            /**
             * The title of the response.
             */
            title?: string;
            /**
             * The type of the response (e.g., "object").
             */
            type?: string;
        };
        /**
         * The unique identifier of the app associated with the action.
         */
        appId?: string;
        /**
         * The URL of the logo of the app associated with the action.
         */
        logo?: string;
        /**
         * The name of the app associated with the action.
         */
        appName?: string;
        /**
         * A boolean indicating whether the action is enabled or not. This is decided based on whether you have created a connector for the same app.
         * Without creating a connector and then connection for the app, you won't be able to execute the action.
         */
        enabled?: boolean;
    }>;
    page: number;
    totalPages: number;
}

export type ListTriggersData = {
    /**
     * Name of the apps like "github", "linear" seperated by a comma
     */
    appNames?: string;
    /**
     * Filter by Aonnected Account ids
     */
    connectedAccountIds?: string;
    /**
     * Show triggers enabled for the API Key
     */
    showEnabledOnly?: boolean;
};

export type ListTriggersResponse = Array<{
    /**
     * The name of the event.
     */
    name?: string;
    /**
     * The display name of the event.
     */
    display_name?: string;
    /**
     * A brief description of the event.
     */
    description?: string;
    payload?: {
        properties?: {
            /**
             * The SHA of the commit.
             */
            id: string;
            /**
             * The commit message.
             */
            message: string;
            /**
             * The timestamp of the commit.
             */
            timestamp: string;
            /**
             * The GitHub username of the commit author.
             */
            author: string;
            /**
             * The GitHub URL of the commit.
             */
            url: string;
        };
    };
    config?: {
        type?: string;
        title?: string;
        required?: Array<(string)>;
        properties?: {
            /**
             * string
             */
            type?: string;
            /**
             * string
             */
            title?: string;
            /**
             * string
             */
            description?: string;
            required?: Array<(string)>;
        };
    };
    /**
     * Instructions for the event.
     */
    instructions?: string;
    /**
     * The unique ID of the app.
     */
    appId?: string;
    /**
     * The key of the app.
     */
    appKey?: string;
    /**
     * The URL of the app's logo image.
     */
    logo?: string;
    /**
     * The name of the app.
     */
    appName?: string;
    /**
     * The count of the event.
     */
    count?: number;
    /**
     * Whether the event is enabled.
     */
    enabled?: boolean;
}>;

export type ListActiveTriggersData = {
    /**
     * Filter by Connected Account ids
     */
    connectedAccountIds?: string;
    /**
     * Filter by Integration ids
     */
    integrationIds?: string;
    /**
     * Filter by Trigger ids
     */
    triggerIds?: string;
    /**
     * Filter by Trigger names
     */
    triggerNames?: string;
};

export type ListActiveTriggersResponse = {
    triggers?: Array<{
        /**
         * Unique identifier for the trigger.
         */
        id?: string;
        /**
         * Identifier for the connection associated with the trigger.
         */
        connectionId?: string;
        /**
         * Name of the trigger.
         */
        triggerName?: string;
        /**
         * Data associated with the trigger.
         */
        triggerData?: string;
        /**
         * Configuration settings for the trigger.
         */
        triggerConfig?: {
            [key: string]: unknown;
        };
        /**
         * State information for the trigger.
         */
        state?: {
            [key: string]: unknown;
        };
        /**
         * Timestamp when the trigger was created.
         */
        createdAt?: string;
        /**
         * Timestamp when the trigger was last updated.
         */
        updatedAt?: string;
        /**
         * Timestamp when the trigger was disabled, if applicable.
         */
        disabledAt?: string;
    }>;
    pageInfo?: {
        /**
         * The current page number.
         */
        currentPage?: number;
        /**
         * The total number of pages.
         */
        totalPages?: number;
        /**
         * The number of items per page.
         */
        perPage?: number;
    };
};

export type GetActiveTriggerData = {
    /**
     * The ID of the trigger to retrieve.
     */
    triggerId: string;
};

export type PatchUpdateActiveTriggerStatusData = {
    /**
     * The ID of the trigger to enable or disable.
     */
    triggerId: string;
    requestBody: {
        enabled: boolean;
    }
}

export type PatchUpdateActiveTriggerStatusResponse = {
    status: "success"
};

export type GetActiveTriggerResponse = {
    /**
     * Unique identifier for the trigger.
     */
    id?: string;
    /**
     * Identifier for the connection associated with the trigger.
     */
    connectionId?: string;
    /**
     * Name of the trigger.
     */
    triggerName?: string;
    /**
     * Data associated with the trigger.
     */
    triggerData?: string;
    /**
     * Configuration settings for the trigger.
     */
    triggerConfig?: {
        [key: string]: unknown;
    };
    /**
     * State information for the trigger.
     */
    state?: {
        [key: string]: unknown;
    };
    /**
     * Timestamp when the trigger was created.
     */
    createdAt?: string;
    /**
     * Timestamp when the trigger was last updated.
     */
    updatedAt?: string;
    /**
     * Timestamp when the trigger was disabled, if applicable.
     */
    disabledAt?: string;
};

export type $OpenApiTs = {
    '/v1/apps': {
        get: {
            res: {
                /**
                 * OK
                 */
                200: {
                    /**
                     * An array of app objects.
                     */
                    items?: Array<{
                        /**
                         * A unique identifier for the app.
                         */
                        key?: string;
                        /**
                         * The name of the app.
                         */
                        name?: string;
                        /**
                         * A brief description of the app's functionality.
                         */
                        description?: string;
                        /**
                         * The URL of the app's logo image.
                         */
                        logo?: string;
                        /**
                         * An array of categories the app belongs to.
                         */
                        categories?: Array<(string)>;
                        /**
                         * The unique ID of the app.
                         */
                        appId?: string;
                    }>;
                };
            };
        };
    };
    '/v1/connectedAccounts': {
        get: {
            req: ListAllConnectionsData;
            res: {
                /**
                 * OK
                 */
                200: {
                    items?: Array<{
                        /**
                         * The unique identifier of the connector associated with the connection.
                         */
                        connectorId?: string;
                        /**
                         * An object containing the parameters specific to the connection.
                         */
                        connectionParams?: {
                            /**
                             * The base URL for making API requests to the connected app.
                             */
                            base_url?: string;
                            /**
                             * The client ID used for authentication with the connected app.
                             */
                            client_id?: string;
                            /**
                             * The client secret used for authentication with the connected app.
                             */
                            client_secret?: string;
                            /**
                             * The owner of the connection, which can be an object or a string.
                             */
                            owner?: {
    /**
     * The type of the owner (e.g., "user").
     */
    type?: string;
    /**
     * An object representing the user owner of the connection.
     */
    user?: {
        id?: string;
        name?: string;
        type?: string;
        /**
         * The object type of the user (e.g., "user").
         */
        object?: string;
        person?: {
            email?: string;
        };
        avatar_url?: string;
    };
} | string;
                            /**
                             * The ID of the bot associated with the connection.
                             */
                            bot_id?: string;
                            /**
                             * The ID of the request associated with the connection.
                             */
                            request_id?: string;
                            /**
                             * The type of token used for authentication (e.g., "bearer").
                             */
                            token_type?: string;
                            /**
                             * The access token used for authentication with the connected app.
                             */
                            access_token?: string;
                            /**
                             * The ID of the workspace associated with the connection.
                             */
                            workspace_id?: string;
                            /**
                             * The URL of the workspace icon.
                             */
                            workspace_icon?: string;
                            /**
                             * The name of the workspace.
                             */
                            workspace_name?: string;
                            /**
                             * The ID of the duplicated template associated with the connection.
                             */
                            duplicated_template_id?: string;
                            /**
                             * The scope of permissions granted to the connection
                             */
                            scope?: string;
                            /**
                             * The timestamp indicating when the connection was created.
                             */
                            created_at?: number;
                            /**
                             * The expiration time (in seconds) of the access token.
                             *
                             */
                            expires_in?: number;
                            /**
                             * The organization associated with the connection.
                             */
                            organization?: string;
                            /**
                             * The refresh token used to obtain a new access token when it expires.
                             */
                            refresh_token?: string;
                        };
                        /**
                         * The unique identifier of the connection.
                         */
                        id?: string;
                        /**
                         * The status of the connection (e.g., "INITIATED", "SUCCESS").
                         */
                        status?: 'FAILED' | 'INITIATED' | 'ACTIVE';
                        /**
                         * The timestamp indicating when the connection was created.
                         */
                        createdAt?: string;
                        /**
                         * The timestamp indicating when the connection was last updated.
                         */
                        updatedAt?: string;
                        /**
                         * The name of the app associated with the connection.
                         */
                        appName?: string;
                        /**
                         * The URL of the logo of the app associated with the connection.
                         */
                        logo?: string;
                    }>;
                    totalPages?: number;
                    page?: number;
                };
            };
        };
        post: {
            req: CreateConnectionData;
            res: {
                /**
                 * OK
                 */
                200: {
                    connectionStatus?: 'SUCCESS' | 'INITIATED' | 'FAILED';
                    connectionId?: string;
                    redirectUrl?: string;
                };
                /**
                 * {
                 * "message": "Connector not found"
                 * }
                 */
                404: unknown;
            };
        };
    };
    '/v1/connectedAccounts/{connectedAccountId}': {
        get: {
            req: GetConnectedAccountData;
            res: {
                /**
                 * OK
                 */
                200: {
                    /**
                     * The unique identifier of the connector associated with the connection.
                     *
                     */
                    integrationId?: string;
                    /**
                     * An object containing the parameters specific to the connection.
                     */
                    connectionParams?: {
                        /**
                         * The scope of permissions granted to the connection.
                         */
                        scope?: string;
                        /**
                         * The base URL for making API requests to the connected app.
                         */
                        base_url?: string;
                        /**
                         * The client ID used for authentication with the connected app.
                         */
                        client_id?: string;
                        /**
                         *  The type of token used for authentication (e.g., "bearer").
                         */
                        token_type?: string;
                        /**
                         * The access token used for authentication with the connected app.
                         */
                        access_token?: string;
                        /**
                         * The client secret used for authentication with the connected app.
                         */
                        client_secret?: string;
                    };
                    /**
                     * The unique identifier of the connection.
                     */
                    id?: string;
                    /**
                     *  The status of the connection (e.g., "SUCCESS").
                     */
                    status?: 'ACTIVE' | 'INITIATED' | 'FAILED';
                    /**
                     * The timestamp indicating when the connection was created.
                     */
                    createdAt?: string;
                    /**
                     * The timestamp indicating when the connection was last updated.
                     */
                    updatedAt?: string;
                };
                /**
                 * {
                 * "message": "Connection not found or already deleted"
                 * }
                 */
                404: unknown;
            };
        };
        delete: {
            req: DeleteConnectionData;
            res: {
                /**
                 * {
                 * "message": "Connection not found or already deleted"
                 * }
                 */
                200: {
                    /**
                     * Status of the api call.
                     */
                    status?: string;
                };
                /**
                 * Not Found
                 */
                404: unknown;
            };
        };
    };
    '/v1/integrations/{integrationId}': {
        get: {
            req: GetIntegrationData;
            res: {
                /**
                 * OK
                 */
                200: {
                    /**
                     * The unique identifier of the connector.
                     */
                    id?: string;
                    /**
                     * The name of the connector.
                     */
                    name?: string;
                    /**
                     * The authentication scheme used by the connector (e.g., "OAUTH2", "API_KEY").
                     */
                    authScheme?: string;
                    /**
                     * An object containing the authentication configuration for the connector.
                     */
                    authConfig?: {
                        /**
                         * The base URL for making API requests to the app.
                         */
                        base_url?: string;
                        /**
                         * The client ID used for authentication with the app.
                         */
                        client_id?: string;
                        /**
                         * The client secret used for authentication with the app.
                         */
                        client_secret?: string;
                    };
                    /**
                     * The timestamp indicating when the connector was created.
                     */
                    createdAt?: string;
                    /**
                     * The timestamp indicating when the connector was last updated.
                     */
                    updatedAt?: string;
                    /**
                     * A boolean indicating whether the connector is enabled or not.
                     */
                    enabled?: boolean;
                    /**
                     * The unique identifier of the app associated with the connector.
                     */
                    appId?: string;
                    /**
                     * An array of input fields expected by the connector.
                     */
                    expectedInputFields?: Array<{
                        [key: string]: unknown;
                    }>;
                    /**
                     * The URL of the logo of the app associated with the connector.
                     */
                    logo?: string;
                    /**
                     * The name of the app associated with the connector.
                     */
                    appName?: string;
                };
                /**
                 * Not Found
                 */
                404: unknown;
            };
        };
        patch: {
            req: UpdateIntegrationData;
            res: {
                /**
                 * OK
                 */
                200: {
                    status?: string;
                };
                /**
                 * Not Found
                 */
                404: unknown;
            };
        };
    };
    '/v1/integrations': {
        get: {
            req: ListAllIntegrationsData;
            res: {
                /**
                 * OK
                 */
                200: {
                    items?: Array<{
                        /**
                         * The unique identifier of the newly created connector.
                         */
                        id?: string;
                        /**
                         * The name of the connector.
                         */
                        name?: string;
                        /**
                         * The authentication scheme used by the connector.
                         */
                        authScheme?: string;
                        /**
                         * The timestamp indicating when the connector was created.
                         */
                        createdAt?: string;
                        /**
                         * The timestamp indicating when the connector was last updated.
                         */
                        updatedAt?: string;
                        /**
                         * A boolean indicating whether the connector is enabled or not.
                         */
                        enabled?: boolean;
                        /**
                         * The unique identifier of the app associated with the connector.
                         */
                        appId?: string;
                        /**
                         * The name of the app associated with the connector.
                         */
                        appName?: string;
                        /**
                         * The URL of the logo of the app associated with the connector.
                         */
                        logo?: string;
                    }>;
                    totalPages?: number;
                    page?: number;
                };
            };
        };
        post: {
            req: CreateIntegrationData;
            res: {
                /**
                 * OK
                 */
                200: {
                    /**
                     * The unique identifier of the newly created connector.
                     */
                    id?: string;
                    /**
                     * The name of the connector.
                     */
                    name?: string;
                    /**
                     * The authentication scheme used by the connector.
                     */
                    authScheme?: string;
                    /**
                     * An object containing the authentication configuration for the connector.
                     */
                    authConfig?: {
                        /**
                         * The base URL for making API requests to the app.
                         */
                        base_url?: string;
                        /**
                         * The client ID used for authentication with the app.
                         */
                        client_id?: string;
                        /**
                         * The client secret used for authentication with the app.
                         */
                        client_secret?: string;
                    };
                    /**
                     * The timestamp indicating when the connector was created.
                     */
                    createdAt?: string;
                    /**
                     * The timestamp indicating when the connector was last updated.
                     */
                    updatedAt?: string;
                    /**
                     *  A boolean indicating whether the connector is enabled or not.
                     */
                    enabled?: boolean;
                    /**
                     * The unique identifier of the app associated with the connector.
                     */
                    appId?: string;
                    /**
                     * An array of input fields expected by the connector.
                     */
                    expectedInputFields?: Array<{
                        [key: string]: unknown;
                    }>;
                    /**
                     * The URL of the logo of the app associated with the connector.
                     */
                    logo?: string;
                    /**
                     * The name of the app associated with the connector.
                     */
                    appName?: string;
                };
                /**
                 * Bad Request
                 */
                400: unknown;
            };
        };
    };
    '/v1/actions/{actionName}': {
        get: {
            req: GetActionData;
            res: {
                /**
                 * OK
                 */
                200: {
                    /**
                     * The name of the action.
                     */
                    name?: string;
                    /**
                     * The display name of the action.
                     */
                    display_name?: string;
                    /**
                     * A description of the action.
                     *
                     */
                    description?: string;
                    /**
                     *  An object describing the input parameters of the action.
                     */
                    parameters?: {
                        /**
                         * An object containing the properties of the input parameters.
                         */
                        properties?: {
                            [key: string]: unknown;
                        };
                        /**
                         * An array of required parameter names.
                         */
                        required?: Array<(string)>;
                        /**
                         * The title of the input parameters.
                         */
                        title?: string;
                        /**
                         * The type of the input parameters (e.g., "object").
                         */
                        type?: string;
                    };
                    /**
                     * An object describing the response of the action.
                     */
                    response?: {
                        /**
                         * An object containing the properties of the response.
                         */
                        properties?: {
                            [key: string]: unknown;
                        };
                        /**
                         * An array of required response field names.
                         */
                        required?: Array<(string)>;
                        /**
                         * The title of the response.
                         */
                        title?: string;
                        /**
                         * The type of the response (e.g., "object").
                         */
                        type?: string;
                    };
                    /**
                     * The unique identifier of the app associated with the action.
                     */
                    appId?: string;
                    /**
                     * The URL of the logo of the app associated with the action.
                     */
                    logo?: string;
                    /**
                     * The name of the app associated with the action.
                     */
                    appName?: string;
                    /**
                     * A boolean indicating whether the action is enabled or not.
                     */
                    enabled?: boolean;
                };
                /**
                 * Not Found
                 */
                404: unknown;
            };
        };
    };
    '/v2/actions': {
        get: {
            req: GetListActionsData;
            res: {
                /**
                 * OK
                 */
                200: {
                    /**
                     * An array of action objects.
                     */
                    items?: Array<{
                        /**
                         *  The name of the action.
                         */
                        name?: string;
                        /**
                         * The display name of the action.
                         */
                        display_name?: string;
                        /**
                         * A description of the action.
                         */
                        description?: string;
                        /**
                         * An object describing the input parameters of the action.
                         */
                        parameters?: {
                            /**
                             * An object containing the properties of the input parameters.
                             */
                            properties?: {
                                [key: string]: unknown;
                            };
                            /**
                             * An array of required parameter names.
                             */
                            required?: Array<(string)>;
                            /**
                             * The title of the input parameters.
                             */
                            title?: string;
                            /**
                             * The type of the input parameters (e.g., "object").
                             */
                            type?: string;
                        };
                        /**
                         * An object describing the response of the action.
                         */
                        response?: {
                            /**
                             *  An object containing the properties of the response.
                             */
                            properties?: {
                                [key: string]: unknown;
                            };
                            /**
                             * An array of required response field names.
                             */
                            required?: Array<(string)>;
                            /**
                             * The title of the response.
                             */
                            title?: string;
                            /**
                             * The type of the response (e.g., "object").
                             */
                            type?: string;
                        };
                        /**
                         * The unique identifier of the app associated with the action.
                         */
                        appId?: string;
                        /**
                         * The URL of the logo of the app associated with the action.
                         */
                        logo?: string;
                        /**
                         * The name of the app associated with the action.
                         */
                        appName?: string;
                        /**
                         * A boolean indicating whether the action is enabled or not. This is decided based on whether you have created a connector for the same app.
                         * Without creating a connector and then connection for the app, you won't be able to execute the action.
                         */
                        enabled?: boolean;
                    }>;
                    /**
                     * The current page number of the action list.
                     */
                    page?: number;
                    /**
                     * The total number of pages available for the action list.
                     */
                    totalPages?: number;
                };
            };
        };
    };
    '/v1/actions/{actionName}/execute': {
        post: {
            req: ExecuteActionData;
            res: {
                /**
                 * OK
                 */
                200: {
                    /**
                     * An object containing the details of the action execution.
                     */
                    execution_details?: {
                        /**
                         * A boolean indicating whether the action was executed successfully.
                         *
                         */
                        executed?: boolean;
                    };
                    /**
                     * An object containing the response data from the action execution.
                     */
                    response_data?: {
                        [key: string]: unknown;
                    };
                };
                /**
                 * Not Found
                 */
                404: unknown;
            };
        };
    };
    '/v1/triggers': {
        get: {
            req: ListTriggersData;
            res: {
                /**
                 * OK
                 */
                200: Array<{
                    /**
                     * The name of the event.
                     */
                    name?: string;
                    /**
                     * The display name of the event.
                     */
                    display_name?: string;
                    /**
                     * A brief description of the event.
                     */
                    description?: string;
                    payload?: {
                        properties?: {
                            /**
                             * The SHA of the commit.
                             */
                            id: string;
                            /**
                             * The commit message.
                             */
                            message: string;
                            /**
                             * The timestamp of the commit.
                             */
                            timestamp: string;
                            /**
                             * The GitHub username of the commit author.
                             */
                            author: string;
                            /**
                             * The GitHub URL of the commit.
                             */
                            url: string;
                        };
                    };
                    config?: {
                        type?: string;
                        title?: string;
                        required?: Array<(string)>;
                        properties?: {
                            /**
                             * string
                             */
                            type?: string;
                            /**
                             * string
                             */
                            title?: string;
                            /**
                             * string
                             */
                            description?: string;
                            required?: Array<(string)>;
                        };
                    };
                    /**
                     * Instructions for the event.
                     */
                    instructions?: string;
                    /**
                     * The unique ID of the app.
                     */
                    appId?: string;
                    /**
                     * The key of the app.
                     */
                    appKey?: string;
                    /**
                     * The URL of the app's logo image.
                     */
                    logo?: string;
                    /**
                     * The name of the app.
                     */
                    appName?: string;
                    /**
                     * The count of the event.
                     */
                    count?: number;
                    /**
                     * Whether the event is enabled.
                     */
                    enabled?: boolean;
                }>;
            };
        };
    };
    '/v1/triggers/active_triggers': {
        get: {
            req: ListActiveTriggersData;
            res: {
                /**
                 * A list of active triggers
                 */
                200: {
                    triggers?: Array<{
                        /**
                         * Unique identifier for the trigger.
                         */
                        id?: string;
                        /**
                         * Identifier for the connection associated with the trigger.
                         */
                        connectionId?: string;
                        /**
                         * Name of the trigger.
                         */
                        triggerName?: string;
                        /**
                         * Data associated with the trigger.
                         */
                        triggerData?: string;
                        /**
                         * Configuration settings for the trigger.
                         */
                        triggerConfig?: {
                            [key: string]: unknown;
                        };
                        /**
                         * State information for the trigger.
                         */
                        state?: {
                            [key: string]: unknown;
                        };
                        /**
                         * Timestamp when the trigger was created.
                         */
                        createdAt?: string;
                        /**
                         * Timestamp when the trigger was last updated.
                         */
                        updatedAt?: string;
                        /**
                         * Timestamp when the trigger was disabled, if applicable.
                         */
                        disabledAt?: string;
                    }>;
                    pageInfo?: {
                        /**
                         * The current page number.
                         */
                        currentPage?: number;
                        /**
                         * The total number of pages.
                         */
                        totalPages?: number;
                        /**
                         * The number of items per page.
                         */
                        perPage?: number;
                    };
                };
            };
        };
    };
    '/v1/triggers/get/{triggerId}': {
        get: {
            req: GetActiveTriggerData;
            res: {
                /**
                 * A successful response containing the details of the active trigger.
                 */
                200: {
                    /**
                     * Unique identifier for the trigger.
                     */
                    id?: string;
                    /**
                     * Identifier for the connection associated with the trigger.
                     */
                    connectionId?: string;
                    /**
                     * Name of the trigger.
                     */
                    triggerName?: string;
                    /**
                     * Data associated with the trigger.
                     */
                    triggerData?: string;
                    /**
                     * Configuration settings for the trigger.
                     */
                    triggerConfig?: {
                        [key: string]: unknown;
                    };
                    /**
                     * State information for the trigger.
                     */
                    state?: {
                        [key: string]: unknown;
                    };
                    /**
                     * Timestamp when the trigger was created.
                     */
                    createdAt?: string;
                    /**
                     * Timestamp when the trigger was last updated.
                     */
                    updatedAt?: string;
                    /**
                     * Timestamp when the trigger was disabled, if applicable.
                     */
                    disabledAt?: string;
                };
                /**
                 * Trigger not found
                 */
                404: unknown;
                /**
                 * Internal server error
                 */
                500: unknown;
            };
        };
    };
};