func IngestionMapping()

in azkustoingest/file_options.go [233:274]


func IngestionMapping(mapping interface{}, format DataFormat) FileOption {
	return option{
		run: func(p *properties.All) error {
			kind := format.MappingKind()

			if kind == DFUnknown {
				return errors.ES(
					errors.OpUnknown,
					errors.KClientArgs,
					"IngestionMapping() option does not support EncodingType %v", format,
				).SetNoRetry()
			}

			var j string
			switch v := mapping.(type) {
			case string:
				j = v
			case []byte:
				j = string(v)
			default:
				b, err := json.Marshal(mapping)
				if err != nil {
					return errors.ES(
						errors.OpUnknown,
						errors.KClientArgs,
						"IngestMapping option was passed to an azkustoingest.Ingestion call that was not a string, []byte or could be JSON encoded: %s", err,
					).SetNoRetry()
				}
				j = string(b)
			}

			p.Ingestion.Additional.IngestionMapping = j
			p.Ingestion.Additional.IngestionMappingType = kind
			p.Ingestion.Additional.Format = format

			return nil
		},
		clientScopes: QueuedClient | ManagedClient,
		sourceScope:  FromFile | FromReader | FromBlob,
		name:         "IngestionMapping",
	}
}