export type EbConfig = { readonly deployment_bucket: string readonly stack?: string readonly settings?: readonly OptionSetting[] readonly resources?: any readonly packages?: any readonly sources?: any readonly files?: any readonly users?: any readonly groups?: any readonly commands?: any readonly container_commands?: any readonly services?: any } export type ElbSettings = { readonly name: string readonly security_group: string readonly rollout_delay_minutes: number } export type Environment = { readonly release: Release readonly health: string } export type OptionSetting = { readonly Namespace: string readonly OptionName: string readonly Value: string } export type PortMapping = { readonly internal: number readonly external: number } export type Release = { readonly image: string readonly tag: string readonly config: string readonly rollout_status?: RolloutStatus } export type RolloutStatus = { readonly num_instances?: number readonly completed_at?: string } export type Service = { readonly name: string readonly state: ServiceState } export type ServiceConfig = { readonly url: string readonly hosted_zone_id: string readonly aws_account_id: string readonly external_elb?: ElbSettings readonly service_role: string readonly image: string readonly port_mappings: readonly PortMapping[] readonly volume_mappings?: readonly VolumeMapping[] readonly run_args: readonly string[] readonly eb: EbConfig readonly remove_unused_after_minutes?: number readonly timestamp?: string } export type ServiceCurrentState = { readonly environments: readonly Environment[] } export type ServiceDesiredState = { readonly current?: Release readonly next?: Release readonly future?: Release } export type ServiceState = { readonly current: ServiceCurrentState readonly desired?: ServiceDesiredState } export type VolumeMapping = { readonly internal: string readonly external: string } export type JSONValue = | string | number | boolean | { readonly [x: string]: JSONValue } | readonly JSONValue[]