func validateConfig()

in plugins/aws-appmesh/config/netconfig.go [127:167]


func validateConfig(config netConfigJSON) error {
	// Validate if all the required fields are present.
	if config.IgnoredGID == "" && config.IgnoredUID == "" {
		return fmt.Errorf("missing required parameter ignoredGID or ignoredUID")
	}
	if config.ProxyEgressPort == "" {
		return fmt.Errorf("missing required parameter proxyEgressPort")
	}

	// AppPorts and ProxyIngressPort go in pairs,
	// i.e. either both are set or both are not set.
	if config.ProxyIngressPort == "" && len(config.AppPorts) > 0 {
		return fmt.Errorf("missing parameter proxyIngressPort (required if appPorts are provided)")
	}

	if config.ProxyIngressPort != "" && len(config.AppPorts) == 0 {
		return fmt.Errorf("missing parameter appPorts (required if proxyIngressPort is provided)")
	}

	// Validate the format of all fields.
	if err := isValidPort(config.ProxyEgressPort); err != nil {
		return err
	}
	if err := isValidPort(config.ProxyIngressPort); err != nil {
		return err
	}

	for _, port := range config.AppPorts {
		if err := isValidPort(port); err != nil {
			return err
		}
	}

	for _, port := range config.EgressIgnoredPorts {
		if err := isValidPort(port); err != nil {
			return err
		}
	}

	return nil
}