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.gilt.ionroller.api.v1.models.eb_config': (): com.gilt.ionroller.api.v1.models.EbConfig => ({ deployment_bucket: factories.string(), stack: factories.string(), settings: arrayOf(() => factories['com.gilt.ionroller.api.v1.models.option_setting']()), resources: factories.object(), packages: factories.object(), sources: factories.object(), files: factories.object(), users: factories.object(), groups: factories.object(), commands: factories.object(), container_commands: factories.object(), services: factories.object(), }), 'com.gilt.ionroller.api.v1.models.elb_settings': (): com.gilt.ionroller.api.v1.models.ElbSettings => ({ name: factories.string(), security_group: factories.string(), rollout_delay_minutes: factories.integer(), }), 'com.gilt.ionroller.api.v1.models.environment': (): com.gilt.ionroller.api.v1.models.Environment => ({ release: factories['com.gilt.ionroller.api.v1.models.release'](), health: factories.string(), }), 'com.gilt.ionroller.api.v1.models.option_setting': (): com.gilt.ionroller.api.v1.models.OptionSetting => ({ Namespace: factories.string(), OptionName: factories.string(), Value: factories.string(), }), 'com.gilt.ionroller.api.v1.models.port_mapping': (): com.gilt.ionroller.api.v1.models.PortMapping => ({ internal: factories.integer(), external: factories.integer(), }), 'com.gilt.ionroller.api.v1.models.release': (): com.gilt.ionroller.api.v1.models.Release => ({ image: factories.string(), tag: factories.string(), config: factories.date_time_iso_8601(), rollout_status: factories['com.gilt.ionroller.api.v1.models.rollout_status'](), }), 'com.gilt.ionroller.api.v1.models.rollout_status': (): com.gilt.ionroller.api.v1.models.RolloutStatus => ({ num_instances: factories.integer(), completed_at: factories.date_time_iso_8601(), }), 'com.gilt.ionroller.api.v1.models.service': (): com.gilt.ionroller.api.v1.models.Service => ({ name: factories.string(), state: factories['com.gilt.ionroller.api.v1.models.service_state'](), }), 'com.gilt.ionroller.api.v1.models.service_config': (): com.gilt.ionroller.api.v1.models.ServiceConfig => ({ url: factories.string(), hosted_zone_id: factories.string(), aws_account_id: factories.string(), external_elb: factories['com.gilt.ionroller.api.v1.models.elb_settings'](), service_role: factories.string(), image: factories.string(), port_mappings: arrayOf(() => factories['com.gilt.ionroller.api.v1.models.port_mapping']()), volume_mappings: arrayOf(() => factories['com.gilt.ionroller.api.v1.models.volume_mapping']()), run_args: arrayOf(() => factories.string()), eb: factories['com.gilt.ionroller.api.v1.models.eb_config'](), remove_unused_after_minutes: factories.long(), timestamp: factories.date_time_iso_8601(), }), 'com.gilt.ionroller.api.v1.models.service_current_state': (): com.gilt.ionroller.api.v1.models.ServiceCurrentState => ({ environments: arrayOf(() => factories['com.gilt.ionroller.api.v1.models.environment']()), }), 'com.gilt.ionroller.api.v1.models.service_desired_state': (): com.gilt.ionroller.api.v1.models.ServiceDesiredState => ({ current: factories['com.gilt.ionroller.api.v1.models.release'](), next: factories['com.gilt.ionroller.api.v1.models.release'](), future: factories['com.gilt.ionroller.api.v1.models.release'](), }), 'com.gilt.ionroller.api.v1.models.service_state': (): com.gilt.ionroller.api.v1.models.ServiceState => ({ current: factories['com.gilt.ionroller.api.v1.models.service_current_state'](), desired: factories['com.gilt.ionroller.api.v1.models.service_desired_state'](), }), 'com.gilt.ionroller.api.v1.models.volume_mapping': (): com.gilt.ionroller.api.v1.models.VolumeMapping => ({ internal: factories.string(), external: factories.string(), }), }; export const makeEbConfig = () => factories['com.gilt.ionroller.api.v1.models.eb_config'](); export const makeElbSettings = () => factories['com.gilt.ionroller.api.v1.models.elb_settings'](); export const makeEnvironment = () => factories['com.gilt.ionroller.api.v1.models.environment'](); export const makeOptionSetting = () => factories['com.gilt.ionroller.api.v1.models.option_setting'](); export const makePortMapping = () => factories['com.gilt.ionroller.api.v1.models.port_mapping'](); export const makeRelease = () => factories['com.gilt.ionroller.api.v1.models.release'](); export const makeRolloutStatus = () => factories['com.gilt.ionroller.api.v1.models.rollout_status'](); export const makeService = () => factories['com.gilt.ionroller.api.v1.models.service'](); export const makeServiceConfig = () => factories['com.gilt.ionroller.api.v1.models.service_config'](); export const makeServiceCurrentState = () => factories['com.gilt.ionroller.api.v1.models.service_current_state'](); export const makeServiceDesiredState = () => factories['com.gilt.ionroller.api.v1.models.service_desired_state'](); export const makeServiceState = () => factories['com.gilt.ionroller.api.v1.models.service_state'](); export const makeVolumeMapping = () => factories['com.gilt.ionroller.api.v1.models.volume_mapping']();