import {z} from 'zod' export type GetApiApiopsProjectsProjectNameConnectionsConnectionNameArgs = {projectName: string, connectionName: string}; export type GetApiApiopsProjectsProjectNameConnectionsConnectionNameOptions = {baseUrl?: string | undefined, fetch?: typeof fetch | undefined}; export const connectionConfigApacheActiveMqDTO = z.object({id: z.string().optional(), name: z.string().optional(), description: z.string().optional(), enabled: z.boolean().optional(), projectName: z.string().optional(), circuitBreakerEnabled: z.boolean().optional(), errorThresholdValue: z.number().int().optional(), sleepWindow: z.number().int().optional(), type: z.string(), activeMqConnectionProtocolType: z.enum(["AMQP", "TCP"]).optional(), brokerURL: z.string().optional(), username: z.string().optional(), password: z.string().optional(), destinationType: z.enum(["QUEUE", "TOPIC"]).optional(), destinationName: z.string().optional(), sessionAcknowledgement: z.enum(["CLIENT_ACKNOWLEDGE", "SESSION_TRANSACTED", "AUTO_ACKNOWLEDGE", "DUPS_OK_ACKNOWLEDGE"]).optional(), sendTimeout: z.number().int().optional(), requestTimeout: z.number().int().optional(), closeTimeout: z.number().int().optional(), connectTimeout: z.number().int().optional(), contentType: z.string().optional(), clientID: z.string().optional(), contentEncoding: z.string().optional()}); export const elasticHost = z.object({scheme: z.string().optional(), host: z.string().optional(), port: z.number().int().optional(), status: z.string().optional(), clusterName: z.string().optional(), resolvedHost: z.string().optional()}); export const elasticsearchIndexLifecyclePolicy = z.object({policyName: z.string().optional(), enableHotPhase: z.boolean().optional(), maxAgeOfRollover: z.number().int().optional(), maxIndexSizeOfRollover: z.number().int().optional(), maxDocCountOfRollover: z.number().int().optional(), enableWarmPhase: z.boolean().optional(), numberOfReplicasForWarm: z.number().int().optional(), maxNumShardsForShrink: z.number().int().optional(), maxNumSegmentsForForceMerge: z.number().int().optional(), enableColdPhase: z.boolean().optional(), minAgeOfCold: z.number().int().optional(), numberOfReplicasForCold: z.number().int().optional(), enableDeletePhase: z.boolean().optional(), minAgeOfDelete: z.number().int().optional()}); export const connectionConfigElasticsearchDTO = z.object({id: z.string().optional(), name: z.string().optional(), description: z.string().optional(), enabled: z.boolean().optional(), projectName: z.string().optional(), circuitBreakerEnabled: z.boolean().optional(), errorThresholdValue: z.number().int().optional(), sleepWindow: z.number().int().optional(), type: z.string(), administrate: z.boolean().optional(), elasticHostList: z.array(elasticHost).optional(), authenticate: z.boolean().optional(), elasticUsername: z.string().optional(), elasticPassword: z.string().optional(), encryptCommunication: z.boolean().optional(), encryptCommunicationType: z.enum(["CA_CERTIFICATE_IN_PKCS_12", "CA_IN_PEM_FILE", "CERT_AND_PRIVATE_KEY_IN_PKCS_12"]).optional(), caCertInPkcs12File: z.string().optional(), caCertInPkcs12FileContentType: z.string().optional(), caInPemFile: z.string().optional(), caInPemFileContentType: z.string().optional(), caTruststoreFile: z.string().optional(), caTruststoreFileContentType: z.string().optional(), caTruststoreFilePass: z.string().optional(), caKeystoreFile: z.string().optional(), caKeystoreFileContentType: z.string().optional(), caKeystoreFilePass: z.string().optional(), disableHostnameVerification: z.boolean().optional(), indexLifecyclePolicyCreated: z.boolean().optional(), indexLifecyclePolicy: elasticsearchIndexLifecyclePolicy.optional(), dataStreamCreated: z.boolean().optional(), indexTemplateCreated: z.boolean().optional(), lastStatusCheckFailed: z.boolean().optional(), indexTemplateName: z.string().optional(), indexName: z.string().optional(), indexTemplateNumberOfShards: z.number().int().optional(), indexTemplateNumberOfReplicas: z.number().int().optional(), indexTemplateRefreshInterval: z.string().optional(), indexTemplateLoadFixedBitsetFiltersEagerly: z.boolean().optional(), connectionTimeoutInMs: z.number().int().optional(), responseTimeoutSeconds: z.number().int().optional(), elasticsearchMajorVersion: z.enum(["AUTO_DETECT", "ES_7", "ES_8", "ES_9", "UNKNOWN"]).optional(), bulkBufferCapacity: z.number().int().optional(), bulkFlushIntervalMs: z.number().int().optional(), bulkMaxBatchSize: z.number().int().optional(), elasticsearchType: z.enum(["READ_WRITE", "READ"]).optional()}); export const emailAdditionalProperty = z.object({key: z.string().optional(), value: z.string().optional(), resolvedValue: z.string().optional(), resolvedKey: z.string().optional()}); export const connectionConfigEmailDTO = z.object({id: z.string().optional(), name: z.string().optional(), description: z.string().optional(), enabled: z.boolean().optional(), projectName: z.string().optional(), circuitBreakerEnabled: z.boolean().optional(), errorThresholdValue: z.number().int().optional(), sleepWindow: z.number().int().optional(), type: z.string(), host: z.string().optional(), port: z.number().int().optional(), enableStartTls: z.boolean().optional(), auth: z.boolean().optional(), username: z.string().optional(), password: z.string().optional(), defaultEncoding: z.string().optional(), addressToTest: z.string().optional(), from: z.string().optional(), additionalProperties: z.array(emailAdditionalProperty).optional(), useSsl: z.boolean().optional(), certificateId: z.string().optional(), certificateName: z.string().optional(), checkServerIdentity: z.boolean().optional()}); export const connectionConfigFtpDTO = z.object({id: z.string().optional(), name: z.string().optional(), description: z.string().optional(), enabled: z.boolean().optional(), projectName: z.string().optional(), circuitBreakerEnabled: z.boolean().optional(), errorThresholdValue: z.number().int().optional(), sleepWindow: z.number().int().optional(), type: z.string(), host: z.string().optional(), port: z.number().int().optional(), username: z.string().optional(), password: z.string().optional(), workingDir: z.string().optional(), protocol: z.enum(["ftp", "sftp", "ftps"]).optional(), timeout: z.number().int().optional(), retryCount: z.number().int().optional(), useImplicit: z.boolean().optional(), useExplicit: z.boolean().optional(), sslProtocol: z.string().optional(), verifyServerCertificate: z.boolean().optional()}); export const connectionConfigGraylogDTO = z.object({id: z.string().optional(), name: z.string().optional(), description: z.string().optional(), enabled: z.boolean().optional(), projectName: z.string().optional(), circuitBreakerEnabled: z.boolean().optional(), errorThresholdValue: z.number().int().optional(), sleepWindow: z.number().int().optional(), type: z.string(), hostname: z.string().optional(), port: z.number().int().optional(), transportType: z.enum(["TCP", "UDP"]).optional(), tlsEnabled: z.boolean().optional(), tlsCertVerificationEnabled: z.boolean().optional(), compressionType: z.enum(["GZIP", "ZLIB", "NONE"]).optional(), gelfMessageLevel: z.enum(["EMERGENCY(0)", "ALERT(1)", "CRITICAL(2)", "ERROR(3)", "WARNING(4)", "NOTICE(5)", "INFO(6)", "DEBUG(7)"]).optional(), queueSize: z.number().int().optional(), reconnectDelay: z.number().int().optional(), connectTimeout: z.number().int().optional(), tcpNoDelay: z.boolean().optional(), tcpKeepAlive: z.boolean().optional(), sendBufferSize: z.number().int().optional(), maxInflightSends: z.number().int().optional(), threads: z.number().int().optional(), tlsTrustCertChainFile: z.string().optional(), tlsTrustCertChainFileName: z.string().optional(), appendToAttributes: z.boolean().optional(), appendToMessage: z.boolean().optional()}); export const mapValue = z.object({value: z.string().optional(), valueType: z.enum(["STRING", "BOOLEAN", "INTEGER", "LONG", "DOUBLE", "FLOAT", "STRING_LIST", "URI"]).optional(), resolvedValueByType: z.unknown()}); export const connectionConfigKafkaDTO = z.object({id: z.string().optional(), name: z.string().optional(), description: z.string().optional(), enabled: z.boolean().optional(), projectName: z.string().optional(), circuitBreakerEnabled: z.boolean().optional(), errorThresholdValue: z.number().int().optional(), sleepWindow: z.number().int().optional(), type: z.string(), topicName: z.string().optional(), propertiesMap: z.record(z.string(), mapValue).optional(), enableSecure: z.boolean().optional(), protocolTypes: z.array(z.enum(["TLS_1_3", "TLS_1_2", "TLS_1_1", "TLS_1_0", "SSL_3_0"])).optional(), keyStoreId: z.string().optional(), keyStoreName: z.string().optional(), trustStoreId: z.string().optional(), trustStoreName: z.string().optional()}); export const connectionConfigLinuxScriptDTO = z.object({id: z.string().optional(), name: z.string().optional(), description: z.string().optional(), enabled: z.boolean().optional(), projectName: z.string().optional(), circuitBreakerEnabled: z.boolean().optional(), errorThresholdValue: z.number().int().optional(), sleepWindow: z.number().int().optional(), type: z.string(), hostName: z.string().optional(), sshPort: z.number().int().optional(), username: z.string().optional(), password: z.string().optional()}); export const connectionConfigLogbackDTO = z.object({id: z.string().optional(), name: z.string().optional(), description: z.string().optional(), enabled: z.boolean().optional(), projectName: z.string().optional(), circuitBreakerEnabled: z.boolean().optional(), errorThresholdValue: z.number().int().optional(), sleepWindow: z.number().int().optional(), type: z.string(), logPath: z.string().optional(), logFileName: z.string().optional(), logPodName: z.string().optional(), logFilenamePattern: z.string().optional(), logPattern: z.string().optional(), maxFileSize: z.number().int().optional(), maxHistory: z.number().int().optional(), totalSizeCap: z.number().int().optional()}); export const configRabbitMqHostPort = z.object({host: z.string().optional(), port: z.number().int().optional(), resolvedHost: z.string().optional()}); export const connectionConfigRabbitMqDTO = z.object({id: z.string().optional(), name: z.string().optional(), description: z.string().optional(), enabled: z.boolean().optional(), projectName: z.string().optional(), circuitBreakerEnabled: z.boolean().optional(), errorThresholdValue: z.number().int().optional(), sleepWindow: z.number().int().optional(), type: z.string(), hostPortList: z.array(configRabbitMqHostPort).optional(), connectionFactoryVirtualHost: z.string().optional(), authenticationEnabled: z.boolean().optional(), connectionFactoryUsername: z.string().optional(), connectionFactoryPassword: z.string().optional(), connectionFactoryConnectionTimeout: z.number().int().optional(), connectionFactoryClientProperties: z.record(z.string(), z.unknown()).optional(), connectionFactoryRequestedChannelMax: z.number().int().optional(), connectionFactoryRequestedFrameMax: z.number().int().optional(), connectionFactoryRequestedHeartbeat: z.number().int().optional(), connectionFactoryUseSslProtocol: z.boolean().optional(), connectionFactorySslProtocol: z.string().optional(), channelExchange: z.string().optional(), channelRoutingKey: z.string().optional(), basicPropertiesAppId: z.string().optional(), basicPropertiesContentType: z.string().optional(), basicPropertiesContentEncoding: z.string().optional(), basicPropertiesDeliveryMode: z.number().int().optional(), basicPropertiesPriority: z.number().int().optional(), basicPropertiesReplyTo: z.string().optional(), basicPropertiesExpiration: z.string().optional(), basicPropertiesType: z.string().optional(), basicPropertiesUserId: z.string().optional(), basicPropertiesClusterId: z.string().optional()}); export const connectionConfigSNMPDTO = z.object({id: z.string().optional(), name: z.string().optional(), description: z.string().optional(), enabled: z.boolean().optional(), projectName: z.string().optional(), circuitBreakerEnabled: z.boolean().optional(), errorThresholdValue: z.number().int().optional(), sleepWindow: z.number().int().optional(), type: z.string(), version: z.enum(["V1", "V2c", "V3"]).optional(), connectionString: z.string().optional(), securityOrCommunityName: z.string().optional(), retryCount: z.number().int().optional(), timeout: z.number().int().optional(), messageType: z.enum(["INFORM", "TRAP"]).optional(), securityLevel: z.enum(["NOAUTH_NOPRIV", "AUTH_NOPRIV", "AUTH_PRIV"]).optional(), privacyProtocolList: z.array(z.enum(["PrivAES128", "PrivAES192", "PrivAES192with3DES", "PrivAES256", "PrivAES256with3DES", "PrivDES", "Priv3DES"])).optional(), enableUserAuthentication: z.boolean().optional(), securityName: z.string().optional(), usmUserAuthenticationProtocol: z.enum(["AuthMD5", "AuthSHA", "AuthHMAC128SHA224", "AuthHMAC192SHA256", "AuthHMAC256SHA384", "AuthHMAC384SHA512"]).optional(), authPassphrase: z.string().optional(), usmUserPrivacyProtocol: z.enum(["PrivAES128", "PrivAES192", "PrivAES192with3DES", "PrivAES256", "PrivAES256with3DES", "PrivDES", "Priv3DES"]).optional(), privPassphrase: z.string().optional(), pduOidForMessage: z.string().optional(), pduOidForTime: z.string().optional(), pduVariableMap: z.record(z.string(), z.string()).optional()}); export const connectionConfigSyslogDTO = z.object({id: z.string().optional(), name: z.string().optional(), description: z.string().optional(), enabled: z.boolean().optional(), projectName: z.string().optional(), circuitBreakerEnabled: z.boolean().optional(), errorThresholdValue: z.number().int().optional(), sleepWindow: z.number().int().optional(), type: z.string(), syslogProtocolType: z.enum(["TCP", "UDP"]).optional(), syslogMessageHostname: z.string().optional(), syslogServerHostname: z.string().optional(), syslogPort: z.number().int().optional(), syslogTimeout: z.number().int().optional(), syslogMessageFormat: z.enum(["RFC_3164", "RFC_5424", "RFC_5425"]).optional(), syslogAppName: z.string().optional(), syslogFacility: z.enum(["KERN", "USER", "MAIL", "DAEMON", "AUTH", "SYSLOG", "LPR", "NEWS", "UUCP", "CRON", "AUTHPRIV", "FTP", "NTP", "AUDIT", "ALERT", "CLOCK", "LOCAL0", "LOCAL1", "LOCAL2", "LOCAL3", "LOCAL4", "LOCAL5", "LOCAL6", "LOCAL7"]).optional(), syslogSeverity: z.enum(["EMERGENCY", "ALERT", "CRITICAL", "ERROR", "WARNING", "NOTICE", "INFORMATIONAL", "DEBUG"]).optional(), syslogSslEnabled: z.boolean().optional(), syslogQueueCapacity: z.number().int().optional(), syslogWriteTimeoutSeconds: z.number().int().optional(), syslogFramingType: z.enum(["AUTO", "NON_TRANSPARENT", "OCTET_COUNTING"]).optional(), syslogConnectionCount: z.number().int().optional(), syslogBufferMemoryBytes: z.number().int().optional(), syslogOfferTimeoutMillis: z.number().int().optional(), syslogBatchFlushFrames: z.number().int().optional(), syslogMaxMessageBytes: z.number().int().optional(), keyStoreId: z.string().optional(), keyStoreName: z.string().optional(), trustStoreId: z.string().optional(), trustStoreName: z.string().optional(), syslogTlsHostnameVerification: z.boolean().optional(), syslogStructuredDataEnabled: z.boolean().optional(), syslogEnterpriseId: z.string().optional()}); export const apinizerBasicHeader = z.object({name: z.string().optional(), value: z.string().optional(), resolvedName: z.string().optional(), resolvedValue: z.string().optional()}); export const connectionConfigWebhookDTO = z.object({id: z.string().optional(), name: z.string().optional(), description: z.string().optional(), enabled: z.boolean().optional(), projectName: z.string().optional(), circuitBreakerEnabled: z.boolean().optional(), errorThresholdValue: z.number().int().optional(), sleepWindow: z.number().int().optional(), type: z.string(), httpMethod: z.enum(["GET", "POST", "PUT", "HEAD", "OPTIONS", "DELETE", "PATCH", "TRACE", "ALL", "QUERY"]).optional(), fullUrl: z.string().optional(), headerList: z.array(apinizerBasicHeader).optional(), timeout: z.number().int().optional(), connectionPoolMaxConnectionPerHost: z.number().int().optional(), connectionPoolMaxConnectionTotal: z.number().int().optional(), webhookTrustStoreId: z.string().optional(), webhookTrustStoreName: z.string().optional(), webhookKeyStoreId: z.string().optional(), webhookKeyStoreName: z.string().optional(), webhookVerifyHostname: z.boolean().optional(), connectTimeoutSeconds: z.number().int().optional(), responseTimeoutSeconds: z.number().int().optional(), connectionRequestTimeoutSeconds: z.number().int().optional(), socketTimeoutSeconds: z.number().int().optional(), writeStallTimeoutSeconds: z.number().int().optional(), webhookBatchEnabled: z.boolean().optional(), webhookBatchMaxEvents: z.number().int().optional(), webhookBatchMaxBytes: z.number().int().optional(), webhookBatchMaxDelayMillis: z.number().int().optional(), webhookProducerThrottleMillis: z.number().int().optional(), webhookBatchBufferMemoryBytes: z.number().int().optional(), webhookGzipEnabled: z.boolean().optional(), webhookMaxRetryCount: z.number().int().optional(), webhookRetryBackoffMillis: z.number().int().optional(), webhookMaxRetryAfterSeconds: z.number().int().optional(), webhookRetryNonIdempotent: z.boolean().optional(), webhookHecModeEnabled: z.boolean().optional(), webhookHecIndex: z.string().optional(), webhookHecSourcetype: z.string().optional(), webhookHecSource: z.string().optional(), webhookHecHost: z.string().optional(), webhookHecUseAck: z.boolean().optional(), webhookHecAckTimeoutSeconds: z.number().int().optional(), webhookHecMaxAckResend: z.number().int().optional()}); export const connectionPoolDefDbDTO = z.object({id: z.string().optional(), name: z.string().optional(), description: z.string().optional(), enabled: z.boolean().optional(), projectName: z.string().optional(), circuitBreakerEnabled: z.boolean().optional(), errorThresholdValue: z.number().int().optional(), sleepWindow: z.number().int().optional(), type: z.string(), dbType: z.enum(["ORACLE", "MYSQL", "POSTGRES", "SQL_SERVER", "SYBASE", "DB2", "APACHE_HIVE", "APACHE_IMPALA", "MONGODB", "TRINO"]).optional(), jdbcUrl: z.string().optional(), useCredentials: z.boolean().optional(), username: z.string().optional(), databaseName: z.string().optional(), password: z.string().optional(), initialPoolSize: z.number().int().optional(), minPoolSize: z.number().int().optional(), maxPoolSize: z.number().int().optional(), incrementCount: z.number().int().optional(), maxStatements: z.number().int().optional(), idleConnectionTestPeriod: z.number().int().optional(), connectionTimeout: z.number().int().optional(), testConnectionOnCheckout: z.boolean().optional(), testConnectionOnCheckin: z.boolean().optional(), maxConnectionAge: z.number().int().optional(), maxIdleTime: z.number().int().optional(), defaultLogSchema: z.string().optional(), logTableSchemaOverrides: z.record(z.string(), z.string()).optional(), logTableNameOverrides: z.record(z.string(), z.string()).optional()}); export const connectionPoolDefLdapDTO = z.object({id: z.string().optional(), name: z.string().optional(), description: z.string().optional(), enabled: z.boolean().optional(), projectName: z.string().optional(), circuitBreakerEnabled: z.boolean().optional(), errorThresholdValue: z.number().int().optional(), sleepWindow: z.number().int().optional(), type: z.string(), serverAddress: z.string().optional(), requireCertificateType: z.enum(["NOT_REQUIRED", "REQUIRED_CN", "REQUIRED_AN_PN"]).optional(), username: z.string().optional(), password: z.string().optional(), customFilter: z.string().optional(), searchScope: z.enum(["OBJECT", "ONE_LEVEL", "SUBTREE"]).optional(), baseDn: z.string().optional(), certificateId: z.string().optional(), certificateName: z.string().optional(), useSsl: z.boolean().optional(), useTls: z.boolean().optional(), connectionTimeout: z.number().int().optional(), directoryVendor: z.enum(["ACTIVE_DIRECTORY", "OPENLDAP", "DS389_FREEIPA", "GENERIC"]).optional()}); export const apiOpsResponseConnection = z.object({status: z.enum(["SUCCESS", "FAILURE"]).optional(), resultMessage: z.string().optional(), resultList: z.array(z.union([connectionConfigApacheActiveMqDTO, connectionConfigElasticsearchDTO, connectionConfigEmailDTO, connectionConfigFtpDTO, connectionConfigGraylogDTO, connectionConfigKafkaDTO, connectionConfigLinuxScriptDTO, connectionConfigLogbackDTO, connectionConfigRabbitMqDTO, connectionConfigSNMPDTO, connectionConfigSyslogDTO, connectionConfigWebhookDTO, connectionPoolDefDbDTO, connectionPoolDefLdapDTO])).optional(), resultCount: z.number().int().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 }; /** * Gets connection by name * * GET /apiops/projects/{projectName}/connections/{connectionName}/ */ export const getApiApiopsProjectsProjectNameConnectionsConnectionName = async (args: GetApiApiopsProjectsProjectNameConnectionsConnectionNameArgs, options?: GetApiApiopsProjectsProjectNameConnectionsConnectionNameOptions) => { const {baseUrl = "http://167.86.118.166:32080", fetch: fetchFn = fetch} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('accept', "application/json") const url = `${baseUrl.replace(/\/+$/, '')}/apiops/projects/${encodeURIComponent(String(args.projectName))}/connections/${encodeURIComponent(String(args.connectionName))}/${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(apiOpsResponseConnection, await res.json()) };