| 
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -86,42 +86,43 @@ func (s Services) MarshalJSON() ([]byte, error) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				// ServiceConfig is the configuration of one service
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				type ServiceConfig struct {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Name     string   `yaml:"-" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Profiles []string `mapstructure:"profiles" yaml:"profiles,omitempty" json:"profiles,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Build        *BuildConfig `yaml:",omitempty" json:"build,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					BlkioConfig  *BlkioConfig `mapstructure:"blkio_config" yaml:",omitempty" json:"blkio_config,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					CapAdd       []string     `mapstructure:"cap_add" yaml:"cap_add,omitempty" json:"cap_add,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					CapDrop      []string     `mapstructure:"cap_drop" yaml:"cap_drop,omitempty" json:"cap_drop,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					CgroupParent string       `mapstructure:"cgroup_parent" yaml:"cgroup_parent,omitempty" json:"cgroup_parent,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Cgroup       string       `mapstructure:"cgroup" yaml:"cgroup,omitempty" json:"cgroup,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					CPUCount     int64        `mapstructure:"cpu_count" yaml:"cpu_count,omitempty" json:"cpu_count,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					CPUPercent   float32      `mapstructure:"cpu_percent" yaml:"cpu_percent,omitempty" json:"cpu_percent,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					CPUPeriod    int64        `mapstructure:"cpu_period" yaml:"cpu_period,omitempty" json:"cpu_period,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					CPUQuota     int64        `mapstructure:"cpu_quota" yaml:"cpu_quota,omitempty" json:"cpu_quota,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					CPURTPeriod  int64        `mapstructure:"cpu_rt_period" yaml:"cpu_rt_period,omitempty" json:"cpu_rt_period,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					CPURTRuntime int64        `mapstructure:"cpu_rt_runtime" yaml:"cpu_rt_runtime,omitempty" json:"cpu_rt_runtime,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					CPUS         float32      `mapstructure:"cpus" yaml:"cpus,omitempty" json:"cpus,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					CPUSet       string       `mapstructure:"cpuset" yaml:"cpuset,omitempty" json:"cpuset,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					CPUShares    int64        `mapstructure:"cpu_shares" yaml:"cpu_shares,omitempty" json:"cpu_shares,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Profiles []string `yaml:"profiles,omitempty" json:"profiles,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Annotations  Mapping      `yaml:"annotations,omitempty" json:"annotations,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Build        *BuildConfig `yaml:"build,omitempty" json:"build,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					BlkioConfig  *BlkioConfig `yaml:"blkio_config,omitempty" json:"blkio_config,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					CapAdd       []string     `yaml:"cap_add,omitempty" json:"cap_add,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					CapDrop      []string     `yaml:"cap_drop,omitempty" json:"cap_drop,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					CgroupParent string       `yaml:"cgroup_parent,omitempty" json:"cgroup_parent,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Cgroup       string       `yaml:"cgroup,omitempty" json:"cgroup,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					CPUCount     int64        `yaml:"cpu_count,omitempty" json:"cpu_count,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					CPUPercent   float32      `yaml:"cpu_percent,omitempty" json:"cpu_percent,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					CPUPeriod    int64        `yaml:"cpu_period,omitempty" json:"cpu_period,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					CPUQuota     int64        `yaml:"cpu_quota,omitempty" json:"cpu_quota,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					CPURTPeriod  int64        `yaml:"cpu_rt_period,omitempty" json:"cpu_rt_period,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					CPURTRuntime int64        `yaml:"cpu_rt_runtime,omitempty" json:"cpu_rt_runtime,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					CPUS         float32      `yaml:"cpus,omitempty" json:"cpus,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					CPUSet       string       `yaml:"cpuset,omitempty" json:"cpuset,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					CPUShares    int64        `yaml:"cpu_shares,omitempty" json:"cpu_shares,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					// Command for the service containers.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					// If set, overrides COMMAND from the image.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					//
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					// Set to `[]` or an empty string to clear the command from the image.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Command ShellCommand `yaml:",omitempty" json:"command"` // NOTE: we can NOT omitempty for JSON! see ShellCommand type for details.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Configs           []ServiceConfigObjConfig `yaml:",omitempty" json:"configs,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					ContainerName     string                   `mapstructure:"container_name" yaml:"container_name,omitempty" json:"container_name,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					CredentialSpec    *CredentialSpecConfig    `mapstructure:"credential_spec" yaml:"credential_spec,omitempty" json:"credential_spec,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					DependsOn         DependsOnConfig          `mapstructure:"depends_on" yaml:"depends_on,omitempty" json:"depends_on,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Deploy            *DeployConfig            `yaml:",omitempty" json:"deploy,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					DeviceCgroupRules []string                 `mapstructure:"device_cgroup_rules" yaml:"device_cgroup_rules,omitempty" json:"device_cgroup_rules,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Devices           []string                 `yaml:",omitempty" json:"devices,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					DNS               StringList               `yaml:",omitempty" json:"dns,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					DNSOpts           []string                 `mapstructure:"dns_opt" yaml:"dns_opt,omitempty" json:"dns_opt,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					DNSSearch         StringList               `mapstructure:"dns_search" yaml:"dns_search,omitempty" json:"dns_search,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Command ShellCommand `yaml:"command,omitempty" json:"command"` // NOTE: we can NOT omitempty for JSON! see ShellCommand type for details.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Configs           []ServiceConfigObjConfig `yaml:"configs,omitempty" json:"configs,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					ContainerName     string                   `yaml:"container_name,omitempty" json:"container_name,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					CredentialSpec    *CredentialSpecConfig    `yaml:"credential_spec,omitempty" json:"credential_spec,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					DependsOn         DependsOnConfig          `yaml:"depends_on,omitempty" json:"depends_on,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Deploy            *DeployConfig            `yaml:"deploy,omitempty" json:"deploy,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					DeviceCgroupRules []string                 `yaml:"device_cgroup_rules,omitempty" json:"device_cgroup_rules,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Devices           []string                 `yaml:"devices,omitempty" json:"devices,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					DNS               StringList               `yaml:"dns,omitempty" json:"dns,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					DNSOpts           []string                 `yaml:"dns_opt,omitempty" json:"dns_opt,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					DNSSearch         StringList               `yaml:"dns_search,omitempty" json:"dns_search,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Dockerfile        string                   `yaml:"dockerfile,omitempty" json:"dockerfile,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					DomainName        string                   `mapstructure:"domainname" yaml:"domainname,omitempty" json:"domainname,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					DomainName        string                   `yaml:"domainname,omitempty" json:"domainname,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					// Entrypoint for the service containers.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					// If set, overrides ENTRYPOINT from the image.
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
			
			 | 
			 | 
			
				@ -129,64 +130,80 @@ type ServiceConfig struct {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					// Set to `[]` or an empty string to clear the entrypoint from the image.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Entrypoint ShellCommand `yaml:"entrypoint,omitempty" json:"entrypoint"` // NOTE: we can NOT omitempty for JSON! see ShellCommand type for details.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Environment     MappingWithEquals                `yaml:",omitempty" json:"environment,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					EnvFile         StringList                       `mapstructure:"env_file" yaml:"env_file,omitempty" json:"env_file,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Expose          StringOrNumberList               `yaml:",omitempty" json:"expose,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Environment     MappingWithEquals                `yaml:"environment,omitempty" json:"environment,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					EnvFile         StringList                       `yaml:"env_file,omitempty" json:"env_file,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Expose          StringOrNumberList               `yaml:"expose,omitempty" json:"expose,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Extends         *ExtendsConfig                   `yaml:"extends,omitempty" json:"extends,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					ExternalLinks   []string                         `mapstructure:"external_links" yaml:"external_links,omitempty" json:"external_links,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					ExtraHosts      HostsList                        `mapstructure:"extra_hosts" yaml:"extra_hosts,omitempty" json:"extra_hosts,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					GroupAdd        []string                         `mapstructure:"group_add" yaml:"group_add,omitempty" json:"group_add,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Hostname        string                           `yaml:",omitempty" json:"hostname,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					HealthCheck     *HealthCheckConfig               `yaml:",omitempty" json:"healthcheck,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Image           string                           `yaml:",omitempty" json:"image,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Init            *bool                            `yaml:",omitempty" json:"init,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Ipc             string                           `yaml:",omitempty" json:"ipc,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Isolation       string                           `mapstructure:"isolation" yaml:"isolation,omitempty" json:"isolation,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Labels          Labels                           `yaml:",omitempty" json:"labels,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					ExternalLinks   []string                         `yaml:"external_links,omitempty" json:"external_links,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					ExtraHosts      HostsList                        `yaml:"extra_hosts,omitempty" json:"extra_hosts,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					GroupAdd        []string                         `yaml:"group_add,omitempty" json:"group_add,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Hostname        string                           `yaml:"hostname,omitempty" json:"hostname,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					HealthCheck     *HealthCheckConfig               `yaml:"healthcheck,omitempty" json:"healthcheck,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Image           string                           `yaml:"image,omitempty" json:"image,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Init            *bool                            `yaml:"init,omitempty" json:"init,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Ipc             string                           `yaml:"ipc,omitempty" json:"ipc,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Isolation       string                           `yaml:"isolation,omitempty" json:"isolation,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Labels          Labels                           `yaml:"labels,omitempty" json:"labels,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					CustomLabels    Labels                           `yaml:"-" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Links           []string                         `yaml:",omitempty" json:"links,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Logging         *LoggingConfig                   `yaml:",omitempty" json:"logging,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					LogDriver       string                           `mapstructure:"log_driver" yaml:"log_driver,omitempty" json:"log_driver,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					LogOpt          map[string]string                `mapstructure:"log_opt" yaml:"log_opt,omitempty" json:"log_opt,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					MemLimit        UnitBytes                        `mapstructure:"mem_limit" yaml:"mem_limit,omitempty" json:"mem_limit,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					MemReservation  UnitBytes                        `mapstructure:"mem_reservation" yaml:"mem_reservation,omitempty" json:"mem_reservation,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					MemSwapLimit    UnitBytes                        `mapstructure:"memswap_limit" yaml:"memswap_limit,omitempty" json:"memswap_limit,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					MemSwappiness   UnitBytes                        `mapstructure:"mem_swappiness" yaml:"mem_swappiness,omitempty" json:"mem_swappiness,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					MacAddress      string                           `mapstructure:"mac_address" yaml:"mac_address,omitempty" json:"mac_address,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Links           []string                         `yaml:"links,omitempty" json:"links,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Logging         *LoggingConfig                   `yaml:"logging,omitempty" json:"logging,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					LogDriver       string                           `yaml:"log_driver,omitempty" json:"log_driver,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					LogOpt          map[string]string                `yaml:"log_opt,omitempty" json:"log_opt,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					MemLimit        UnitBytes                        `yaml:"mem_limit,omitempty" json:"mem_limit,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					MemReservation  UnitBytes                        `yaml:"mem_reservation,omitempty" json:"mem_reservation,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					MemSwapLimit    UnitBytes                        `yaml:"memswap_limit,omitempty" json:"memswap_limit,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					MemSwappiness   UnitBytes                        `yaml:"mem_swappiness,omitempty" json:"mem_swappiness,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					MacAddress      string                           `yaml:"mac_address,omitempty" json:"mac_address,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Net             string                           `yaml:"net,omitempty" json:"net,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					NetworkMode     string                           `mapstructure:"network_mode" yaml:"network_mode,omitempty" json:"network_mode,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Networks        map[string]*ServiceNetworkConfig `yaml:",omitempty" json:"networks,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					OomKillDisable  bool                             `mapstructure:"oom_kill_disable" yaml:"oom_kill_disable,omitempty" json:"oom_kill_disable,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					OomScoreAdj     int64                            `mapstructure:"oom_score_adj" yaml:"oom_score_adj,omitempty" json:"oom_score_adj,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Pid             string                           `yaml:",omitempty" json:"pid,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					PidsLimit       int64                            `mapstructure:"pids_limit" yaml:"pids_limit,omitempty" json:"pids_limit,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Platform        string                           `yaml:",omitempty" json:"platform,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Ports           []ServicePortConfig              `yaml:",omitempty" json:"ports,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Privileged      bool                             `yaml:",omitempty" json:"privileged,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					PullPolicy      string                           `mapstructure:"pull_policy" yaml:"pull_policy,omitempty" json:"pull_policy,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					ReadOnly        bool                             `mapstructure:"read_only" yaml:"read_only,omitempty" json:"read_only,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Restart         string                           `yaml:",omitempty" json:"restart,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Runtime         string                           `yaml:",omitempty" json:"runtime,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Scale           int                              `yaml:"-" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Secrets         []ServiceSecretConfig            `yaml:",omitempty" json:"secrets,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					SecurityOpt     []string                         `mapstructure:"security_opt" yaml:"security_opt,omitempty" json:"security_opt,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					ShmSize         UnitBytes                        `mapstructure:"shm_size" yaml:"shm_size,omitempty" json:"shm_size,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					StdinOpen       bool                             `mapstructure:"stdin_open" yaml:"stdin_open,omitempty" json:"stdin_open,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					StopGracePeriod *Duration                        `mapstructure:"stop_grace_period" yaml:"stop_grace_period,omitempty" json:"stop_grace_period,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					StopSignal      string                           `mapstructure:"stop_signal" yaml:"stop_signal,omitempty" json:"stop_signal,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Sysctls         Mapping                          `yaml:",omitempty" json:"sysctls,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Tmpfs           StringList                       `yaml:",omitempty" json:"tmpfs,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Tty             bool                             `mapstructure:"tty" yaml:"tty,omitempty" json:"tty,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Ulimits         map[string]*UlimitsConfig        `yaml:",omitempty" json:"ulimits,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					User            string                           `yaml:",omitempty" json:"user,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					UserNSMode      string                           `mapstructure:"userns_mode" yaml:"userns_mode,omitempty" json:"userns_mode,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					NetworkMode     string                           `yaml:"network_mode,omitempty" json:"network_mode,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Networks        map[string]*ServiceNetworkConfig `yaml:"networks,omitempty" json:"networks,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					OomKillDisable  bool                             `yaml:"oom_kill_disable,omitempty" json:"oom_kill_disable,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					OomScoreAdj     int64                            `yaml:"oom_score_adj,omitempty" json:"oom_score_adj,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Pid             string                           `yaml:"pid,omitempty" json:"pid,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					PidsLimit       int64                            `yaml:"pids_limit,omitempty" json:"pids_limit,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Platform        string                           `yaml:"platform,omitempty" json:"platform,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Ports           []ServicePortConfig              `yaml:"ports,omitempty" json:"ports,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Privileged      bool                             `yaml:"privileged,omitempty" json:"privileged,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					PullPolicy      string                           `yaml:"pull_policy,omitempty" json:"pull_policy,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					ReadOnly        bool                             `yaml:"read_only,omitempty" json:"read_only,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Restart         string                           `yaml:"restart,omitempty" json:"restart,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Runtime         string                           `yaml:"runtime,omitempty" json:"runtime,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Scale           int                              `yaml:"scale,omitempty" json:"scale,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Secrets         []ServiceSecretConfig            `yaml:"secrets,omitempty" json:"secrets,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					SecurityOpt     []string                         `yaml:"security_opt,omitempty" json:"security_opt,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					ShmSize         UnitBytes                        `yaml:"shm_size,omitempty" json:"shm_size,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					StdinOpen       bool                             `yaml:"stdin_open,omitempty" json:"stdin_open,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					StopGracePeriod *Duration                        `yaml:"stop_grace_period,omitempty" json:"stop_grace_period,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					StopSignal      string                           `yaml:"stop_signal,omitempty" json:"stop_signal,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Sysctls         Mapping                          `yaml:"sysctls,omitempty" json:"sysctls,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Tmpfs           StringList                       `yaml:"tmpfs,omitempty" json:"tmpfs,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Tty             bool                             `yaml:"tty,omitempty" json:"tty,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Ulimits         map[string]*UlimitsConfig        `yaml:"ulimits,omitempty" json:"ulimits,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					User            string                           `yaml:"user,omitempty" json:"user,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					UserNSMode      string                           `yaml:"userns_mode,omitempty" json:"userns_mode,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Uts             string                           `yaml:"uts,omitempty" json:"uts,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					VolumeDriver    string                           `mapstructure:"volume_driver" yaml:"volume_driver,omitempty" json:"volume_driver,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Volumes         []ServiceVolumeConfig            `yaml:",omitempty" json:"volumes,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					VolumesFrom     []string                         `mapstructure:"volumes_from" yaml:"volumes_from,omitempty" json:"volumes_from,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					WorkingDir      string                           `mapstructure:"working_dir" yaml:"working_dir,omitempty" json:"working_dir,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					VolumeDriver    string                           `yaml:"volume_driver,omitempty" json:"volume_driver,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Volumes         []ServiceVolumeConfig            `yaml:"volumes,omitempty" json:"volumes,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					VolumesFrom     []string                         `yaml:"volumes_from,omitempty" json:"volumes_from,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					WorkingDir      string                           `yaml:"working_dir,omitempty" json:"working_dir,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Extensions Extensions `mapstructure:"#extensions" yaml:",inline" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Extensions Extensions `yaml:"#extensions,inline" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				// MarshalYAML makes ServiceConfig implement yaml.Marshaller
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				func (s ServiceConfig) MarshalYAML() (interface{}, error) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					type t ServiceConfig
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					value := t(s)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					value.Scale = 0 // deprecated, but default value "1" doesn't match omitempty
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					return value, nil
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				// MarshalJSON makes SSHKey implement json.Marshaller
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				func (s ServiceConfig) MarshalJSON() ([]byte, error) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					type t ServiceConfig
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					value := t(s)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					value.Scale = 0 // deprecated, but default value "1" doesn't match omitempty
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					return json.Marshal(value)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				// NetworksByPriority return the service networks IDs sorted according to Priority
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -294,39 +311,39 @@ func (s set) toSlice() []string {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				// BuildConfig is a type for build
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				type BuildConfig struct {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Context            string                `yaml:",omitempty" json:"context,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Dockerfile         string                `yaml:",omitempty" json:"dockerfile,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					DockerfileInline   string                `mapstructure:"dockerfile_inline,omitempty" yaml:"dockerfile_inline,omitempty" json:"dockerfile_inline,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Args               MappingWithEquals     `yaml:",omitempty" json:"args,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Context            string                `yaml:"context,omitempty" json:"context,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Dockerfile         string                `yaml:"dockerfile,omitempty" json:"dockerfile,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					DockerfileInline   string                `yaml:"dockerfile_inline,omitempty" json:"dockerfile_inline,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Args               MappingWithEquals     `yaml:"args,omitempty" json:"args,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					SSH                SSHConfig             `yaml:"ssh,omitempty" json:"ssh,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Labels             Labels                `yaml:",omitempty" json:"labels,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					CacheFrom          StringList            `mapstructure:"cache_from" yaml:"cache_from,omitempty" json:"cache_from,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					CacheTo            StringList            `mapstructure:"cache_to" yaml:"cache_to,omitempty" json:"cache_to,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					NoCache            bool                  `mapstructure:"no_cache" yaml:"no_cache,omitempty" json:"no_cache,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					AdditionalContexts Mapping               `mapstructure:"additional_contexts" yaml:"additional_contexts,omitempty" json:"additional_contexts,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Pull               bool                  `mapstructure:"pull" yaml:"pull,omitempty" json:"pull,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					ExtraHosts         HostsList             `mapstructure:"extra_hosts" yaml:"extra_hosts,omitempty" json:"extra_hosts,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Isolation          string                `yaml:",omitempty" json:"isolation,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Network            string                `yaml:",omitempty" json:"network,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Target             string                `yaml:",omitempty" json:"target,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Secrets            []ServiceSecretConfig `yaml:",omitempty" json:"secrets,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Tags               StringList            `mapstructure:"tags" yaml:"tags,omitempty" json:"tags,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Platforms          StringList            `mapstructure:"platforms" yaml:"platforms,omitempty" json:"platforms,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Privileged         bool                  `yaml:",omitempty" json:"privileged,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Extensions Extensions `mapstructure:"#extensions" yaml:",inline" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Labels             Labels                `yaml:"labels,omitempty" json:"labels,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					CacheFrom          StringList            `yaml:"cache_from,omitempty" json:"cache_from,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					CacheTo            StringList            `yaml:"cache_to,omitempty" json:"cache_to,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					NoCache            bool                  `yaml:"no_cache,omitempty" json:"no_cache,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					AdditionalContexts Mapping               `yaml:"additional_contexts,omitempty" json:"additional_contexts,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Pull               bool                  `yaml:"pull,omitempty" json:"pull,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					ExtraHosts         HostsList             `yaml:"extra_hosts,omitempty" json:"extra_hosts,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Isolation          string                `yaml:"isolation,omitempty" json:"isolation,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Network            string                `yaml:"network,omitempty" json:"network,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Target             string                `yaml:"target,omitempty" json:"target,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Secrets            []ServiceSecretConfig `yaml:"secrets,omitempty" json:"secrets,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Tags               StringList            `yaml:"tags,omitempty" json:"tags,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Platforms          StringList            `yaml:"platforms,omitempty" json:"platforms,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Privileged         bool                  `yaml:"privileged,omitempty" json:"privileged,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Extensions Extensions `yaml:"#extensions,inline" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				// BlkioConfig define blkio config
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				type BlkioConfig struct {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Weight          uint16           `yaml:",omitempty" json:"weight,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					WeightDevice    []WeightDevice   `mapstructure:"weight_device" yaml:",omitempty" json:"weight_device,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					DeviceReadBps   []ThrottleDevice `mapstructure:"device_read_bps" yaml:",omitempty" json:"device_read_bps,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					DeviceReadIOps  []ThrottleDevice `mapstructure:"device_read_iops" yaml:",omitempty" json:"device_read_iops,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					DeviceWriteBps  []ThrottleDevice `mapstructure:"device_write_bps" yaml:",omitempty" json:"device_write_bps,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					DeviceWriteIOps []ThrottleDevice `mapstructure:"device_write_iops" yaml:",omitempty" json:"device_write_iops,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Weight          uint16           `yaml:"weight,omitempty" json:"weight,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					WeightDevice    []WeightDevice   `yaml:"weight_device,omitempty" json:"weight_device,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					DeviceReadBps   []ThrottleDevice `yaml:"device_read_bps,omitempty" json:"device_read_bps,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					DeviceReadIOps  []ThrottleDevice `yaml:"device_read_iops,omitempty" json:"device_read_iops,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					DeviceWriteBps  []ThrottleDevice `yaml:"device_write_bps,omitempty" json:"device_write_bps,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					DeviceWriteIOps []ThrottleDevice `yaml:"device_write_iops,omitempty" json:"device_write_iops,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Extensions Extensions `mapstructure:"#extensions" yaml:",inline" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Extensions Extensions `yaml:"#extensions,inline" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				// WeightDevice is a structure that holds device:weight pair
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
			
			 | 
			 | 
			
				@ -334,7 +351,7 @@ type WeightDevice struct {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Path   string
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Weight uint16
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Extensions Extensions `mapstructure:"#extensions" yaml:",inline" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Extensions Extensions `yaml:"#extensions,inline" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				// ThrottleDevice is a structure that holds device:rate_per_second pair
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
			
			 | 
			 | 
			
				@ -342,7 +359,7 @@ type ThrottleDevice struct {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Path string
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Rate UnitBytes
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Extensions Extensions `mapstructure:"#extensions" yaml:",inline" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Extensions Extensions `yaml:"#extensions,inline" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				// ShellCommand is a string or list of string args.
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -562,37 +579,37 @@ func (h HostsList) MarshalJSON() ([]byte, error) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				// LoggingConfig the logging configuration for a service
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				type LoggingConfig struct {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Driver  string            `yaml:",omitempty" json:"driver,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Options map[string]string `yaml:",omitempty" json:"options,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Driver  string            `yaml:"driver,omitempty" json:"driver,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Options map[string]string `yaml:"options,omitempty" json:"options,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Extensions Extensions `mapstructure:"#extensions" yaml:",inline" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Extensions Extensions `yaml:"#extensions,inline" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				// DeployConfig the deployment configuration for a service
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				type DeployConfig struct {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Mode           string         `yaml:",omitempty" json:"mode,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Replicas       *uint64        `yaml:",omitempty" json:"replicas,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Labels         Labels         `yaml:",omitempty" json:"labels,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					UpdateConfig   *UpdateConfig  `mapstructure:"update_config" yaml:"update_config,omitempty" json:"update_config,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					RollbackConfig *UpdateConfig  `mapstructure:"rollback_config" yaml:"rollback_config,omitempty" json:"rollback_config,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Resources      Resources      `yaml:",omitempty" json:"resources,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					RestartPolicy  *RestartPolicy `mapstructure:"restart_policy" yaml:"restart_policy,omitempty" json:"restart_policy,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Placement      Placement      `yaml:",omitempty" json:"placement,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					EndpointMode   string         `mapstructure:"endpoint_mode" yaml:"endpoint_mode,omitempty" json:"endpoint_mode,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Mode           string         `yaml:"mode,omitempty" json:"mode,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Replicas       *uint64        `yaml:"replicas,omitempty" json:"replicas,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Labels         Labels         `yaml:"labels,omitempty" json:"labels,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					UpdateConfig   *UpdateConfig  `yaml:"update_config,omitempty" json:"update_config,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					RollbackConfig *UpdateConfig  `yaml:"rollback_config,omitempty" json:"rollback_config,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Resources      Resources      `yaml:"resources,omitempty" json:"resources,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					RestartPolicy  *RestartPolicy `yaml:"restart_policy,omitempty" json:"restart_policy,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Placement      Placement      `yaml:"placement,omitempty" json:"placement,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					EndpointMode   string         `yaml:"endpoint_mode,omitempty" json:"endpoint_mode,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Extensions Extensions `mapstructure:"#extensions" yaml:",inline" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Extensions Extensions `yaml:"#extensions,inline" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				// HealthCheckConfig the healthcheck configuration for a service
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				type HealthCheckConfig struct {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Test        HealthCheckTest `yaml:",omitempty" json:"test,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Timeout     *Duration       `yaml:",omitempty" json:"timeout,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Interval    *Duration       `yaml:",omitempty" json:"interval,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Retries     *uint64         `yaml:",omitempty" json:"retries,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					StartPeriod *Duration       `mapstructure:"start_period" yaml:"start_period,omitempty" json:"start_period,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Disable     bool            `yaml:",omitempty" json:"disable,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Test        HealthCheckTest `yaml:"test,omitempty" json:"test,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Timeout     *Duration       `yaml:"timeout,omitempty" json:"timeout,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Interval    *Duration       `yaml:"interval,omitempty" json:"interval,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Retries     *uint64         `yaml:"retries,omitempty" json:"retries,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					StartPeriod *Duration       `yaml:"start_period,omitempty" json:"start_period,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Disable     bool            `yaml:"disable,omitempty" json:"disable,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Extensions Extensions `mapstructure:"#extensions" yaml:",inline" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Extensions Extensions `yaml:"#extensions,inline" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				// HealthCheckTest is the command run to test the health of a service
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
			
			 | 
			 | 
			
				@ -600,49 +617,49 @@ type HealthCheckTest []string
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				// UpdateConfig the service update configuration
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				type UpdateConfig struct {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Parallelism     *uint64  `yaml:",omitempty" json:"parallelism,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Delay           Duration `yaml:",omitempty" json:"delay,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					FailureAction   string   `mapstructure:"failure_action" yaml:"failure_action,omitempty" json:"failure_action,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Monitor         Duration `yaml:",omitempty" json:"monitor,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					MaxFailureRatio float32  `mapstructure:"max_failure_ratio" yaml:"max_failure_ratio,omitempty" json:"max_failure_ratio,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Order           string   `yaml:",omitempty" json:"order,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Parallelism     *uint64  `yaml:"parallelism,omitempty" json:"parallelism,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Delay           Duration `yaml:"delay,omitempty" json:"delay,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					FailureAction   string   `yaml:"failure_action,omitempty" json:"failure_action,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Monitor         Duration `yaml:"monitor,omitempty" json:"monitor,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					MaxFailureRatio float32  `yaml:"max_failure_ratio,omitempty" json:"max_failure_ratio,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Order           string   `yaml:"order,omitempty" json:"order,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Extensions Extensions `mapstructure:"#extensions" yaml:",inline" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Extensions Extensions `yaml:"#extensions,inline" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				// Resources the resource limits and reservations
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				type Resources struct {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Limits       *Resource `yaml:",omitempty" json:"limits,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Reservations *Resource `yaml:",omitempty" json:"reservations,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Limits       *Resource `yaml:"limits,omitempty" json:"limits,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Reservations *Resource `yaml:"reservations,omitempty" json:"reservations,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Extensions Extensions `mapstructure:"#extensions" yaml:",inline" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Extensions Extensions `yaml:"#extensions,inline" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				// Resource is a resource to be limited or reserved
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				type Resource struct {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					// TODO: types to convert from units and ratios
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					NanoCPUs         string            `mapstructure:"cpus" yaml:"cpus,omitempty" json:"cpus,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					MemoryBytes      UnitBytes         `mapstructure:"memory" yaml:"memory,omitempty" json:"memory,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					PIds             int64             `mapstructure:"pids" yaml:"pids,omitempty" json:"pids,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Devices          []DeviceRequest   `mapstructure:"devices" yaml:"devices,omitempty" json:"devices,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					GenericResources []GenericResource `mapstructure:"generic_resources" yaml:"generic_resources,omitempty" json:"generic_resources,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					NanoCPUs         string            `yaml:"cpus,omitempty" json:"cpus,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					MemoryBytes      UnitBytes         `yaml:"memory,omitempty" json:"memory,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Pids             int64             `yaml:"pids,omitempty" json:"pids,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Devices          []DeviceRequest   `yaml:"devices,omitempty" json:"devices,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					GenericResources []GenericResource `yaml:"generic_resources,omitempty" json:"generic_resources,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Extensions Extensions `mapstructure:"#extensions" yaml:",inline" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Extensions Extensions `yaml:"#extensions,inline" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				type DeviceRequest struct {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Capabilities []string `mapstructure:"capabilities" yaml:"capabilities,omitempty" json:"capabilities,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Driver       string   `mapstructure:"driver" yaml:"driver,omitempty" json:"driver,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Count        int64    `mapstructure:"count" yaml:"count,omitempty" json:"count,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					IDs          []string `mapstructure:"device_ids" yaml:"device_ids,omitempty" json:"device_ids,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Capabilities []string `yaml:"capabilities,omitempty" json:"capabilities,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Driver       string   `yaml:"driver,omitempty" json:"driver,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Count        int64    `yaml:"count,omitempty" json:"count,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					IDs          []string `yaml:"device_ids,omitempty" json:"device_ids,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				// GenericResource represents a "user defined" resource which can
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				// only be an integer (e.g: SSD=3) for a service
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				type GenericResource struct {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					DiscreteResourceSpec *DiscreteGenericResource `mapstructure:"discrete_resource_spec" yaml:"discrete_resource_spec,omitempty" json:"discrete_resource_spec,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					DiscreteResourceSpec *DiscreteGenericResource `yaml:"discrete_resource_spec,omitempty" json:"discrete_resource_spec,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Extensions Extensions `mapstructure:"#extensions" yaml:",inline" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Extensions Extensions `yaml:"#extensions,inline" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				// DiscreteGenericResource represents a "user defined" resource which is defined
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
			
			 | 
			 | 
			
				@ -653,7 +670,7 @@ type DiscreteGenericResource struct {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Kind  string `json:"kind"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Value int64  `json:"value"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Extensions Extensions `mapstructure:"#extensions" yaml:",inline" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Extensions Extensions `yaml:"#extensions,inline" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				// UnitBytes is the bytes type
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
			
			 | 
			 | 
			
				@ -671,50 +688,50 @@ func (u UnitBytes) MarshalJSON() ([]byte, error) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				// RestartPolicy the service restart policy
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				type RestartPolicy struct {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Condition   string    `yaml:",omitempty" json:"condition,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Delay       *Duration `yaml:",omitempty" json:"delay,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					MaxAttempts *uint64   `mapstructure:"max_attempts" yaml:"max_attempts,omitempty" json:"max_attempts,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Window      *Duration `yaml:",omitempty" json:"window,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Condition   string    `yaml:"condition,omitempty" json:"condition,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Delay       *Duration `yaml:"delay,omitempty" json:"delay,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					MaxAttempts *uint64   `yaml:"max_attempts,omitempty" json:"max_attempts,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Window      *Duration `yaml:"window,omitempty" json:"window,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Extensions Extensions `mapstructure:"#extensions" yaml:",inline" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Extensions Extensions `yaml:"#extensions,inline" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				// Placement constraints for the service
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				type Placement struct {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Constraints []string               `yaml:",omitempty" json:"constraints,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Preferences []PlacementPreferences `yaml:",omitempty" json:"preferences,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					MaxReplicas uint64                 `mapstructure:"max_replicas_per_node" yaml:"max_replicas_per_node,omitempty" json:"max_replicas_per_node,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Constraints []string               `yaml:"constraints,omitempty" json:"constraints,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Preferences []PlacementPreferences `yaml:"preferences,omitempty" json:"preferences,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					MaxReplicas uint64                 `yaml:"max_replicas_per_node,omitempty" json:"max_replicas_per_node,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Extensions Extensions `mapstructure:"#extensions" yaml:",inline" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Extensions Extensions `yaml:"#extensions,inline" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				// PlacementPreferences is the preferences for a service placement
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				type PlacementPreferences struct {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Spread string `yaml:",omitempty" json:"spread,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Spread string `yaml:"spread,omitempty" json:"spread,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Extensions Extensions `mapstructure:"#extensions" yaml:",inline" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Extensions Extensions `yaml:"#extensions,inline" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				// ServiceNetworkConfig is the network configuration for a service
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				type ServiceNetworkConfig struct {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Priority     int      `yaml:",omitempty" json:"priority,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Aliases      []string `yaml:",omitempty" json:"aliases,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Ipv4Address  string   `mapstructure:"ipv4_address" yaml:"ipv4_address,omitempty" json:"ipv4_address,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Ipv6Address  string   `mapstructure:"ipv6_address" yaml:"ipv6_address,omitempty" json:"ipv6_address,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					LinkLocalIPs []string `mapstructure:"link_local_ips" yaml:"link_local_ips,omitempty" json:"link_local_ips,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Priority     int      `yaml:"priority,omitempty" json:"priority,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Aliases      []string `yaml:"aliases,omitempty" json:"aliases,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Ipv4Address  string   `yaml:"ipv4_address,omitempty" json:"ipv4_address,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Ipv6Address  string   `yaml:"ipv6_address,omitempty" json:"ipv6_address,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					LinkLocalIPs []string `yaml:"link_local_ips,omitempty" json:"link_local_ips,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Extensions Extensions `mapstructure:"#extensions" yaml:",inline" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Extensions Extensions `yaml:"#extensions,inline" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				// ServicePortConfig is the port configuration for a service
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				type ServicePortConfig struct {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Mode      string `yaml:",omitempty" json:"mode,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					HostIP    string `mapstructure:"host_ip" yaml:"host_ip,omitempty" json:"host_ip,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Target    uint32 `yaml:",omitempty" json:"target,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Published string `yaml:",omitempty" json:"published,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Protocol  string `yaml:",omitempty" json:"protocol,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Mode      string `yaml:"mode,omitempty" json:"mode,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					HostIP    string `yaml:"host_ip,omitempty" json:"host_ip,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Target    uint32 `yaml:"target,omitempty" json:"target,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Published string `yaml:"published,omitempty" json:"published,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Protocol  string `yaml:"protocol,omitempty" json:"protocol,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Extensions Extensions `mapstructure:"#extensions" yaml:",inline" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Extensions Extensions `yaml:"#extensions,inline" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				// ParsePortConfig parse short syntax for service port configuration
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -758,16 +775,16 @@ func convertPortToPortConfig(port nat.Port, portBindings map[nat.Port][]nat.Port
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				// ServiceVolumeConfig are references to a volume used by a service
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				type ServiceVolumeConfig struct {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Type        string               `yaml:",omitempty" json:"type,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Source      string               `yaml:",omitempty" json:"source,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Target      string               `yaml:",omitempty" json:"target,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					ReadOnly    bool                 `mapstructure:"read_only" yaml:"read_only,omitempty" json:"read_only,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Consistency string               `yaml:",omitempty" json:"consistency,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Bind        *ServiceVolumeBind   `yaml:",omitempty" json:"bind,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Volume      *ServiceVolumeVolume `yaml:",omitempty" json:"volume,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Tmpfs       *ServiceVolumeTmpfs  `yaml:",omitempty" json:"tmpfs,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Type        string               `yaml:"type,omitempty" json:"type,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Source      string               `yaml:"source,omitempty" json:"source,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Target      string               `yaml:"target,omitempty" json:"target,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					ReadOnly    bool                 `yaml:"read_only,omitempty" json:"read_only,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Consistency string               `yaml:"consistency,omitempty" json:"consistency,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Bind        *ServiceVolumeBind   `yaml:"bind,omitempty" json:"bind,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Volume      *ServiceVolumeVolume `yaml:"volume,omitempty" json:"volume,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Tmpfs       *ServiceVolumeTmpfs  `yaml:"tmpfs,omitempty" json:"tmpfs,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Extensions Extensions `mapstructure:"#extensions" yaml:",inline" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Extensions Extensions `yaml:"#extensions,inline" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				// String render ServiceVolumeConfig as a volume string, one can parse back using loader.ParseVolume
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -807,11 +824,11 @@ const (
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				// ServiceVolumeBind are options for a service volume of type bind
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				type ServiceVolumeBind struct {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					SELinux        string `mapstructure:"selinux" yaml:",omitempty" json:"selinux,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Propagation    string `yaml:",omitempty" json:"propagation,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					CreateHostPath bool   `mapstructure:"create_host_path" yaml:"create_host_path,omitempty" json:"create_host_path,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					SELinux        string `yaml:"selinux,omitempty" json:"selinux,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Propagation    string `yaml:"propagation,omitempty" json:"propagation,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					CreateHostPath bool   `yaml:"create_host_path,omitempty" json:"create_host_path,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Extensions Extensions `mapstructure:"#extensions" yaml:",inline" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Extensions Extensions `yaml:"#extensions,inline" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				// SELinux represents the SELinux re-labeling options.
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -840,29 +857,29 @@ const (
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				// ServiceVolumeVolume are options for a service volume of type volume
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				type ServiceVolumeVolume struct {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					NoCopy bool `mapstructure:"nocopy" yaml:"nocopy,omitempty" json:"nocopy,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					NoCopy bool `yaml:"nocopy,omitempty" json:"nocopy,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Extensions Extensions `mapstructure:"#extensions" yaml:",inline" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Extensions Extensions `yaml:"#extensions,inline" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				// ServiceVolumeTmpfs are options for a service volume of type tmpfs
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				type ServiceVolumeTmpfs struct {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Size UnitBytes `yaml:",omitempty" json:"size,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Size UnitBytes `yaml:"size,omitempty" json:"size,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Mode uint32 `yaml:",omitempty" json:"mode,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Mode uint32 `yaml:"mode,omitempty" json:"mode,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Extensions Extensions `mapstructure:"#extensions" yaml:",inline" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Extensions Extensions `yaml:"#extensions,inline" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				// FileReferenceConfig for a reference to a swarm file object
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				type FileReferenceConfig struct {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Source string  `yaml:",omitempty" json:"source,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Target string  `yaml:",omitempty" json:"target,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					UID    string  `yaml:",omitempty" json:"uid,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					GID    string  `yaml:",omitempty" json:"gid,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Mode   *uint32 `yaml:",omitempty" json:"mode,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Source string  `yaml:"source,omitempty" json:"source,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Target string  `yaml:"target,omitempty" json:"target,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					UID    string  `yaml:"uid,omitempty" json:"uid,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					GID    string  `yaml:"gid,omitempty" json:"gid,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Mode   *uint32 `yaml:"mode,omitempty" json:"mode,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Extensions Extensions `mapstructure:"#extensions" yaml:",inline" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Extensions Extensions `yaml:"#extensions,inline" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				// ServiceConfigObjConfig is the config obj configuration for a service
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
			
			 | 
			 | 
			
				@ -873,11 +890,11 @@ type ServiceSecretConfig FileReferenceConfig
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				// UlimitsConfig the ulimit configuration
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				type UlimitsConfig struct {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Single int `yaml:",omitempty" json:"single,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Soft   int `yaml:",omitempty" json:"soft,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Hard   int `yaml:",omitempty" json:"hard,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Single int `yaml:"single,omitempty" json:"single,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Soft   int `yaml:"soft,omitempty" json:"soft,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Hard   int `yaml:"hard,omitempty" json:"hard,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Extensions Extensions `mapstructure:"#extensions" yaml:",inline" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Extensions Extensions `yaml:"#extensions,inline" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				// MarshalYAML makes UlimitsConfig implement yaml.Marshaller
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -905,51 +922,51 @@ func (u *UlimitsConfig) MarshalJSON() ([]byte, error) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				// NetworkConfig for a network
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				type NetworkConfig struct {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Name       string            `yaml:",omitempty" json:"name,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Driver     string            `yaml:",omitempty" json:"driver,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					DriverOpts map[string]string `mapstructure:"driver_opts" yaml:"driver_opts,omitempty" json:"driver_opts,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Ipam       IPAMConfig        `yaml:",omitempty" json:"ipam,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					External   External          `yaml:",omitempty" json:"external,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Internal   bool              `yaml:",omitempty" json:"internal,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Attachable bool              `yaml:",omitempty" json:"attachable,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Labels     Labels            `yaml:",omitempty" json:"labels,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					EnableIPv6 bool              `mapstructure:"enable_ipv6" yaml:"enable_ipv6,omitempty" json:"enable_ipv6,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Extensions Extensions        `mapstructure:"#extensions" yaml:",inline" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Name       string            `yaml:"name,omitempty" json:"name,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Driver     string            `yaml:"driver,omitempty" json:"driver,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					DriverOpts map[string]string `yaml:"driver_opts,omitempty" json:"driver_opts,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Ipam       IPAMConfig        `yaml:"ipam,omitempty" json:"ipam,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					External   External          `yaml:"external,omitempty" json:"external,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Internal   bool              `yaml:"internal,omitempty" json:"internal,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Attachable bool              `yaml:"attachable,omitempty" json:"attachable,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Labels     Labels            `yaml:"labels,omitempty" json:"labels,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					EnableIPv6 bool              `yaml:"enable_ipv6,omitempty" json:"enable_ipv6,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Extensions Extensions        `yaml:"#extensions,inline" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				// IPAMConfig for a network
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				type IPAMConfig struct {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Driver     string      `yaml:",omitempty" json:"driver,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Config     []*IPAMPool `yaml:",omitempty" json:"config,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Extensions Extensions  `mapstructure:"#extensions" yaml:",inline" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Driver     string      `yaml:"driver,omitempty" json:"driver,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Config     []*IPAMPool `yaml:"config,omitempty" json:"config,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Extensions Extensions  `yaml:"#extensions,inline" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				// IPAMPool for a network
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				type IPAMPool struct {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Subnet             string                 `yaml:",omitempty" json:"subnet,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Gateway            string                 `yaml:",omitempty" json:"gateway,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					IPRange            string                 `mapstructure:"ip_range" yaml:"ip_range,omitempty" json:"ip_range,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					AuxiliaryAddresses map[string]string      `mapstructure:"aux_addresses" yaml:"aux_addresses,omitempty" json:"aux_addresses,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Subnet             string                 `yaml:"subnet,omitempty" json:"subnet,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Gateway            string                 `yaml:"gateway,omitempty" json:"gateway,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					IPRange            string                 `yaml:"ip_range,omitempty" json:"ip_range,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					AuxiliaryAddresses map[string]string      `yaml:"aux_addresses,omitempty" json:"aux_addresses,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Extensions         map[string]interface{} `yaml:",inline" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				// VolumeConfig for a volume
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				type VolumeConfig struct {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Name       string            `yaml:",omitempty" json:"name,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Driver     string            `yaml:",omitempty" json:"driver,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					DriverOpts map[string]string `mapstructure:"driver_opts" yaml:"driver_opts,omitempty" json:"driver_opts,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					External   External          `yaml:",omitempty" json:"external,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Labels     Labels            `yaml:",omitempty" json:"labels,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Extensions Extensions        `mapstructure:"#extensions" yaml:",inline" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Name       string            `yaml:"name,omitempty" json:"name,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Driver     string            `yaml:"driver,omitempty" json:"driver,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					DriverOpts map[string]string `yaml:"driver_opts,omitempty" json:"driver_opts,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					External   External          `yaml:"external,omitempty" json:"external,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Labels     Labels            `yaml:"labels,omitempty" json:"labels,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Extensions Extensions        `yaml:"#extensions,inline" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				// External identifies a Volume or Network as a reference to a resource that is
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				// not managed, and should already exist.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				// External.name is deprecated and replaced by Volume.name
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				type External struct {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Name       string     `yaml:",omitempty" json:"name,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					External   bool       `yaml:",omitempty" json:"external,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Extensions Extensions `mapstructure:"#extensions" yaml:",inline" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Name       string     `yaml:"name,omitempty" json:"name,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					External   bool       `yaml:"external,omitempty" json:"external,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Extensions Extensions `yaml:"#extensions,inline" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				// MarshalYAML makes External implement yaml.Marshaller
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
			
			 | 
			 | 
			
				@ -970,23 +987,23 @@ func (e External) MarshalJSON() ([]byte, error) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				// CredentialSpecConfig for credential spec on Windows
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				type CredentialSpecConfig struct {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Config     string     `yaml:",omitempty" json:"config,omitempty"` // Config was added in API v1.40
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					File       string     `yaml:",omitempty" json:"file,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Registry   string     `yaml:",omitempty" json:"registry,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Extensions Extensions `mapstructure:"#extensions" yaml:",inline" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Config     string     `yaml:"config,omitempty" json:"config,omitempty"` // Config was added in API v1.40
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					File       string     `yaml:"file,omitempty" json:"file,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Registry   string     `yaml:"registry,omitempty" json:"registry,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Extensions Extensions `yaml:"#extensions,inline" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				// FileObjectConfig is a config type for a file used by a service
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				type FileObjectConfig struct {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Name           string            `yaml:",omitempty" json:"name,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					File           string            `yaml:",omitempty" json:"file,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Environment    string            `yaml:",omitempty" json:"environment,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					External       External          `yaml:",omitempty" json:"external,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Labels         Labels            `yaml:",omitempty" json:"labels,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Driver         string            `yaml:",omitempty" json:"driver,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					DriverOpts     map[string]string `mapstructure:"driver_opts" yaml:"driver_opts,omitempty" json:"driver_opts,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					TemplateDriver string            `mapstructure:"template_driver" yaml:"template_driver,omitempty" json:"template_driver,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Extensions     Extensions        `mapstructure:"#extensions" yaml:",inline" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Name           string            `yaml:"name,omitempty" json:"name,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					File           string            `yaml:"file,omitempty" json:"file,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Environment    string            `yaml:"environment,omitempty" json:"environment,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					External       External          `yaml:"external,omitempty" json:"external,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Labels         Labels            `yaml:"labels,omitempty" json:"labels,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Driver         string            `yaml:"driver,omitempty" json:"driver,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					DriverOpts     map[string]string `yaml:"driver_opts,omitempty" json:"driver_opts,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					TemplateDriver string            `yaml:"template_driver,omitempty" json:"template_driver,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Extensions     Extensions        `yaml:"#extensions,inline" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				const (
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
			
			 | 
			 | 
			
				@ -1003,14 +1020,14 @@ const (
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				type DependsOnConfig map[string]ServiceDependency
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				type ServiceDependency struct {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Condition  string     `yaml:",omitempty" json:"condition,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Restart    bool       `yaml:",omitempty" json:"restart,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Extensions Extensions `mapstructure:"#extensions" yaml:",inline" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Condition  string     `yaml:"condition,omitempty" json:"condition,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Restart    bool       `yaml:"restart,omitempty" json:"restart,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Extensions Extensions `yaml:"#extensions,inline" json:"-"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				type ExtendsConfig struct {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					File    string `yaml:",omitempty" json:"file,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Service string `yaml:",omitempty" json:"service,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					File    string `yaml:"file,omitempty" json:"file,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
					Service string `yaml:"service,omitempty" json:"service,omitempty"`
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				// SecretConfig for a secret
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
			
			 | 
			 | 
			
				
 
 |