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 OrganizationEventSubTargetType = 'ADVANCED_SETTINGS' | 'API_TOKEN' | 'BILLING_INFO' | 'CLOUD_PROVIDER_CREDENTIALS' | 'CLUSTER_CREDENTIALS' | 'CLUSTER_ROUTING_TABLE' | 'CONFIG' | 'CREDIT_CARD' | 'CREDIT_CODE' | 'CUSTOM_DOMAIN' | 'CUSTOM_ROLE' | 'DEPLOYMENT_RULE' | 'DEPLOYMENT_STAGE' | 'GITHUB_APP' | 'GIT_REPOSITORY' | 'GIT_TOKEN' | 'INVITATION' | 'MEMBER_ROLE' | 'PLAN' | 'SECRET' | 'TERRAFORM' | 'TRANSFER_OWNERSHIP' | 'VARIABLE' | null; export type OrganizationEventOrigin = 'API' | 'CLI' | 'CONSOLE' | 'GIT' | 'QOVERY_INTERNAL' | 'TERRAFORM_PROVIDER'; export type GetApiOrganizationOrganizationIdEventsArgs = {organizationId: string, pageSize?: (number | null) | undefined, fromTimestamp?: (string | null) | undefined, toTimestamp?: (string | null) | undefined, continueToken?: string | undefined, stepBackToken?: string | undefined, eventType?: OrganizationEventType | undefined, targetType?: OrganizationEventTargetType | undefined, targetId?: (string | null) | undefined, subTargetType?: OrganizationEventSubTargetType | undefined, triggeredBy?: string | undefined, origin?: OrganizationEventOrigin | undefined}; export type GetApiOrganizationOrganizationIdEventsOptions = {baseUrl?: string | undefined, ApiKeyAuth?: string | undefined, fetch?: typeof fetch | undefined}; export const organizationEventType = z.enum(["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 const organizationEventTargetType = z.enum(["APPLICATION", "CLUSTER", "CONTAINER", "CONTAINER_REGISTRY", "DATABASE", "ENTERPRISE_CONNECTION", "ENVIRONMENT", "JOB", "HELM", "MEMBERS_AND_ROLES", "ORGANIZATION", "PROJECT", "WEBHOOK", "TERRAFORM"]); export const organizationEventSubTargetType = z.enum(["ADVANCED_SETTINGS", "API_TOKEN", "BILLING_INFO", "CLOUD_PROVIDER_CREDENTIALS", "CLUSTER_CREDENTIALS", "CLUSTER_ROUTING_TABLE", "CONFIG", "CREDIT_CARD", "CREDIT_CODE", "CUSTOM_DOMAIN", "CUSTOM_ROLE", "DEPLOYMENT_RULE", "DEPLOYMENT_STAGE", "GITHUB_APP", "GIT_REPOSITORY", "GIT_TOKEN", "INVITATION", "MEMBER_ROLE", "PLAN", "SECRET", "TERRAFORM", "TRANSFER_OWNERSHIP", "VARIABLE"]).nullable(); export const organizationEventOrigin = z.enum(["API", "CLI", "CONSOLE", "GIT", "QOVERY_INTERNAL", "TERRAFORM_PROVIDER"]); export const organizationEventResponse = z.object({id: z.string().optional(), timestamp: z.string().optional(), event_type: organizationEventType.optional(), target_id: z.string().nullable().optional(), target_name: z.string().optional(), target_type: organizationEventTargetType.optional(), sub_target_type: organizationEventSubTargetType.optional(), change: z.string().optional(), origin: organizationEventOrigin.optional(), triggered_by: z.string().optional(), project_id: z.string().nullable().optional(), project_name: z.string().optional(), environment_id: z.string().nullable().optional(), environment_name: z.string().optional(), user_agent: z.string().nullable().optional()}); export const organizationEventResponseList = z.object({links: z.object({previous: z.string().optional(), next: z.string().optional()}).optional(), organization_max_limit_reached: z.boolean().optional(), events: z.array(organizationEventResponse).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 all events inside the organization * * GET /organization/{organizationId}/events * * Also accepts auth: bearerAuth */ export const getApiOrganizationOrganizationIdEvents = async (args: GetApiOrganizationOrganizationIdEventsArgs, options?: GetApiOrganizationOrganizationIdEventsOptions) => { 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.pageSize != null) query.append("pageSize", String(args.pageSize)) if (args.fromTimestamp != null) query.append("fromTimestamp", String(args.fromTimestamp)) if (args.toTimestamp != null) query.append("toTimestamp", String(args.toTimestamp)) if (args.continueToken != null) query.append("continueToken", String(args.continueToken)) if (args.stepBackToken != null) query.append("stepBackToken", String(args.stepBackToken)) if (args.eventType != null) query.append("eventType", String(args.eventType)) if (args.targetType != null) query.append("targetType", String(args.targetType)) if (args.targetId != null) query.append("targetId", String(args.targetId)) if (args.subTargetType != null) query.append("subTargetType", String(args.subTargetType)) if (args.triggeredBy != null) query.append("triggeredBy", String(args.triggeredBy)) if (args.origin != null) query.append("origin", String(args.origin)) if (ApiKeyAuth !== undefined) headers.set("Authorization", ApiKeyAuth) const url = `${baseUrl.replace(/\/+$/, '')}/organization/${encodeURIComponent(String(args.organizationId))}/events${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(organizationEventResponseList, await res.json()) };