Skip to main content
Glama

Squad AI

CreateMetricPayload.ts8.3 kB
/* tslint:disable */ /* eslint-disable */ /** * Squad API * API for managing Squad resources * * The version of the OpenAPI document: 4.0.0 * Contact: help@meetsquad.ai * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech * Do not edit the class manually. */ import { mapValues } from '../runtime.js'; import type { CreateMetricPayloadId } from './CreateMetricPayloadId.js'; import { CreateMetricPayloadIdFromJSON, CreateMetricPayloadIdFromJSONTyped, CreateMetricPayloadIdToJSON, CreateMetricPayloadIdToJSONTyped, } from './CreateMetricPayloadId.js'; import type { MetricTimeseriesPoint } from './MetricTimeseriesPoint.js'; import { MetricTimeseriesPointFromJSON, MetricTimeseriesPointFromJSONTyped, MetricTimeseriesPointToJSON, MetricTimeseriesPointToJSONTyped, } from './MetricTimeseriesPoint.js'; /** * Request schema for creating a metric * @export * @interface CreateMetricPayload */ export interface CreateMetricPayload { /** * Display name for the metric * @type {string} * @memberof CreateMetricPayload */ title: string; /** * Detailed description of the metric * @type {string} * @memberof CreateMetricPayload */ description?: string; /** * Unit of measurement for the metric * @type {string} * @memberof CreateMetricPayload */ unit?: string; /** * Category/type of the metric * @type {string} * @memberof CreateMetricPayload */ type?: CreateMetricPayloadTypeEnum; /** * Comparison operator for the target * @type {string} * @memberof CreateMetricPayload */ targetOperator?: CreateMetricPayloadTargetOperatorEnum; /** * Target value to achieve * @type {number} * @memberof CreateMetricPayload */ targetValue?: number; /** * Direction of improvement (up = higher is better, down = lower is better) * @type {string} * @memberof CreateMetricPayload */ targetDirection?: CreateMetricPayloadTargetDirectionEnum; /** * Current value of the metric * @type {number} * @memberof CreateMetricPayload */ currentValue?: number; /** * Previous value of the metric for comparison * @type {number} * @memberof CreateMetricPayload */ previousValue?: number; /** * Type of period for metric comparison * @type {string} * @memberof CreateMetricPayload */ periodType?: CreateMetricPayloadPeriodTypeEnum; /** * Specific period value for metric comparison * @type {string} * @memberof CreateMetricPayload */ periodValue?: CreateMetricPayloadPeriodValueEnum; /** * Historical values for trend analysis * @type {Array<MetricTimeseriesPoint>} * @memberof CreateMetricPayload */ timeseries?: Array<MetricTimeseriesPoint>; /** * Related outcomes that use this metric * @type {Array<any>} * @memberof CreateMetricPayload */ relatedOutcomes?: Array<any>; /** * * @type {CreateMetricPayloadId} * @memberof CreateMetricPayload */ id?: CreateMetricPayloadId; /** * Array of outcome IDs to associate with this metric * @type {Array<string>} * @memberof CreateMetricPayload */ outcomeIds?: Array<string>; /** * * @type {string} * @memberof CreateMetricPayload */ ownerId: string; } /** * @export */ export const CreateMetricPayloadTypeEnum = { Engagement: 'engagement', Conversion: 'conversion', Revenue: 'revenue', Nps: 'nps', Csat: 'csat', Ces: 'ces', Ratio: 'ratio', Custom: 'custom' } as const; export type CreateMetricPayloadTypeEnum = typeof CreateMetricPayloadTypeEnum[keyof typeof CreateMetricPayloadTypeEnum]; /** * @export */ export const CreateMetricPayloadTargetOperatorEnum = { GreaterThan: 'greater_than', LessThan: 'less_than', EqualTo: 'equal_to' } as const; export type CreateMetricPayloadTargetOperatorEnum = typeof CreateMetricPayloadTargetOperatorEnum[keyof typeof CreateMetricPayloadTargetOperatorEnum]; /** * @export */ export const CreateMetricPayloadTargetDirectionEnum = { Up: 'up', Down: 'down' } as const; export type CreateMetricPayloadTargetDirectionEnum = typeof CreateMetricPayloadTargetDirectionEnum[keyof typeof CreateMetricPayloadTargetDirectionEnum]; /** * @export */ export const CreateMetricPayloadPeriodTypeEnum = { Rolling: 'rolling', Calendar: 'calendar' } as const; export type CreateMetricPayloadPeriodTypeEnum = typeof CreateMetricPayloadPeriodTypeEnum[keyof typeof CreateMetricPayloadPeriodTypeEnum]; /** * @export */ export const CreateMetricPayloadPeriodValueEnum = { Day: 'day', Week: 'week', Month: 'month', Quarter: 'quarter', Year: 'year', _7Day: '7-day', _30Day: '30-day', _90Day: '90-day' } as const; export type CreateMetricPayloadPeriodValueEnum = typeof CreateMetricPayloadPeriodValueEnum[keyof typeof CreateMetricPayloadPeriodValueEnum]; /** * Check if a given object implements the CreateMetricPayload interface. */ export function instanceOfCreateMetricPayload(value: object): value is CreateMetricPayload { if (!('title' in value) || value['title'] === undefined) return false; if (!('ownerId' in value) || value['ownerId'] === undefined) return false; return true; } export function CreateMetricPayloadFromJSON(json: any): CreateMetricPayload { return CreateMetricPayloadFromJSONTyped(json, false); } export function CreateMetricPayloadFromJSONTyped(json: any, ignoreDiscriminator: boolean): CreateMetricPayload { if (json == null) { return json; } return { 'title': json['title'], 'description': json['description'] == null ? undefined : json['description'], 'unit': json['unit'] == null ? undefined : json['unit'], 'type': json['type'] == null ? undefined : json['type'], 'targetOperator': json['targetOperator'] == null ? undefined : json['targetOperator'], 'targetValue': json['targetValue'] == null ? undefined : json['targetValue'], 'targetDirection': json['targetDirection'] == null ? undefined : json['targetDirection'], 'currentValue': json['currentValue'] == null ? undefined : json['currentValue'], 'previousValue': json['previousValue'] == null ? undefined : json['previousValue'], 'periodType': json['periodType'] == null ? undefined : json['periodType'], 'periodValue': json['periodValue'] == null ? undefined : json['periodValue'], 'timeseries': json['timeseries'] == null ? undefined : ((json['timeseries'] as Array<any>).map(MetricTimeseriesPointFromJSON)), 'relatedOutcomes': json['relatedOutcomes'] == null ? undefined : json['relatedOutcomes'], 'id': json['id'] == null ? undefined : CreateMetricPayloadIdFromJSON(json['id']), 'outcomeIds': json['outcomeIds'] == null ? undefined : json['outcomeIds'], 'ownerId': json['ownerId'], }; } export function CreateMetricPayloadToJSON(json: any): CreateMetricPayload { return CreateMetricPayloadToJSONTyped(json, false); } export function CreateMetricPayloadToJSONTyped(value?: CreateMetricPayload | null, ignoreDiscriminator: boolean = false): any { if (value == null) { return value; } return { 'title': value['title'], 'description': value['description'], 'unit': value['unit'], 'type': value['type'], 'targetOperator': value['targetOperator'], 'targetValue': value['targetValue'], 'targetDirection': value['targetDirection'], 'currentValue': value['currentValue'], 'previousValue': value['previousValue'], 'periodType': value['periodType'], 'periodValue': value['periodValue'], 'timeseries': value['timeseries'] == null ? undefined : ((value['timeseries'] as Array<any>).map(MetricTimeseriesPointToJSON)), 'relatedOutcomes': value['relatedOutcomes'], 'id': CreateMetricPayloadIdToJSON(value['id']), 'outcomeIds': value['outcomeIds'], 'ownerId': value['ownerId'], }; }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/the-basilisk-ai/squad-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server