import faker from '@faker-js/faker'; const arrayOf = (f: () => T) => { const length = 3; return Array.from({ length, }, f); }; const objectOf = (f: () => T) => { const keys = ['foo', 'bar', 'qux']; return keys.reduce>((object, key) => { object[key] = f(); return object; }, {}); }; const factories = { boolean: () => faker.datatype.boolean(), date_iso_8601: () => faker.datatype.datetime().toISOString().slice(0, 10), date_time_iso_8601: () => faker.datatype.datetime().toISOString(), decimal: () => faker.datatype.float(), double: () => faker.datatype.float(), integer: () => faker.datatype.number(), json: () => faker.datatype.json(), long: () => faker.datatype.number(), object: () => faker.datatype.json(), string: () => faker.datatype.string(), unit: () => undefined, uuid: () => faker.datatype.uuid(), 'com.teambytes.hipchat.sns.bridge.v1.enums.hipchat_scope': (): com.teambytes.hipchat.sns.bridge.v1.enums.HipchatScope => faker.helpers.arrayElement(['send_message', 'send_notification']), 'com.teambytes.hipchat.sns.bridge.v1.models.error': (): com.teambytes.hipchat.sns.bridge.v1.models.Error => ({ description: factories.string(), }), 'com.teambytes.hipchat.sns.bridge.v1.models.hipchat_api_consumer': (): com.teambytes.hipchat.sns.bridge.v1.models.HipchatApiConsumer => ({ scopes: arrayOf( () => factories['com.teambytes.hipchat.sns.bridge.v1.enums.hipchat_scope'](), ), fromName: factories.string(), }), 'com.teambytes.hipchat.sns.bridge.v1.models.hipchat_capabilities': (): com.teambytes.hipchat.sns.bridge.v1.models.HipchatCapabilities => ({ configurable: factories['com.teambytes.hipchat.sns.bridge.v1.models.hipchat_configuration_page'](), hipchatApiConsumer: factories['com.teambytes.hipchat.sns.bridge.v1.models.hipchat_api_consumer'](), installable: factories['com.teambytes.hipchat.sns.bridge.v1.models.hipchat_installable'](), oauth2Provider: factories['com.teambytes.hipchat.sns.bridge.v1.models.hipchat_oauth2_provider'](), }), 'com.teambytes.hipchat.sns.bridge.v1.models.hipchat_capabilities_descriptor': (): com.teambytes.hipchat.sns.bridge.v1.models.HipchatCapabilitiesDescriptor => ({ name: factories.string(), description: factories.string(), key: factories.string(), apiVersion: factories.string(), capabilities: factories['com.teambytes.hipchat.sns.bridge.v1.models.hipchat_capabilities'](), links: factories['com.teambytes.hipchat.sns.bridge.v1.models.hipchat_links'](), vendor: factories['com.teambytes.hipchat.sns.bridge.v1.models.hipchat_vendor'](), }), 'com.teambytes.hipchat.sns.bridge.v1.models.hipchat_configuration_page': (): com.teambytes.hipchat.sns.bridge.v1.models.HipchatConfigurationPage => ({ allowAccessToRoomAdmins: factories.string(), url: factories.string(), }), 'com.teambytes.hipchat.sns.bridge.v1.models.hipchat_install_data': (): com.teambytes.hipchat.sns.bridge.v1.models.HipchatInstallData => ({ capabilitiesUrl: factories.string(), oauthId: factories.string(), oauthSecret: factories.string(), groupId: factories.long(), roomId: factories.string(), }), 'com.teambytes.hipchat.sns.bridge.v1.models.hipchat_installable': (): com.teambytes.hipchat.sns.bridge.v1.models.HipchatInstallable => ({ callbackUrl: factories.string(), installedUrl: factories.string(), allowGlobal: factories.boolean(), allowRoom: factories.boolean(), }), 'com.teambytes.hipchat.sns.bridge.v1.models.hipchat_links': (): com.teambytes.hipchat.sns.bridge.v1.models.HipchatLinks => ({ homepage: factories.string(), api: factories.string(), self: factories.string(), }), 'com.teambytes.hipchat.sns.bridge.v1.models.hipchat_oauth2_provider': (): com.teambytes.hipchat.sns.bridge.v1.models.HipchatOauth2Provider => ({ tokenUrl: factories.string(), authorizationUrl: factories.string(), }), 'com.teambytes.hipchat.sns.bridge.v1.models.hipchat_vendor': (): com.teambytes.hipchat.sns.bridge.v1.models.HipchatVendor => ({ name: factories.string(), url: factories.string(), }), 'com.teambytes.hipchat.sns.bridge.v1.models.service_info': (): com.teambytes.hipchat.sns.bridge.v1.models.ServiceInfo => ({ name: factories.string(), version: factories.string(), scala_version: factories.string(), sbt_version: factories.string(), build_time: factories.date_time_iso_8601(), }), 'com.teambytes.hipchat.sns.bridge.v1.models.sns_notification': (): com.teambytes.hipchat.sns.bridge.v1.models.SnsNotification => ({ Type: factories.string(), MessageId: factories.string(), TopicArn: factories.string(), Message: factories.string(), Timestamp: factories.string(), SignatureVersion: factories.string(), Signature: factories.string(), SigningCertURL: factories.string(), Token: factories.string(), Subject: factories.string(), SubscribeURL: factories.string(), UnsubscribeURL: factories.string(), }), }; export const makeError = () => factories['com.teambytes.hipchat.sns.bridge.v1.models.error'](); export const makeHipchatApiConsumer = () => factories['com.teambytes.hipchat.sns.bridge.v1.models.hipchat_api_consumer'](); export const makeHipchatCapabilities = () => factories['com.teambytes.hipchat.sns.bridge.v1.models.hipchat_capabilities'](); export const makeHipchatCapabilitiesDescriptor = () => factories['com.teambytes.hipchat.sns.bridge.v1.models.hipchat_capabilities_descriptor'](); export const makeHipchatConfigurationPage = () => factories['com.teambytes.hipchat.sns.bridge.v1.models.hipchat_configuration_page'](); export const makeHipchatInstallData = () => factories['com.teambytes.hipchat.sns.bridge.v1.models.hipchat_install_data'](); export const makeHipchatInstallable = () => factories['com.teambytes.hipchat.sns.bridge.v1.models.hipchat_installable'](); export const makeHipchatLinks = () => factories['com.teambytes.hipchat.sns.bridge.v1.models.hipchat_links'](); export const makeHipchatOauth2Provider = () => factories['com.teambytes.hipchat.sns.bridge.v1.models.hipchat_oauth2_provider'](); export const makeHipchatScope = () => factories['com.teambytes.hipchat.sns.bridge.v1.enums.hipchat_scope'](); export const makeHipchatVendor = () => factories['com.teambytes.hipchat.sns.bridge.v1.models.hipchat_vendor'](); export const makeServiceInfo = () => factories['com.teambytes.hipchat.sns.bridge.v1.models.service_info'](); export const makeSnsNotification = () => factories['com.teambytes.hipchat.sns.bridge.v1.models.sns_notification']();