import {z} from 'zod' export type OrganizationEventType = 'CREATE' | 'UPDATE' | 'DELETE' | 'ACCEPT' | 'EXPORT' | 'CLONE' | 'DEPLOY_QUEUED' | 'STOP_QUEUED' | 'RESTART_QUEUED' | 'DELETE_QUEUED' | 'UNINSTALL_QUEUED' | 'MAINTENANCE' | 'DRY_RUN' | 'TRIGGER_REDEPLOY' | 'TRIGGER_CANCEL' | 'FORCE_RUN_QUEUED' | 'FORCE_RUN_QUEUED_DEPLOY' | 'FORCE_RUN_QUEUED_STOP' | 'FORCE_RUN_QUEUED_DELETE' | 'TRIGGER_DEPLOY' | 'TRIGGER_STOP' | 'TRIGGER_RESTART' | 'TRIGGER_DELETE' | 'TRIGGER_UNINSTALL' | 'TRIGGER_DEPLOY_DRY_RUN' | 'TRIGGER_FORCE_UNLOCK_STATE' | 'TRIGGER_FORCE_RUN' | 'TRIGGER_FORCE_RUN_DEPLOY' | 'TRIGGER_FORCE_RUN_STOP' | 'TRIGGER_FORCE_RUN_DELETE' | 'DEPLOYED' | 'STOPPED' | 'DELETED' | 'UNINSTALLED' | 'RESTARTED' | 'DEPLOYED_DRY_RUN' | 'FORCE_RUN_SUCCEEDED' | 'FORCE_UNLOCK_STATE_SUCCEEDED' | 'DEPLOY_FAILED' | 'STOP_FAILED' | 'DELETE_FAILED' | 'UNINSTALL_FAILED' | 'RESTART_FAILED' | 'DEPLOYED_DRY_RUN_FAILED' | 'FORCE_RUN_FAILED' | 'FORCE_UNLOCK_STATE_FAILED' | 'SHELL' | 'SSO' | 'PORT_FORWARD' | 'REMOTE_DEBUG' | 'IMPORT' | 'LOCK' | 'UNLOCK'; export type OrganizationEventTargetType = 'APPLICATION' | 'CLUSTER' | 'CONTAINER' | 'CONTAINER_REGISTRY' | 'DATABASE' | 'ENTERPRISE_CONNECTION' | 'ENVIRONMENT' | 'JOB' | 'HELM' | 'MEMBERS_AND_ROLES' | 'ORGANIZATION' | 'PROJECT' | 'WEBHOOK' | 'TERRAFORM'; export type OrganizationEventOrigin = 'API' | 'CLI' | 'CONSOLE' | 'GIT' | 'QOVERY_INTERNAL' | 'TERRAFORM_PROVIDER'; export type GetApiOrganizationOrganizationIdTargetsArgs = {organizationId: string, fromTimestamp?: (string | null) | undefined, toTimestamp?: (string | null) | undefined, eventType?: OrganizationEventType | undefined, targetType?: OrganizationEventTargetType | undefined, triggeredBy?: string | undefined, origin?: OrganizationEventOrigin | undefined, projectId?: string | undefined, environmentId?: string | undefined}; export type GetApiOrganizationOrganizationIdTargetsOptions = {baseUrl?: string | undefined, ApiKeyAuth?: string | undefined, fetch?: typeof fetch | undefined}; export const organizationEventTargetResponseList = z.object({targets: z.array(z.object({id: z.string().optional(), name: z.string().optional()})).optional()}); export const validateResponse = async ( schema: { readonly '~standard': { readonly validate: (value: unknown) => ({ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }) | Promise<{ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }> } }, value: unknown ): Promise => { const result = await schema['~standard'].validate(value) if (result.issues !== undefined) { const detail = result.issues .map(({ message, path }) => path?.length ? `${path.map((segment) => String(typeof segment === 'object' ? segment.key : segment)).join('.')}: ${message}` : message ) .join('; ') throw new Error(`Response does not match the schema: ${detail}`, { cause: { issues: result.issues } }) } return result.value }; /** * Get available event targets to filter events * * GET /organization/{organizationId}/targets * * Also accepts auth: bearerAuth */ export const getApiOrganizationOrganizationIdTargets = async (args: GetApiOrganizationOrganizationIdTargetsArgs, options?: GetApiOrganizationOrganizationIdTargetsOptions) => { const {baseUrl = "https://api.qovery.com", fetch: fetchFn = fetch, ApiKeyAuth} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('accept', "application/json") if (args.fromTimestamp != null) query.append("fromTimestamp", String(args.fromTimestamp)) if (args.toTimestamp != null) query.append("toTimestamp", String(args.toTimestamp)) if (args.eventType != null) query.append("eventType", String(args.eventType)) if (args.targetType != null) query.append("targetType", String(args.targetType)) if (args.triggeredBy != null) query.append("triggeredBy", String(args.triggeredBy)) if (args.origin != null) query.append("origin", String(args.origin)) if (args.projectId != null) query.append("projectId", String(args.projectId)) if (args.environmentId != null) query.append("environmentId", String(args.environmentId)) if (ApiKeyAuth !== undefined) headers.set("Authorization", ApiKeyAuth) const url = `${baseUrl.replace(/\/+$/, '')}/organization/${encodeURIComponent(String(args.organizationId))}/targets${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "GET", headers}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return validateResponse(organizationEventTargetResponseList, await res.json()) };