// THIS FILE IS AUTOMATICALLY GENERATED: DO NOT EDIT
= image:kamelets/fhir-source.svg[] Fhir Source

*Provided by: "Apache Software Foundation"*

Receive data from Fhir server.

== Configuration Options

The following table summarizes the configuration options available for the `fhir-source` Kamelet:
[width="100%",cols="2,^2,3,^2,^2,^3",options="header"]
|===
| Property| Name| Description| Type| Default| Example
| *password {empty}* *| Password| The password to access the Fhir server| string| | 
| *serverUrl {empty}* *| Server URL| The Fhir server url| string| | 
| *username {empty}* *| Username| The username to access the Fhir server| string| | 
| encoding| encoding| Encoding to use for all request. Possible values are JSON and XML| string| `"JSON"`| 
| fhirVersion| Fhir version| The FHIR Version to use. There are 6 enums and the value can be one of DSTU2, DSTU2_HL7ORG, DSTU2_1, DSTU3, R4, R5| string| `"R4"`| 
| prettyPrint| Json Pretty Print| Define if the Json must be pretty print or not| boolean| `true`| 
| url| URL| The Fhir resource type url| string| `"/Patient"`| 
|===

NOTE: Fields marked with ({empty}*) are mandatory.

== Usage

This section summarizes how the `fhir-source` can be used in various contexts.

=== Knative Source

The `fhir-source` Kamelet can be used as Knative source by binding it to a Knative object.

.fhir-source-binding.yaml
[source,yaml]
----
apiVersion: camel.apache.org/v1alpha1
kind: KameletBinding
metadata:
  name: fhir-source-binding
spec:
  source:
    ref:
      kind: Kamelet
      apiVersion: camel.apache.org/v1alpha1
      name: fhir-source
    properties:
      password: "The Password"
      serverUrl: "The Server URL"
      username: "The Username"
  sink:
    ref:
      kind: InMemoryChannel
      apiVersion: messaging.knative.dev/v1
      name: mychannel

----

Make sure you have xref:latest@camel-k::installation/installation.adoc[Camel K installed] into the Kubernetes cluster you're connected to.

Save the `fhir-source-binding.yaml` file into your hard drive, then configure it according to your needs.

You can run the source using the following command:

[source,shell]
----
kubectl apply -f fhir-source-binding.yaml
----
// THIS FILE IS AUTOMATICALLY GENERATED: DO NOT EDIT
