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(), 'de.nccloud.common.v0.enums.error_source_type': (): de.nccloud.common.v0.enums.ErrorSourceType => faker.helpers.arrayElement(['pointer', 'parameter', 'header']), 'de.nccloud.common.v0.enums.health_status': (): de.nccloud.common.v0.enums.HealthStatus => faker.helpers.arrayElement(['running', 'starting', 'unhealthy']), 'de.nccloud.common.v0.enums.sort_direction': (): de.nccloud.common.v0.enums.SortDirection => faker.helpers.arrayElement(['asc', 'desc']), 'de.nccloud.common.v0.models.audit': (): de.nccloud.common.v0.models.Audit => ({ created_at: factories.date_time_iso_8601(), created_by: factories.uuid(), updated_at: factories.date_time_iso_8601(), updated_by: factories.uuid(), }), 'de.nccloud.common.v0.models.error_links': (): de.nccloud.common.v0.models.ErrorLinks => ({ about: factories['de.nccloud.common.v0.unions.link'](), type: factories['de.nccloud.common.v0.unions.link'](), }), 'de.nccloud.common.v0.models.error_source': (): de.nccloud.common.v0.models.ErrorSource => ({ type: factories['de.nccloud.common.v0.enums.error_source_type'](), source: factories.string(), }), 'de.nccloud.common.v0.models.generic_error': (): de.nccloud.common.v0.models.GenericError => ({ links: factories['de.nccloud.common.v0.models.error_links'](), code: factories.string(), title: factories.string(), detail: factories.string(), source: factories['de.nccloud.common.v0.models.error_source'](), meta: factories.object(), }), 'de.nccloud.common.v0.models.health_check': (): de.nccloud.common.v0.models.HealthCheck => ({ status: factories['de.nccloud.common.v0.enums.health_status'](), message: factories.string(), }), 'de.nccloud.common.v0.models.link_object': (): de.nccloud.common.v0.models.LinkObject => ({ discriminator: 'link_object', href: factories.string(), title: factories.string(), type: factories.string(), }), 'de.nccloud.common.v0.models.page_response': (): de.nccloud.common.v0.models.PageResponse => ({ offset: factories.integer(), limit: factories.integer(), sort: arrayOf(() => factories['de.nccloud.common.v0.models.sort']()), total_results: factories.long(), total_pages: factories.long(), }), 'de.nccloud.common.v0.models.paging_form': (): de.nccloud.common.v0.models.PagingForm => ({ offset: factories.integer(), limit: factories.integer(), sort: arrayOf(() => factories['de.nccloud.common.v0.models.sort']()), }), 'de.nccloud.common.v0.models.service_info': (): de.nccloud.common.v0.models.ServiceInfo => ({ name: factories.string(), version: factories.string(), uri: factories.string(), title: factories.string(), description: factories.string(), }), 'de.nccloud.common.v0.models.sort': (): de.nccloud.common.v0.models.Sort => ({ property: factories.string(), direction: factories['de.nccloud.common.v0.enums.sort_direction'](), }), 'de.nccloud.common.v0.unions.link': (): de.nccloud.common.v0.unions.Link => { const f = faker.helpers.arrayElement([() => ({ discriminator: 'string' as const, value: factories.string(), }), () => factories['de.nccloud.common.v0.models.link_object']()]); return f(); }, 'de.nccloud.registry.api.v0.enums.service_state': (): de.nccloud.registry.api.v0.enums.ServiceState => faker.helpers.arrayElement(['unavailable', 'available', 'error']), 'de.nccloud.registry.api.v0.enums.service_type': (): de.nccloud.registry.api.v0.enums.ServiceType => faker.helpers.arrayElement(['public', 'internal']), 'de.nccloud.registry.api.v0.models.service': (): de.nccloud.registry.api.v0.models.Service => ({ name: factories.string(), version: factories.string(), state: factories['de.nccloud.registry.api.v0.enums.service_state'](), type: factories['de.nccloud.registry.api.v0.enums.service_type'](), uri: factories.string(), title: factories.string(), description: factories.string(), }), 'de.nccloud.registry.api.v0.models.service_deleted_event': (): de.nccloud.registry.api.v0.models.ServiceDeletedEvent => ({ type: 'service_deleted_event', name: factories.string(), timestamp: factories.date_time_iso_8601(), }), 'de.nccloud.registry.api.v0.models.service_upserted_event': (): de.nccloud.registry.api.v0.models.ServiceUpsertedEvent => ({ type: 'service_upserted_event', service: factories['de.nccloud.registry.api.v0.models.service'](), timestamp: factories.date_time_iso_8601(), }), 'de.nccloud.registry.api.v0.unions.service_event': (): de.nccloud.registry.api.v0.unions.ServiceEvent => { const f = faker.helpers.arrayElement([ () => factories['de.nccloud.registry.api.v0.models.service_upserted_event'](), () => factories['de.nccloud.registry.api.v0.models.service_deleted_event'](), ]); return f(); }, }; export const makeService = () => factories['de.nccloud.registry.api.v0.models.service'](); export const makeServiceDeletedEvent = () => factories['de.nccloud.registry.api.v0.models.service_deleted_event'](); export const makeServiceEvent = () => factories['de.nccloud.registry.api.v0.unions.service_event'](); export const makeServiceState = () => factories['de.nccloud.registry.api.v0.enums.service_state'](); export const makeServiceType = () => factories['de.nccloud.registry.api.v0.enums.service_type'](); export const makeServiceUpsertedEvent = () => factories['de.nccloud.registry.api.v0.models.service_upserted_event']();